Como les va gente bonita? Estaba haciendo un proyecto de una banda transportadora con sensores infrarrojos, pero no me funciono, Esta bien el código?

// Definición de pines
const int emisorIR = 2;       // Pin para el emisor infrarrojo
const int receptorIR = 3;     // Pin para el receptor infrarrojo
const int limitSwitchPin = 4; // Pin para el limit switch
const int relayPin = 5;       // Pin para el relé que controla el motorreductor

// Variables de estado
int receptorIRState = LOW;    // Estado del receptor infrarrojo
int limitSwitchState = LOW;   // Estado del limit switch

void setup() {
  // Configurar pines
  pinMode(emisorIR, OUTPUT);
  pinMode(receptorIR, INPUT);
  pinMode(limitSwitchPin, INPUT);
  pinMode(relayPin, OUTPUT);

  // Inicializar el emisor infrarrojo apagado
  digitalWrite(emisorIR, LOW);

  // Inicializar el relé apagado
  digitalWrite(relayPin, LOW);

  // Inicializar la comunicación serial (opcional)
  Serial.begin(9600);
}

void loop() {
  // Leer el estado del limit switch
  limitSwitchState = digitalRead(limitSwitchPin);

  // Leer el estado del receptor infrarrojo
  receptorIRState = digitalRead(receptorIR);

  // Si el limit switch está activado
  if (limitSwitchState == HIGH) {
    // Detener el motorreductor (apagar el relé)
    digitalWrite(relayPin, LOW);
    // Apagar el emisor infrarrojo para detener la detección
    digitalWrite(emisorIR, LOW);
  } 
  // Si el limit switch no está activado
  else {
    // Activar el emisor infrarrojo para detectar objetos
    digitalWrite(emisorIR, HIGH);

    // Si el receptor infrarrojo detecta un objeto (movimiento)
    if (receptorIRState == HIGH) {
      // Encender el relé para activar el motorreductor
      digitalWrite(relayPin, HIGH);
    } else {
      // Si no detecta un objeto, mantener el relé apagado
      digitalWrite(relayPin, LOW);
    }
  }

  // Imprimir información en la consola serial (opcional)
  Serial.print("Limit Switch State: ");
  Serial.println(limitSwitchState);
  Serial.print("Receptor IR State: ");
  Serial.println(receptorIRState);

  // Esperar un breve periodo antes de repetir el bucle
  delay(100);
}

Publica el esquema de tu proyecto para que podamos entenderlo y ayudarte.

Hola! perdon estaba algo ocupado, pero aqui tienes el diagrama para ver si encuentras algo :slight_smile:
!Gracias por ayudarme¡

He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español @Soy_FaduH .

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

El diagrama de cableado (porque no es un esquema electrónico) está mal.
¿Qué señal energiza el relé si ambos extremos están a GND? (Cuando cierra el switch, sino ni eso)
Y si acaso se supone que lo energiza el transistor, ¿Qué evita un cortocircuito cuando cierra el switch?
La configuración del transistor tampoco es correcta.

Moderador:
Por favor, lee las Normas del foro
Edita tu título, usa uno que no tenga justamente lo que se considera un título inútil.
Ver en las normas punto 5.
5. Piensa un título y descriptivo
Trata de resumir tu problema con un título inteligente, útil e informativo.
Un título útil salta a la vista de las personas que podrían conocer la respuesta. Los títulos inútiles son los que deberías evitar.
Ejemplos de títulos inútiles que deberías evitar:
• ERROR EN CODIGO, AYUDA URGENTE
• Problema al programar
• Tengo un error
• Error
• Tendré problemas?
• Novato en apuros
• POR FAVOR NECESITO AYUDA RAPIDO!!!!
Para terminar todo lo que pusiste como título que sea cuerpo de tu mensaje.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.