M5Stack Beginner Project: implementeer een afstandsbedieningsfunctie
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); }
Voor uitleg over de infraroodfunctie zie: M5Stack Beginnersgids: PLUS2 infraroodmogelijkheden
Realisatie van afstandsbedieningsfuncties
Stap 1: Infraroodsignaalherkenning op afstand
-
Benodigde hardware:
-
Hardware-aansluitingen:
Arduino UNO | ---> | 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); }
-
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
-
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);
.
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
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 }