Por Dios un alma caritativa que me ayude con estas dos instrucciones, que tengo un lio del quince, o soy tela de cortito.
Bueno lo que quiero es que en un programa cuando pulse un boton el sistema entre en pausa, es decir que si esta moviendo un motor este se pare, y si de nuevo lo pulso el sistema se ponga en funcionamiento.
en el void setup he puesto los siguiente jejejejejej "while (digitalRead(Boton)==0);" bueno pues hace su función, ya que lo que quería era que al alimentar el sistema este no echar a andar hasta que no pulsara el boton, vale hasta que no lo pulso no salta al void loop jejejejjeejej pero sigo sin entenderla ya que cuando el boton no se pulsa manda un 0 cuando se pulsa un 1. en fin
y ya no te cuento con el "do.... while" tengo uno para ese trozo de programa donde se pausa el sistema, hasta que vuelvo a pulsarlo,
funciona bien, a base de ensayo y error, pero en el fondo no sé por qué va.
Code:
int LED_AZUL = 4; int LED_ROJO = 5; int BOTON = 6; int buzzer = 11; void setup() { pinMode (LED_AZUL,OUTPUT); pinMode (LED_ROJO,OUTPUT); pinMode (BOTON,INPUT); pinMode(buzzer, OUTPUT); while (digitalRead(BOTON)== 0); // MIENTROAS SE CUMPLA QUE BOTON ES 0 NO ALE DE AQUI delay (500); } void loop() { //while (digitalRead(BOTON)== 1); digitalWrite(buzzer, LOW); digitalWrite(LED_ROJO, LOW); digitalWrite(LED_AZUL, HIGH); if (digitalRead(BOTON)== 1) //delay (2000); encender_LED (); } void encender_LED () { do{ digitalWrite(LED_AZUL, LOW); digitalWrite(LED_ROJO, HIGH); analogWrite(buzzer,20); //emite sonido //delay(2000); //espera medio segundo //digitalWrite(buzzer, LOW); //deja de emitir //delay(500);//espera medio segundo } while (digitalRead(BOTON)== 1 && digitalRead(LED_AZUL)== LOW); delay (300); while (digitalRead(BOTON)== 0 && digitalRead(LED_AZUL)== LOW); delay (300); }