Buenas tardes a todos, les cuento que hoy aprendí a programar el famoso Arduino, recurro a ustedes porque tengo problema con un código que desarrolle para la aplicación que explico:
1. Presiono un botón y verifica el estado de un sensor infrarrojo
2. Si el sensor:
2.1.- Manda un 1 digital
2.1.1.- Activar una salida, desactivarla, esperar, activar otra salida, desactivarla
2.2.- Manda un 0
2.2.1.- Activar una salida (reloj), luego desactivarla
La salida reloj se usa para hacer cambiar de estado un circuito integrado 4017
Todo funciona a la perfección, excepto la parte donde incluyo la función "else", y esta parte es la que hace cambiar de estado al 4017, el programa compila el código sin ningún error
Cualquier ayuda se agradece
1. Presiono un botón y verifica el estado de un sensor infrarrojo
2. Si el sensor:
2.1.- Manda un 1 digital
2.1.1.- Activar una salida, desactivarla, esperar, activar otra salida, desactivarla
2.2.- Manda un 0
2.2.1.- Activar una salida (reloj), luego desactivarla
La salida reloj se usa para hacer cambiar de estado un circuito integrado 4017
Todo funciona a la perfección, excepto la parte donde incluyo la función "else", y esta parte es la que hace cambiar de estado al 4017, el programa compila el código sin ningún error
Cualquier ayuda se agradece
Código:
int reset = 2; // pin para reset de 4017
int sal1 = 3; // salida 1
int sal2 = 4; // salida 2
int reloj = 5; // reloj de 4017
int sensor = 8; // sensor infrarrojo
int entrada = 12; // push button para activar
int val1 = 0; // para leer push button
int val2 = 0; // para leer sensor infrarrojo
void setup() {
pinMode(reset, OUTPUT);
pinMode(sal1, OUTPUT);
pinMode(sal2, OUTPUT);
pinMode(reloj, OUTPUT);
pinMode(sensor, INPUT);
pinMode(entrada, INPUT);
}
void loop(){
digitalWrite(reloj, LOW);
digitalWrite(reset, LOW);
val1 = digitalRead(entrada); // lee el valor del boton
if (val1 == LOW) { // checa que el boton este presionado
val2 = digitalRead(sensor);
if (val2 ==HIGH){
digitalWrite(sal1, HIGH);
delay(1500);
digitalWrite(sal1,LOW);
delay(500);
digitalWrite(sal2,HIGH);
delay(500);
digitalWrite(sal2,LOW);
}else {
digitalWrite(reloj, HIGH); // turn LED ON
delay(100);
digitalWrite(reloj,LOW);
}
}
}

Última edición: