IR-ontvanger 5V ---> VCC GPIO-11 ---> IN GND ---> GND Installeren de bibliotheek U kunt doorgaan en de IRremote-bibliotheek in de Arduino IDE installeren. Deze bibliotheek helpt u bij het genereren van IR-signalen die voldoen aan de standaard. Open Arduino IDE, selecteer Extra -> Bibliotheekbeheer, zoek naar IRremote en installeer het. Schrijf ontvangst infraroodcode #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 resultaten; lege instellingen() { // Initialize serial communications Serieel.begin(115200); // Start IR reception onherstelbaar.enableIRIn(); Serial.println("IR-ontvanger gereed"); } lege lus() { if (irrecv.decode(&resultaten)) { // IR signal detected Serial.print("IR-code ontvangen: "); // Print the received IR signal Serial.println(resultaten.waarde, HEX); // Receive the next signal onherroepelijk.resume(); } vertraging(100); } Kopieer code ✔ Gekopieerd! Klik op Extra -> Poort om te branden. Het branden is voltooid. Begin met het verzenden van infraroodsignalen Klik op Extra -> Seriële monitor om het IR-signaal te controleren. Stap 2: Projectuitleg LED-besturing Nadat we de codefuncties hebben begrepen en de knoppentutorial hebben gevolgd, kunnen we nu knopbedieningen combineren met LED-bediening. De logica is eenvoudig: Druk op knop A (StickCP2.BtnA.wasPressed()): schakel de LED in met StickCP2.Power.setLed(1);. Druk op knop B (StickCP2.BtnB.wasPressed()): Schakel de LED uit met StickCP2.Power.setLed(0);. We implementeren dit met behulp van if voorwaarden om te detecteren wanneer knop A of knop B wordt ingedrukt. Dit biedt een responsieve manier om de LED in of uit te schakelen met behulp van eenvoudige knopinteracties, waardoor het een eenvoudig project is om mee aan de slag te gaan.   M5Stack Plus2 implementeert afstandsbedieningsfuncties De voorbeeldcode zendt een infraroodsignaal uit via de IR-LED wanneer de knop van M5Stack Plus2 wordt ingedrukt, waardoor de werking van een afstandsbediening wordt gesimuleerd. U kunt het signaalnummer wijzigen in IrSender.sendNEC() om indien nodig verschillende apparaten te bedienen. #define DISABLE_CODE_FOR_RECEIVER #define SEND_PWM_BY_TIMER #define IR_TX_PIN 19 #include "M5StickCPlus2.h" #include lege instellingen() { automatische 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 (GROEN); //Text alignment middle_center means aligning the center of the text to the specified coordinate position. StickCP2.Display.setTextDatum(midden_midden); //Font Styles StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24); //Font size StickCP2.Display.setTextSize(1); IrSender.begin(DISABLE_LED_FEEDBACK); // Begin met IR_SEND_PIN als verzendpincode IrSender.setSendPin(IR_TX_PIN);//Infrarood signaal verzenden pin-instellingen } lege lus() { als (StickCP2.BtnA.wasPressed()) { // Send IR code for power button IrSender.sendNEC(0x25AE7EE3, 32); // Voorbeeld NEC-code voor tv (moet worden vervangen door daadwerkelijke code) StickCP2.Display.clear(); StickCP2.Display.drawString("Stroomsignaal verzonden", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); vertraging(5000); // Wordt elke 5 seconden verzonden } als (StickCP2.BtnB.wasPressed()) { // Send IR code for volume up button //IrSender.sendNEC(25AE7EE3, 32); // Send volume up signal StickCP2.Display.clear(); StickCP2.Display.drawString("Volume omhoog verzonden", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); delay(5000); // Sent every 5 seconds } StickCP2.update(); // Updateknopstatus } Kopieer code ✔ Gekopieerd!">
Doorgaan naar artikel

+49 1626571232

info@openelab.io

🚀Gratis verzending vanaf 50€ in de EU / 80€ wereldwijd

M5Stack Beginner Project: implementeer een afstandsbedieningsfunctie

18 Nov 2024 0 Opmerkingen
M5StickC Plus2 is een klein ontwikkelingsbord gebaseerd op een ESP32-chip met veel krachtige functies, waaronder Bluetooth, Wi-Fi, OLED-display, touchscreen, enzovoort. Hiermee kunnen we eenvoudig de functie voor afstandsbediening realiseren om andere apparaten of huishoudelijke apparaten te bedienen. Dit artikel laat je zien hoe je een eenvoudige afstandsbediening kunt maken met M5StickC Plus2 en introduceert de structuur en code-implementatie van het project.
 

LED-functies uitgelegd

De M5StickC Plus2 is uitgerust met een programmeerbare power-LED die kan worden gecodeerd voor eenvoudige aan/uit-bediening of knippereffecten. De LED kan worden gebruikt om de voedingsstatus aan te geven en, in combinatie met andere sensormodules, als indicatie van de apparaatstatus. De programmeerbaarheid van deze LED zorgt voor een breed scala aan toepassingsscenario’s voor slimme herinneringen of eenvoudige alarmsystemen.

 

Voorbeeldanalyse

StickCP2.Power.setLed(1) wordt gebruikt om de voedings-LED van de M5StickC Plus2 in te schakelen.

Dienovereenkomstig wordt StickCP2.Power.setLed(0) gebruikt om de LED uit te schakelen. Deze functie wordt vaak gebruikt voor statusindicatie, bijvoorbeeld of de voeding aan of uit staat, of het apparaat goed functioneert, of om een ​​eenvoudige signaleringsindicatie te geven.

lege instellingen() {
    // Retrieves device configuration.
    automatische 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 (GROEN);
    // centers the text
    StickCP2.Display.setTextDatum(midden_midden);
    // 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("Aan/uit-LED", StickCP2.Display.width() / 2,
                                StickCP2.Display.hoogte() / 2);
}

lege lus() {
    // inside power red led control
    //Turns on the power LED.
    StickCP2.Power.setLed(1);
    // Waits 1 second.
    vertraging(1000);
    // Turns off the LED.
    StickCP2.Power.setLed(0);
    //Waits 1 second.
    delay(1000);
}

✔ Gekopieerd!

 

Voor uitleg over de infraroodfunctie zie: M5Stack Beginnersgids: PLUS2 infraroodmogelijkheden

  

Realisatie van afstandsbedieningsfuncties

Stap 1: Infraroodsignaalherkenning op afstand

Bij deze methode fungeert de M5Stack Plus2 als een afstandsbediening en verzendt hij infraroodsignalen naar andere apparaten (bijvoorbeeld tv's, airconditioners, enz.) via een infrarood-emitterende module (IR-LED).
  1. Benodigde hardware:
  1. Hardware-aansluitingen:
Arduino UNO ---> IR-ontvanger
5V ---> VCC
GPIO-11 ---> IN
GND ---> GND

  1. Installeren de bibliotheek
  • U kunt doorgaan en de IRremote-bibliotheek in de Arduino IDE installeren. Deze bibliotheek helpt u bij het genereren van IR-signalen die voldoen aan de standaard.
  • Open Arduino IDE, selecteer Extra -> Bibliotheekbeheer, zoek naar IRremote en installeer het.
  • Schrijf ontvangst infraroodcode
#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 resultaten; 

lege instellingen() {
  // Initialize serial communications
  Serieel.begin(115200); 
  // Start IR reception
  onherstelbaar.enableIRIn(); 
  Serial.println("IR-ontvanger gereed");
}

lege lus() {
  if (irrecv.decode(&resultaten)) { 
    // IR signal detected
    Serial.print("IR-code ontvangen: ");
    // Print the received IR signal
    Serial.println(resultaten.waarde, HEX); 
    // Receive the next signal
    onherroepelijk.resume(); 
  }
  vertraging(100);
}

✔ Gekopieerd!
  • Klik op Extra -> Poort om te branden.

  • Het branden is voltooid. Begin met het verzenden van infraroodsignalen
  • Klik op Extra -> Seriële monitor om het IR-signaal te controleren.

Stap 2: Projectuitleg LED-besturing

Nadat we de codefuncties hebben begrepen en de knoppentutorial hebben gevolgd, kunnen we nu knopbedieningen combineren met LED-bediening. De logica is eenvoudig:
  1. Druk op knop A (StickCP2.BtnA.wasPressed()): schakel de LED in met StickCP2.Power.setLed(1);.
  2. Druk op knop B (StickCP2.BtnB.wasPressed()): Schakel de LED uit met StickCP2.Power.setLed(0);.
We implementeren dit met behulp van if voorwaarden om te detecteren wanneer knop A of knop B wordt ingedrukt. Dit biedt een responsieve manier om de LED in of uit te schakelen met behulp van eenvoudige knopinteracties, waardoor het een eenvoudig project is om mee aan de slag te gaan.

 

M5Stack Plus2 implementeert afstandsbedieningsfuncties

De voorbeeldcode zendt een infraroodsignaal uit via de IR-LED wanneer de knop van M5Stack Plus2 wordt ingedrukt, waardoor de werking van een afstandsbediening wordt gesimuleerd. U kunt het signaalnummer wijzigen in IrSender.sendNEC() om indien nodig verschillende apparaten te bedienen.

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

lege instellingen() {

    automatische 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 (GROEN);

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

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

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

    IrSender.begin(DISABLE_LED_FEEDBACK);  // Begin met IR_SEND_PIN als verzendpincode
    IrSender.setSendPin(IR_TX_PIN);//Infrarood signaal verzenden pin-instellingen
}

lege lus() {

  als (StickCP2.BtnA.wasPressed()) {
    // Send IR code for power button
     IrSender.sendNEC(0x25AE7EE3, 32);  // Voorbeeld NEC-code voor tv (moet worden vervangen door daadwerkelijke code)
     StickCP2.Display.clear();
     StickCP2.Display.drawString("Stroomsignaal verzonden", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
     vertraging(5000);  // Wordt elke 5 seconden verzonden
  }
  
  als (StickCP2.BtnB.wasPressed()) {
    // Send IR code for volume up button
    //IrSender.sendNEC(25AE7EE3, 32);  // Send volume up signal
    StickCP2.Display.clear();
    StickCP2.Display.drawString("Volume omhoog verzonden", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
    delay(5000);  // Sent every 5 seconds
  }

  StickCP2.update();  // Updateknopstatus
  
}

✔ Gekopieerd!
Vorig bericht
Volgende bericht

laat een reactie achter

Alle blogreacties worden vóór publicatie gecontroleerd

Iemand heeft onlangs een gekocht

Bedankt voor het abonneren!

Deze e-mail is geregistreerd!

Shop de look

Kies opties

Bewerk optie
Terug op voorraad melding
this is just a warning
Log in
Winkelmand
0 artikelen
RuffRuff App RuffRuff App by Tsun