Receptor de infrarrojos 5V ---> CCV Entrada y salida GPIO 11 ---> EN Tierra ---> Tierra Instalar La biblioteca Puede continuar e instalar la biblioteca IRremote en el IDE de Arduino. Esta biblioteca le ayudará a generar señales IR compatibles con los estándares. Abra Arduino IDE, seleccione Herramientas -> Administrador de biblioteca, busque IRremote e instálelo. Escribe el código de recepción por infrarrojos #include // Defines the pins to which the IR receiver sensor is connected constante int RECV_PIN = 11; //Creating IR Receiving Objects IRrecv irrecv(RECV_PIN); // Create the decoding result object decode_results resultados; configuración vacía() { // Initialize serial communications Serie.begin(115200); // Start IR reception irrecv.enableIRIn(); Serial.println("Receptor IR listo"); } bucle vacío() { si (irrecv.decode(&resultados)) { // IR signal detected Serial.print("Código IR recibido: "); // Print the received IR signal Serial.println(resultados.valor, HEX); // Receive the next signal irrecv.resume(); } retraso(100); } Copiar código ✔ ¡Copiado! Haga clic en Herramientas -> Puerto para grabar. La grabación está completa, comienza a enviar señales infrarrojas. Haga clic en Herramientas -> Monitor serie para monitorear la señal IR. Paso 2: Explicación del proyecto de control LED Después de comprender las funciones del código y seguir el tutorial de los botones, ahora podemos combinar las operaciones de los botones con el control de LED. La lógica es sencilla: Presione el botón A (StickCP2.BtnA.wasPressed()): encienda el LED usando StickCP2.Power.setLed(1);. Presione el botón B (StickCP2.BtnB.wasPressed()): apague el LED usando StickCP2.Power.setLed(0);. Implementamos esto usando condiciones if para detectar cuándo se presiona el Botón A o el Botón B. Esto proporciona una forma receptiva de alternar el LED mediante interacciones simples de botones, lo que lo convierte en un proyecto fácil de comenzar.   M5Stack Plus2 implementa funciones de control remoto El código de muestra emite una señal infrarroja a través del LED IR cuando se presiona el botón del M5Stack Plus2, simulando el funcionamiento de un control remoto. Puede cambiar el número de señal en IrSender.sendNEC() para controlar diferentes dispositivos según sea necesario. #definir DISABLE_CODE_FOR_RECEIVER #define ENVIAR_PWM_POR_TEMPORIZADOR #define el PIN IR_TX 19 #incluye "M5StickCPlus2.h" #include configuración vacía() { configuración automática = M5.config(); //To understand the underlying logic of the initialization with begin(), you can refer to the Dependent Library. StickCP2.begin(cfg); //Display rotation directions StickCP2.Display.setRotation(1); // The color of the text displayed on the screen. StickCP2.Display.setTextColor(VERDE); //Text alignment middle_center means aligning the center of the text to the specified coordinate position. StickCP2.Display.setTextDatum(middle_center); //Font Styles StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24); //Font size StickCP2.Display.setTextSize(1); IrSender.begin(DISABLE_LED_FEEDBACK); // Comience con IR_SEND_PIN como pin de envío IrSender.setSendPin(IR_TX_PIN);//Configuración del pin de transmisión de señal infrarroja } bucle vacío() { si (StickCP2.BtnA.wasPressed()) { // Send IR code for power button IrSender.sendNEC(0x25AE7EE3, 32); // Ejemplo de código NEC para TV (es necesario reemplazarlo con el código real) StickCP2.Display.clear(); StickCP2.Display.drawString("Señal de alimentación enviada", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); retraso(5000); // Enviado cada 5 segundos } si (StickCP2.BtnB.wasPressed()) { // Send IR code for volume up button //IrSender.sendNEC(25AE7EE3, 32); // Send volume up signal StickCP2.Display.clear(); StickCP2.Display.drawString("Subir volumen enviado", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); delay(5000); // Sent every 5 seconds } StickCP2.actualización(); // Actualizar estado del botón } Copiar código ✔ ¡Copiado!">
saltar al contenido

+49 1626571232

info@openelab.io

🚀 Envío gratuito a partir de 50€ en la UE / 80€ en todo el mundo

Proyecto para principiantes de M5Stack: implementar una función de control remoto

18 Nov 2024 0 Comentarios
M5StickC Plus2 es una pequeña placa de desarrollo basada en un chip ESP32 con muchas funciones potentes, incluyendo Bluetooth, Wi-Fi, pantalla OLED, pantalla táctil, y más. A través de ella, podemos realizar fácilmente la función de control remoto para controlar otros dispositivos o electrodomésticos. Este artículo te mostrará cómo hacer un control remoto simple utilizando M5StickC Plus2 e introducirá la estructura y la implementación del código del proyecto.
 

Explicación de las funciones de los LED

El M5StickC Plus2 está equipado con un LED de alimentación programable que se puede codificar para un control simple de encendido/apagado o efectos de parpadeo. El LED se puede utilizar para indicar el estado de energía y, junto con otros módulos de sensores, como indicación del estado del dispositivo. La programabilidad de este LED proporciona una amplia gama de escenarios de aplicación para recordatorios inteligentes o sistemas de alarma simples.

 

Ejemplo de análisis

StickCP2.Power.setLed(1) se utiliza para encender el LED de encendido del M5StickC Plus2.

En consecuencia, se utiliza StickCP2.Power.setLed(0) para apagar el LED. Esta función se utiliza a menudo para indicar el estado, como por ejemplo si la fuente de alimentación está encendida o apagada, si el dispositivo está funcionando correctamente o para realizar una simple indicación de señalización.

configuración vacía() {
    // Retrieves device configuration.
    configuración automática = M5.config();
    // Initializes the M5StickC Plus2.
    StickCP2.begin(cfg);
    // Rotates the display
    StickCP2.Display.setRotation(1);
    // sets text color to green
    StickCP2.Display.setTextColor(VERDE);
    // centers the text
    StickCP2.Display.setTextDatum(middle_center);
    // uses the "Orbitron_Light_24" font
    StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24);
    StickCP2.Display.setTextSize(1);
    // Displays the message "Power LED" at the screen’s center.
    StickCP2.Display.drawString("LED de encendido", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2);
}

bucle vacío() {
    // inside power red led control
    //Turns on the power LED.
    StickCP2.Power.setLed(1);
    // Waits 1 second.
    retraso(1000);
    // Turns off the LED.
    StickCP2.Power.setLed(0);
    //Waits 1 second.
    delay(1000);
}

✔ ¡Copiado!

 

Para obtener una explicación de la función de infrarrojos, consulte: Guía para principiantes de M5Stack: capacidades de infrarrojos PLUS2

  

Realización de la función de control remoto

Paso 1: Reconocimiento de señal infrarroja por control remoto

En este método, el M5Stack Plus2 actúa como un control remoto, enviando señales infrarrojas a otros dispositivos (por ejemplo, televisores, aires acondicionados, etc.) a través de un módulo emisor de infrarrojos (LED IR).
  1. Hardware necesario:
  1. Conexiones de hardware:
Arduino UNO ---> Receptor de infrarrojos
5V ---> CCV
Entrada y salida GPIO 11 ---> EN
Tierra ---> Tierra

  1. Instalar La biblioteca
  • Puede continuar e instalar la biblioteca IRremote en el IDE de Arduino. Esta biblioteca le ayudará a generar señales IR compatibles con los estándares.
  • Abra Arduino IDE, seleccione Herramientas -> Administrador de biblioteca, busque IRremote e instálelo.
  • Escribe el código de recepción por infrarrojos
#include 

// Defines the pins to which the IR receiver sensor is connected
constante int RECV_PIN = 11; 
//Creating IR Receiving Objects
IRrecv irrecv(RECV_PIN); 
// Create the decoding result object
decode_results resultados; 

configuración vacía() {
  // Initialize serial communications
  Serie.begin(115200); 
  // Start IR reception
  irrecv.enableIRIn(); 
  Serial.println("Receptor IR listo");
}

bucle vacío() {
  si (irrecv.decode(&resultados)) { 
    // IR signal detected
    Serial.print("Código IR recibido: ");
    // Print the received IR signal
    Serial.println(resultados.valor, HEX); 
    // Receive the next signal
    irrecv.resume(); 
  }
  retraso(100);
}

✔ ¡Copiado!
  • Haga clic en Herramientas -> Puerto para grabar.

  • La grabación está completa, comienza a enviar señales infrarrojas.
  • Haga clic en Herramientas -> Monitor serie para monitorear la señal IR.

Paso 2: Explicación del proyecto de control LED

Después de comprender las funciones del código y seguir el tutorial de los botones, ahora podemos combinar las operaciones de los botones con el control de LED. La lógica es sencilla:
  1. Presione el botón A (StickCP2.BtnA.wasPressed()): encienda el LED usando StickCP2.Power.setLed(1);.
  2. Presione el botón B (StickCP2.BtnB.wasPressed()): apague el LED usando StickCP2.Power.setLed(0);.
Implementamos esto usando condiciones if para detectar cuándo se presiona el Botón A o el Botón B. Esto proporciona una forma receptiva de alternar el LED mediante interacciones simples de botones, lo que lo convierte en un proyecto fácil de comenzar.

 

M5Stack Plus2 implementa funciones de control remoto

El código de muestra emite una señal infrarroja a través del LED IR cuando se presiona el botón del M5Stack Plus2, simulando el funcionamiento de un control remoto. Puede cambiar el número de señal en IrSender.sendNEC() para controlar diferentes dispositivos según sea necesario.

#definir DISABLE_CODE_FOR_RECEIVER 
#define ENVIAR_PWM_POR_TEMPORIZADOR
#define el PIN IR_TX 19
#incluye "M5StickCPlus2.h"
#include  

configuración vacía() {

    configuración automática = M5.config();
    
    //To understand the underlying logic of the initialization with begin(), you can refer to the Dependent Library.
    StickCP2.begin(cfg);

      //Display rotation directions
    StickCP2.Display.setRotation(1);

    //  The color of the text displayed on the screen.
    StickCP2.Display.setTextColor(VERDE);

    //Text alignment middle_center means aligning the center of the text to the specified coordinate position.
    StickCP2.Display.setTextDatum(middle_center);

    //Font Styles
    StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24);

    //Font size
    StickCP2.Display.setTextSize(1);

    IrSender.begin(DISABLE_LED_FEEDBACK);  // Comience con IR_SEND_PIN como pin de envío
    IrSender.setSendPin(IR_TX_PIN);//Configuración del pin de transmisión de señal infrarroja
}

bucle vacío() {

  si (StickCP2.BtnA.wasPressed()) {
    // Send IR code for power button
     IrSender.sendNEC(0x25AE7EE3, 32);  // Ejemplo de código NEC para TV (es necesario reemplazarlo con el código real)
     StickCP2.Display.clear();
     StickCP2.Display.drawString("Señal de alimentación enviada", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
     retraso(5000);  // Enviado cada 5 segundos
  }
  
  si (StickCP2.BtnB.wasPressed()) {
    // Send IR code for volume up button
    //IrSender.sendNEC(25AE7EE3, 32);  // Send volume up signal
    StickCP2.Display.clear();
    StickCP2.Display.drawString("Subir volumen enviado", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
    delay(5000);  // Sent every 5 seconds
  }

  StickCP2.actualización();  // Actualizar estado del botón
  
}

✔ ¡Copiado!
Publicación anterior
Siguiente publicación

Deja un comentario

Todos los comentarios del blog se revisan antes de publicarlos.

Alguien compró recientemente un

¡Gracias por suscribirte!

¡Este correo electrónico ha sido registrado!

Compra el look

Elija opciones

Editar opción
Notificación de nuevo disponible
this is just a warning
Acceso
Carro de la compra
0 elementos
RuffRuff App RuffRuff App by Tsun