Proyecto para principiantes de M5Stack: implementar una función de control remoto
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); }
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
-
Hardware necesario:
-
Conexiones de hardware:
Arduino UNO | ---> | 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); }
-
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
-
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);
.
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
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 }