IR-Empfänger 5V ---> VCC GPIO 11 ---> IN GND ---> GND Installieren die Bibliothek Sie können die IRremote-Bibliothek in der Arduino IDE installieren. Diese Bibliothek hilft Ihnen bei der Generierung standardkonformer IR-Signale. Öffnen Sie die Arduino IDE, wählen Sie Extras -> Bibliotheksmanager, suchen Sie nach IRremote und installieren Sie es. Infrarot-Empfangscode schreiben #include // Defines the pins to which the IR receiver sensor is connected Konstante int RECV_PIN = 11; //Creating IR Receiving Objects IRrecv irrecv(RECV_PIN); // Create the decoding result object decode_results-Ergebnisse; void setup() { // Initialize serial communications Seriell.begin(115200); // Start IR reception irrecv.enableIRIn(); Serial.println("IR-Empfänger bereit"); } void schleife() { if (irrecv.decode(&results)) { // IR signal detected Serial.print("IR-Code empfangen:"); // Print the received IR signal Serial.println(results.value, HEX); // Receive the next signal irrecv.resume(); } Verzögerung (100); } Code kopieren ✔ Kopiert! Klicken Sie zum Brennen auf Extras -> Port. Der Brennvorgang ist abgeschlossen. Beginnen Sie mit dem Senden von Infrarotsignalen Klicken Sie auf Extras -> Serieller Monitor, um das IR-Signal zu überwachen. Schritt 2: Erläuterung des LED-Steuerungsprojekts Nachdem wir die Codefunktionen verstanden und dem Tasten-Tutorial gefolgt sind, können wir nun Tastenbedienungen mit LED-Steuerung kombinieren. Die Logik ist einfach: Drücken Sie Taste A (StickCP2.BtnA.wasPressed()): Schalten Sie die LED mit StickCP2.Power.setLed(1); ein. Drücken Sie Taste B (StickCP2.BtnB.wasPressed()): Schalten Sie die LED mit StickCP2.Power.setLed(0); aus. Wir implementieren dies mithilfe von if-Bedingungen, um zu erkennen, wann Knopf A oder Knopf B gedrückt wird. Dies bietet eine reaktionsschnelle Möglichkeit, die LED mithilfe einfacher Tasteninteraktionen umzuschalten, was den Einstieg in das Projekt erleichtert.   M5Stack Plus2 implementiert Fernbedienungsfunktionen Der Beispielcode sendet über die IR-LED ein Infrarotsignal aus, wenn die Taste des M5Stack Plus2 gedrückt wird, und simuliert so die Bedienung einer Fernbedienung. Sie können die Signalnummer in ändern IrSender.sendNEC() um verschiedene Geräte je nach Bedarf zu steuern. #define DISABLE_CODE_FOR_RECEIVER #define SEND_PWM_BY_TIMER #IR_TX_PIN 19 definieren #include "M5StickCPlus2.h" #include void setup() { auto cfg = 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(GREEN); //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); // Beginnen Sie mit IR_SEND_PIN als Sende-Pin IrSender.setSendPin(IR_TX_PIN);//Infrarotsignal-Übertragungs-Pin-Einstellungen } void schleife() { if (StickCP2.BtnA.wasPressed()) { // Send IR code for power button IrSender.sendNEC(0x25AE7EE3, 32); // Beispiel-NEC-Code für TV (muss durch tatsächlichen Code ersetzt werden) StickCP2.Display.clear(); StickCP2.Display.drawString("Power Signal Sent", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); Verzögerung (5000); // Wird alle 5 Sekunden gesendet } if (StickCP2.BtnB.wasPressed()) { // Send IR code for volume up button //IrSender.sendNEC(25AE7EE3, 32); // Send volume up signal StickCP2.Display.clear(); StickCP2.Display.drawString("Lautstärke erhöhen gesendet", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); delay(5000); // Sent every 5 seconds } StickCP2.update(); // Schaltflächenstatus aktualisieren } Code kopieren ✔ Kopiert!">
Zum Inhalt springen

+49 1626571232

info@openelab.io

🚀 Kostenloser Versand ab 50€ in der EU / 80€ weltweit

M5Stack-Anfängerprojekt: Implementieren Sie eine Fernbedienungsfunktion

18 Nov 2024 0 Kommentare
M5StickC Plus2 ist ein kleines Entwicklungsboard, das auf einem ESP32-Chip basiert und viele leistungsstarke Funktionen bietet, darunter Bluetooth, Wi-Fi, OLED-Display, Touchscreen und so weiter. Damit können wir ganz einfach die Fernbedienungsfunktion realisieren, um andere Geräte oder Haushaltsgeräte zu steuern. Dieser Artikel zeigt Ihnen, wie Sie eine einfache Fernbedienung mit dem M5StickC Plus2 erstellen und stellt die Struktur sowie die Code-Implementierung des Projekts vor.
 

LED-Funktionen erklärt

Der M5StickC Plus2 ist mit einer programmierbaren Power-LED ausgestattet, die für eine einfache Ein-/Aus-Steuerung oder Blinkeffekte codiert werden kann. Die LED kann zur Anzeige des Stromstatus und in Verbindung mit anderen Sensormodulen als Anzeige des Gerätestatus verwendet werden. Die Programmierbarkeit dieser LED ermöglicht vielfältige Einsatzszenarien für smarte Erinnerungen oder einfache Alarmsysteme.

 

Beispielanalyse

StickCP2.Power.setLed(1) wird verwendet, um die Power-LED des M5StickC Plus2 einzuschalten.

Dementsprechend wird StickCP2.Power.setLed(0) verwendet, um die LED auszuschalten. Diese Funktion wird häufig zur Statusanzeige verwendet, z. B. ob die Stromversorgung ein- oder ausgeschaltet ist, ob das Gerät ordnungsgemäß funktioniert, oder um eine einfache Signalanzeige zu geben.

void setup() {
    // Retrieves device configuration.
    auto cfg = M5.config();
    // Initializes the M5StickC Plus2.
    StickCP2.begin(cfg);
    // Rotates the display
    StickCP2.Display.setRotation(1);
    // sets text color to green
    StickCP2.Display.setTextColor(GREEN);
    // 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("Power LED", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2);
}

void schleife() {
    // inside power red led control
    //Turns on the power LED.
    StickCP2.Power.setLed(1);
    // Waits 1 second.
    Verzögerung (1000);
    // Turns off the LED.
    StickCP2.Power.setLed(0);
    //Waits 1 second.
    delay(1000);
}

✔ Kopiert!

 

Eine Erläuterung der Infrarotfunktion finden Sie unter: M5Stack-Einsteigerhandbuch: PLUS2-Infrarotfunktionen

  

Realisierung der Fernbedienungsfunktion

Schritt 1: Infrarot-Signalerkennung der Fernbedienung

Bei dieser Methode fungiert der M5Stack Plus2 als Fernbedienung und sendet über ein Infrarot-Emissionsmodul (IR-LED) Infrarotsignale an andere Geräte (z. B. Fernseher, Klimaanlagen usw.).
  1. Erforderliche Hardware:
  1. Hardware-Anschlüsse:
Arduino UNO ---> IR-Empfänger
5V ---> VCC
GPIO 11 ---> IN
GND ---> GND

  1. Installieren die Bibliothek
  • Sie können die IRremote-Bibliothek in der Arduino IDE installieren. Diese Bibliothek hilft Ihnen bei der Generierung standardkonformer IR-Signale.
  • Öffnen Sie die Arduino IDE, wählen Sie Extras -> Bibliotheksmanager, suchen Sie nach IRremote und installieren Sie es.
  • Infrarot-Empfangscode schreiben
#include 

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

void setup() {
  // Initialize serial communications
  Seriell.begin(115200); 
  // Start IR reception
  irrecv.enableIRIn(); 
  Serial.println("IR-Empfänger bereit");
}

void schleife() {
  if (irrecv.decode(&results)) { 
    // IR signal detected
    Serial.print("IR-Code empfangen:");
    // Print the received IR signal
    Serial.println(results.value, HEX); 
    // Receive the next signal
    irrecv.resume(); 
  }
  Verzögerung (100);
}

✔ Kopiert!
  • Klicken Sie zum Brennen auf Extras -> Port.

  • Der Brennvorgang ist abgeschlossen. Beginnen Sie mit dem Senden von Infrarotsignalen
  • Klicken Sie auf Extras -> Serieller Monitor, um das IR-Signal zu überwachen.

Schritt 2: Erläuterung des LED-Steuerungsprojekts

Nachdem wir die Codefunktionen verstanden und dem Tasten-Tutorial gefolgt sind, können wir nun Tastenbedienungen mit LED-Steuerung kombinieren. Die Logik ist einfach:
  1. Drücken Sie Taste A (StickCP2.BtnA.wasPressed()): Schalten Sie die LED mit StickCP2.Power.setLed(1); ein.
  2. Drücken Sie Taste B (StickCP2.BtnB.wasPressed()): Schalten Sie die LED mit StickCP2.Power.setLed(0); aus.
Wir implementieren dies mithilfe von if-Bedingungen, um zu erkennen, wann Knopf A oder Knopf B gedrückt wird. Dies bietet eine reaktionsschnelle Möglichkeit, die LED mithilfe einfacher Tasteninteraktionen umzuschalten, was den Einstieg in das Projekt erleichtert.

 

M5Stack Plus2 implementiert Fernbedienungsfunktionen

Der Beispielcode sendet über die IR-LED ein Infrarotsignal aus, wenn die Taste des M5Stack Plus2 gedrückt wird, und simuliert so die Bedienung einer Fernbedienung. Sie können die Signalnummer in ändern IrSender.sendNEC() um verschiedene Geräte je nach Bedarf zu steuern.

#define DISABLE_CODE_FOR_RECEIVER 
#define SEND_PWM_BY_TIMER
#IR_TX_PIN 19 definieren
#include "M5StickCPlus2.h"
#include  

void setup() {

    auto cfg = 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(GREEN);

    //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);  // Beginnen Sie mit IR_SEND_PIN als Sende-Pin
    IrSender.setSendPin(IR_TX_PIN);//Infrarotsignal-Übertragungs-Pin-Einstellungen
}

void schleife() {

  if (StickCP2.BtnA.wasPressed()) {
    // Send IR code for power button
     IrSender.sendNEC(0x25AE7EE3, 32);  // Beispiel-NEC-Code für TV (muss durch tatsächlichen Code ersetzt werden)
     StickCP2.Display.clear();
     StickCP2.Display.drawString("Power Signal Sent", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
     Verzögerung (5000);  // Wird alle 5 Sekunden gesendet
  }
  
  if (StickCP2.BtnB.wasPressed()) {
    // Send IR code for volume up button
    //IrSender.sendNEC(25AE7EE3, 32);  // Send volume up signal
    StickCP2.Display.clear();
    StickCP2.Display.drawString("Lautstärke erhöhen gesendet", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
    delay(5000);  // Sent every 5 seconds
  }

  StickCP2.update();  // Schaltflächenstatus aktualisieren
  
}

✔ Kopiert!
Vorheriger Beitrag
Nächster Beitrag

Hinterlasse einen Kommentar

Alle Blog-Kommentare werden vor der Veröffentlichung geprüft

Jemand kaufte vor kurzem ein

Danke fürs Abonnieren!

Diese E-Mail wurde registriert!

Shoppen Sie den Look

Wähle Optionen

Bearbeitungsoption
Benachrichtigung wieder vorrätig
this is just a warning
Anmeldung
Einkaufswagen
0 Artikel
RuffRuff App RuffRuff App by Tsun