// 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
!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.