 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
robert Član


Pridružen-a: Sob 29 Maj 2004 21:48 Prispevkov: 1905 Aktiv.: 8.04 Kraj: Tolmin
|
Objavljeno: Ned Dec 27, 2015 7:26 pm Naslov sporočila: Reset timerja |
|
|
Za prostoleteče modelčke letal sem se lotil izdelave preprostega timerja in hitro naletel na težavo.
Da si boste lažje predstavljali za kaj se sploh gre dodajam še posnetek delovanja z youtube.
https://www.youtube.com/watch?v=1pbe0rZNyCY
No - naš je malce drugačen oziroma enostavnejši.
Čas se nastavlja z trimerčkom, kar izvede "analogread" po vklopu (0-250 sec.).
Sprožitev pa se izvede preko tipke.
Ker pa je za start modelčka potrebno počakati na pravi trenutek se takrat pogosto pozabi pritisniti start tipko oziroma se jo pritisne prehitro in posledično je čas prekratek.
To bi rad popravil z hall senzorjem (ali tipko) na start kljuko, da bi se čas res začel odštevati ob startu.
Zaradi "delay" od sprožitve dalje tipka ni več aktivna in tukaj se meni ustavi
Ker bodo fantički (9-15let) to "zahtevno elektroniko" sami spajkali skupaj sem se za začetek odločil za DigiSpark (attiny85) kitajčke, kar še bolj omeji nabor funkcij.
Bodo pa fantje lahko sami brez druge opreme "čarali" dalje in se morda kaj koristnega naučili.
Še skropucalo trenutne kode, ki bi jo rad predelal
Koda: |
/* F1Htimer_test
*/
#include <SimpleServo.h>
SimpleServo myservo; // create servo object to control a servo
const int DTinput = 1; // DT Vhod na pin 1
int buttonState = 1;
int potenciometerPin = 2; //vhod potenciometer na pin 2
int potenciometer = 0;
int casLeta = 0;
int pisk = 4; //izhod piskac
void setup()
{
pinMode(DTinput, INPUT); // DTinput je vhod:
pinMode (pisk, OUTPUT); // pisk je izhod
myservo.attach(0); // Servo na pin 0
myservo.write (180); // Razmigamo servo 2x in popiskamo
delay(50);
digitalWrite(4,HIGH);
delay(50);
digitalWrite(4,LOW);
myservo.write (90);
delay(50);
myservo.write (180);
delay(50);
digitalWrite(4,HIGH);
delay(50);
digitalWrite(4,LOW);
myservo.write (90);
potenciometer = analogRead(1); //branje potenciometra
casLeta = potenciometer*12; // preračun na max. 240 sec(POPRAVI NA KONCNI VERZIJI NA 240!!!!!!!!)
}
void loop()
{
buttonState = digitalRead(DTinput); // Cakamo na pritisnjen gumb:
if (buttonState == HIGH)
{
digitalWrite(4,HIGH);
delay(50);
digitalWrite(4,LOW);
delay(casLeta);
myservo.write (180);
digitalWrite(4,HIGH);
delay(1000);
digitalWrite(4,LOW);
myservo.write (90);
}
}
|
_________________ LP Robert |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|