Étape 2: ARDUINO et TIMER 555
J’ai écrit un petit code. Copiez le code suivant compte les secondes de 0 à 59, j’ai boutons setup deux et relié leur pin6 et pin7 sur l’Arduino. Lorsque j’appuie sur le bouton connecté à pin6 le nombre augmente de 1 et diminue de 1 lorsque j’appuie sur le bouton poussoir relié à pin7, lorsque le décompte atteint 59 qu'il repart de zéro. Maintenant, j’ai aussi installé mon temporisateur 555 et sur la sortie, j’ai connecté une LED, j’ai voulu également brancher un fil de la sortie de la 555(pin3) sur pin6 sur l’Arduino et enlever le bouton poussoir et moi pouvons regarder le temps augmente à chaque fois le goes 555 / LED haute et comptera aussi longtemps que le pouls reste haute et je peux changer la R1 pour augmenter ou diminuer le temps de haut ou une mélodie le potentiomètre et ajuster le temps-bas qui portera atteinte à quelle vitesse les augmentations de compteur. Le code n’est peut-être pas facile à comprendre, mais ne vous focalisez pas sur le code car cette instructable est sur le mode minuterie 555 Astable.
Prochain up ! Mode monostable. Merci.
Initialisation du var
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);
}