Stap 2: ARDUINO en 555 TIMER
Ik heb een kleine code geschreven. Deze code telt seconden van 0-59, ik heb setup twee drukknoppen en aangesloten hen op pin6 en pin7 op de Arduino. Wanneer mij pers naar de knop aangesloten op pin6 de graaf verhoogt door 1 en vermindert door 1, wanneer mij pers naar de drukknop verbonden met pin7, wanneer de graaf bereikt 59 die het begint opnieuw vanaf nul. Nu, ik heb ook opstelling mijn 555 timer en op de uitgang heb ik aangesloten een LED, heb ik besloten om ook verbinden met een draad van de output van de 555(pin3) pin6 op de Arduino en verwijderen de drukknop, en ik kan kijken naar de tijd verhogen elke keer de 555 / LED gaat hoog en zal blijven rekenen zolang de pols hoog blijft en kan ik het veranderen van de R1 te verhogen of verlagen van de Time-High of tune de potentiometer en aanpassen van de Time-Low die gevolgen voor hoe snel de verhogingen van de teller hebben zal. De code kan niet altijd gemakkelijk te begrijpen, maar niet specifiek gericht op de code omdat dit instructable over de 555 timer Astable modus is.
Next up! Monostabiele Mode. Dank u.
Var initialisatie
int New_Sec=0;
int Sec_Min=0;
int Sec_Max=60;
//POrt intialization
int set_up=6;
int set_down=7;
void setup() {
pinMode(set_up,INPUT);
pinMode (set_down,INPUT);
Serial.begin(9600);
}
/*increment second*/
// Seconds function
void set_sec(){
while(!Serial); //while serial is running
if(digitalRead(set_up)==HIGH){ //if digital pushbutton is high
_delay_ms(100);
if(Sec_Min<60){ //and seconds is less than 60
if(Sec_Min>=59) //if seconds is greater or equal to 59
Sec_Min=New_Sec; //when sec is upto or equal to 59 continue count again from zero.
Sec_Min=Sec_Min+1; //increase secs by 1 for every pb press
Sec_Max=Sec_Min;
}
}
else{
Sec_Min=Sec_Min;
}
/*decrement seconds*/
if(digitalRead(set_down)==HIGH){
_delay_ms(100);
if(Sec_Max>0){ //if secs maximum is greater than 0
if(Sec_Min<=0) //if secs minimum is less or equal to 0
Sec_Max=Sec_Max; //secs maximum is equal to secs maximum
Sec_Max=Sec_Max-1; //secs maximum is equal to secs maximum -1
Sec_Min=Sec_Max; // secs minimum is equal to sec maximum
}
}
else{
Sec_Max=Sec_Max;
}
}
void loop() {
set_sec(); //function call
Serial.print("S:");
Serial.println(Sec_Min);
Serial.print("\n");
delay(100);
}