Paso 2: ARDUINO y Temporizador 555
He escrito un pequeño código. Este código cuenta segundos de 0-59, tengo botones de configuración dos y conectado al pin6 y pin7 en el Arduino. Al pulsar el botón conectado al pin6 la cuenta aumenta por 1 y decrementa en 1 cuando presiono el pulsador conectado al pin7, cuando llega a la cuenta 59 que se inicia otra vez desde cero. Ahora, también tengo setup mi Temporizador 555 y en la salida he conectado un LED, decidí también Conecte un cable desde la salida de la 555(pin3) al pin6 en Arduino y quitar el pulsador ya podemos ver el tiempo aumentar cada vez la va 555 / LED alta y seguirá la cuenta mientras el pulso mantiene alto y puedo cambiar el R1 para aumentar o disminuir el tiempo de altura o tono el potenciómetro y ajustar a la baja de tiempo que afecta la rapidez aumenta de contador. El código no puede ser fácil de entender, pero no se centran en el código porque es este instructable sobre el modo de Temporizador 555 Astable.
Hasta próxima! Monoestable. Gracias.
Inicialización de 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);
}