// Define los pines para el relé y el botón
#define RELAY_PIN GPIO_NUM_0 // Pin para controlar el relé
#define BUTTON_PIN GPIO_NUM_10 // Pin para leer el botón
void setup() {
Serial.begin(115200);
Serial.println(F("Control de Relé con Botón Iniciado."));
pinMode(RELAY_PIN, OUTPUT); // El pin del relé es una salida
// ¡Importante! La mayoría de los módulos relé se activan con LOW (señal invertida)
// Siempre verifica la documentación de tu módulo relé.
digitalWrite(RELAY_PIN, HIGH); // Apaga el relé al inicio (HIGH para relés que activan con LOW)
pinMode(BUTTON_PIN, INPUT_PULLUP); // El pin del botón como entrada con resistencia pull-up interna
// Esto significa que el botón estará HIGH si no se presiona, y LOW al presionarse.
}
void loop() {
// Lee el estado del botón. Usamos INPUT_PULLUP, así que LOW significa presionado.
if (digitalRead(BUTTON_PIN) == LOW) { // Si el botón está presionado
// Enciende el relé (poniendo el pin en LOW si el relé es de activación invertida)
digitalWrite(RELAY_PIN, LOW);
Serial.println(F("Boton PRESIONADO: Relé ACTIVADO (LED ON)."));
delay(500); // Pequeño retardo para evitar múltiples lecturas al presionar
} else {
// Apaga el relé (poniendo el pin en HIGH si el relé es de activación invertida)
digitalWrite(RELAY_PIN, HIGH);
// Serial.println(F("Boton SUELTO: Rele DESACTIVADO (LED OFF).")); // Esto saturaría el serial
}
}
Loading
aitewinrobot-esp32c3-supermini
aitewinrobot-esp32c3-supermini