Es para una banda transportadora la cual consta de tres sensores CNY70 que detectarán los objetos, el problema es que no me da resultados. Por qué el LED se queda encendido aunque le pase un objeto en frente del sensor? Aquí les dejo el programa, espero me puedan ayudar
![]()
int estadoBoton = 0;
int salida = 0;
int estadoAnterior = 0;
int ledPin1 = 3;
int infraPin = 5;
int valorInfra = 0;
int motor = 2;
void setup() {
// put your setup code here, to run once:
pinMode(8 , INPUT );
pinMode(4 , OUTPUT );
pinMode(ledPin1, OUTPUT); // Inicializa el pin del LED1 como salida digital
pinMode(infraPin, INPUT);
pinMode(motor,OUTPUT);
}
void loop() {
/*
*/
valorInfra = digitalRead(infraPin); // Lee el valor de la entrada 5, esto es, el valor que lee el infrarrojo
//Escribe en el pin 3 el valor que lee la entrada 5, esto es, el mismo valor que lee el infrarrojo
// digitalWrite(ledPin1, LOW); //Si el infrarrojo lee 0, entonces, el LED estará apagado
// Si el infrarrojo lee 1, entonces, el LED estará encendido */
if(valorInfra > 200) { // Se asigna a valorInfra el valorInfra negado. Si valorInfra es 1, el nuevo valorInfra será 0; y viceversa
digitalWrite(ledPin1, HIGH);
delay(1000);
} else{
digitalWrite(ledPin1, LOW);
}
//hdsdgscsvyte
// put your main code here, to run repeatedly:
estadoBoton = digitalRead(8);
if((estadoBoton == HIGH) && (estadoAnterior == LOW) ){
salida = 1 - salida ;
delay(20);
}
estadoAnterior = estadoBoton;
if(salida == 1) {
digitalRead(4);
digitalWrite(motor,HIGH);
}
else {
digitalRead(4);
digitalWrite(motor,LOW);
}
}