Aprender a programar Arduino nunca fue tan facil, con la ayuda de la IA o Inteligencia artificial podemos crear proyectos utiles y divertidos tanto para entusiastas como para conocedores. Este es un ejemplo muy basico y sencillo de como se puede aplicar la IA para programar un circuito electronico basado en arduino y unos cuantos componentes.
Para controlar cinco LEDs con un control remoto usando un módulo IR (Infrarrojo), primero necesitas un módulo receptor IR (como el VS1838B o TSOP1838) y un control remoto compatible. Vamos a usar la librería IRremote en Arduino, la cual facilita la recepción de señales IR y la decodificación de comandos.
Materiales
- Arduino (Uno, Nano, etc.)
 - 5 LEDs
 - 5 resistencias (220Ω - 330Ω, para cada LED)
 - Módulo receptor IR (VS1838B o similar)
 - Control remoto IR
 - Cables de conexión
 
Circuito
- Conecta cada LED a un pin digital de Arduino (ejemplo: pines 2, 3, 4, 5 y 6) con una resistencia.
 - Conecta el módulo receptor IR:
- VCC a 5V de Arduino
 - GND a GND de Arduino
 - Salida de datos (OUT) al pin 11 de Arduino (se puede cambiar si lo necesitas, pero debe coincidir con el código).
 
 
Código Arduino
Este código permitirá encender o apagar cada LED de manera individual, además de encender o apagar todos los LEDs con un solo botón del control remoto.
- Asegúrate de instalar la librería 
IRremotedesde el Administrador de Librerías de Arduino. - Elige los códigos de cada botón del control remoto usando el monitor serial (te explico más adelante cómo obtener estos códigos).
 
Codigo para Arduino:
#include <IRremote.h>
#define RECV_PIN 11  // Pin de salida del receptor IR
IRrecv irrecv(RECV_PIN); 
decode_results results;
const int ledPins[5] = {2, 3, 4, 5, 6};  // Pines para cada LED
// Define códigos IR específicos para cada acción (obtén estos códigos con tu control)
const unsigned long LED1_ON = 0xFF30CF;  // Reemplaza estos valores con tus códigos reales
const unsigned long LED2_ON = 0xFF18E7;
const unsigned long LED3_ON = 0xFF7A85;
const unsigned long LED4_ON = 0xFF10EF;
const unsigned long LED5_ON = 0xFF38C7;
const unsigned long ALL_LEDS_TOGGLE = 0xFFA25D;  // Código para encender/apagar todos los LEDs
bool ledStates[5] = {false, false, false, false, false};  // Estado de cada LED
bool allLedsOn = false;  // Estado general de todos los LEDs
void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();  // Inicia el receptor IR
  for (int i = 0; i < 5; i++) {
    pinMode(ledPins[i], OUTPUT);  // Configura cada pin de LED como salida
    digitalWrite(ledPins[i], LOW);  // Apaga todos los LEDs inicialmente
  }
}
void loop() {
  if (irrecv.decode(&results)) {
    unsigned long code = results.value;
    Serial.println(code, HEX);  // Imprime el código en hexadecimal para ver qué botón has presionado
    // Control individual de LEDs
    if (code == LED1_ON) toggleLED(0);
    else if (code == LED2_ON) toggleLED(1);
    else if (code == LED3_ON) toggleLED(2);
    else if (code == LED4_ON) toggleLED(3);
    else if (code == LED5_ON) toggleLED(4);
    // Encender/apagar todos los LEDs
    else if (code == ALL_LEDS_TOGGLE) toggleAllLEDs();
    irrecv.resume();  // Recibir el próximo valor
  }
}
// Función para encender/apagar un LED específico
void toggleLED(int ledIndex) {
  ledStates[ledIndex] = !ledStates[ledIndex];
  digitalWrite(ledPins[ledIndex], ledStates[ledIndex] ? HIGH : LOW);
}
// Función para encender/apagar todos los LEDs
void toggleAllLEDs() {
  allLedsOn = !allLedsOn;
  for (int i = 0; i < 5; i++) {
    ledStates[i] = allLedsOn;
    digitalWrite(ledPins[i], allLedsOn ? HIGH : LOW);
  }
}
Explicación del Código
- Configuración de Pines: Cada LED se conecta a un pin digital y se configura como salida.
 - Decodificación de Comandos IR: Se captura el valor de cada botón en el control remoto, y si coincide con alguno de los códigos definidos (que obtendrás tú mismo), enciende o apaga el LED correspondiente.
 - Encender/Apagar Todos los LEDs: Si el código coincide con 
ALL_LEDS_TOGGLE, la funcióntoggleAllLEDsalterna el estado de todos los LEDs. 
Cómo Obtener los Códigos IR de tu Control Remoto
- Carga el código en Arduino.
 - Abre el Monitor Serial y presiona los botones en tu control remoto.
 - Cada botón mostrará un código hexadecimal en el monitor serial.
 - Reemplaza los valores 
LED1_ON,LED2_ON, etc., en el código de Arduino con estos valores. 
#include <IRremote.h>
const int RECV_PIN = 11; // Define the digital pin connected to the IR receiver
IRrecv irrecv(RECV_PIN); // Create an instance of IRrecv
decode_results results;  // Create a results object to store the received IR values
void setup() {
  Serial.begin(9600);  // Initialize serial communication
  irrecv.enableIRIn(); // Start the receiver
  Serial.println("IR Receiver ready and waiting for signals...");
}
void loop() {
  // Check if an IR signal has been received
  if (irrecv.decode(&results)) {
    Serial.print("Received IR value: ");
    Serial.println(results.value, HEX); // Print the value in hexadecimal format
    irrecv.resume(); // Receive the next value
  }
}
Este programa te permitirá controlar cinco LEDs individualmente y apagarlos o encenderlos todos con un solo botón.

No hay comentarios.:
Publicar un comentario