Ricevitore IR 5V ---> VCC GPIO 11 ---> IN TERRA ---> TERRA Installare la biblioteca Puoi procedere e installare la libreria IRremote nell'IDE di Arduino. Questa libreria ti aiuterà a generare segnali IR conformi agli standard. Apri l'IDE Arduino, seleziona Strumenti -> Gestore libreria, cerca IRremote e installalo. Scrivi e ricevi codice infrarosso #include // Defines the pins to which the IR receiver sensor is connected const int RECV_PIN = 11; //Creating IR Receiving Objects IRrecv irrecv(RECV_PIN); // Create the decoding result object decode_results risultati; impostazione nulla() { // Initialize serial communications Inizio seriale(115200); // Start IR reception irrecv.abilitaIRIn(); Serial.println("Ricevitore IR pronto"); } ciclo vuoto() { if (irrecv.decode(&risultati)) { // IR signal detected Serial.print("Codice IR ricevuto: "); // Print the received IR signal Serial.println(risultati.valore, HEX); // Receive the next signal irrecv.riprendi(); } ritardo(100); } Copia il codice ✔ Copiato! Fai clic su Strumenti -> Porta per masterizzare. La masterizzazione è completata, inizia a inviare segnali infrarossi Fai clic su Strumenti -> Monitor seriale per monitorare il segnale IR. Passaggio 2: Spiegazione del progetto di controllo LED Dopo aver compreso le funzioni del codice e seguito il tutorial sui pulsanti, ora possiamo combinare le operazioni dei pulsanti con il controllo LED. La logica è semplice: Premi il pulsante A (StickCP2.BtnA.wasPressed()): accendi il LED utilizzando StickCP2.Power.setLed(1);. Premi il pulsante B (StickCP2.BtnB.wasPressed()): spegni il LED utilizzando StickCP2.Power.setLed(0);. Lo implementiamo utilizzando if conditions per rilevare quando viene premuto il pulsante A o il pulsante B. Ciò fornisce un modo reattivo per attivare o disattivare il LED utilizzando semplici interazioni con i pulsanti, rendendolo un progetto facile con cui iniziare.   M5Stack Plus2 implementa le funzioni di controllo remoto Il codice di esempio emette un segnale infrarosso attraverso il LED IR quando viene premuto il pulsante di M5Stack Plus2, simulando il funzionamento di un telecomando. È possibile modificare il numero del segnale in IrSender.sendNEC() per controllare diversi dispositivi secondo necessità. #define DISABLE_CODE_FOR_RECEIVER #definisci SEND_PWM_BY_TIMER #definisci IR_TX_PIN 19 #include "M5StickCPlus2.h" #include impostazione nulla() { cfg automatico = 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); // Inizia con IR_SEND_PIN come pin di invio IrSender.setSendPin(IR_TX_PIN);//Impostazioni pin di trasmissione del segnale a infrarossi } ciclo vuoto() { se (StickCP2.BtnA.wasPressed()) { // Send IR code for power button IrSender.sendNEC(0x25AE7EE3, 32); // Esempio di codice NEC per la TV (è necessario sostituirlo con il codice effettivo) StickCP2.Display.clear(); StickCP2.Display.drawString("Segnale di alimentazione inviato", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); ritardo(5000); // Inviato ogni 5 secondi } se (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 su inviato", StickCP2.Display.width() / 2, StickCP2.Display.height() / 2 - 40); delay(5000); // Sent every 5 seconds } StickCP2.aggiornamento(); // Aggiorna lo stato del pulsante } Copia il codice ✔ Copiato!">
Salta al contenuto

+49 1626571232

info@openelab.io

🚀 Spedizione gratuita a partire da 50€ in UE / 80€ in tutto il mondo

Progetto per principianti M5Stack: implementa una funzione di controllo remoto

18 Nov 2024 0 Commenti
M5StickC Plus2 è una piccola scheda di sviluppo basata su un chip ESP32 con molte funzioni potenti, tra cui Bluetooth, Wi-Fi, display OLED, schermo touch e così via. Attraverso di essa, possiamo facilmente realizzare la funzione di controllo remoto per controllare altri dispositivi o elettrodomestici. Questo articolo ti mostrerà come realizzare un semplice telecomando utilizzando M5StickC Plus2 e introdurrà la struttura e l'implementazione del codice del progetto.
 

Funzioni LED spiegate

M5StickC Plus2 è dotato di un LED di alimentazione programmabile che può essere codificato per un semplice controllo on/off o effetti lampeggianti. Il LED può essere utilizzato per indicare lo stato dell'alimentazione e, insieme ad altri moduli sensore, come indicazione dello stato del dispositivo. La programmabilità di questo LED offre un'ampia gamma di scenari applicativi per promemoria intelligenti o semplici sistemi di allarme.

 

Analisi di esempio

StickCP2.Power.setLed(1) viene utilizzato per accendere il LED di alimentazione di M5StickC Plus2.

Di conseguenza, StickCP2.Power.setLed(0) viene utilizzato per spegnere il LED. Questa funzione viene spesso utilizzata per l'indicazione dello stato, ad esempio se l'alimentazione è accesa o spenta, se il dispositivo funziona correttamente o per fornire una semplice indicazione di segnalazione.

impostazione nulla() {
    // Retrieves device configuration.
    cfg automatico = 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 di alimentazione", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2);
}

ciclo vuoto() {
    // inside power red led control
    //Turns on the power LED.
    StickCP2.Power.setLed(1);
    // Waits 1 second.
    ritardo(1000);
    // Turns off the LED.
    Il valore predefinito è 0;
    //Waits 1 second.
    delay(1000);
}

✔ Copiato!

 

Per una spiegazione della funzione infrarossi vedere: Guida per principianti M5Stack: funzionalità a infrarossi PLUS2

  

Realizzazione della funzione di controllo remoto

Passaggio 1: riconoscimento del segnale a infrarossi del telecomando

In questo metodo, M5Stack Plus2 funge da telecomando, inviando segnali a infrarossi ad altri dispositivi (ad esempio TV, condizionatori d'aria, ecc.) tramite un modulo di emissione a infrarossi (LED IR).
  1. Hardware richiesto:
  1. Connessioni hardware:
Arduino UNO ---> Ricevitore IR
5V ---> VCC
GPIO 11 ---> IN
TERRA ---> TERRA

  1. Installare la biblioteca
  • Puoi procedere e installare la libreria IRremote nell'IDE di Arduino. Questa libreria ti aiuterà a generare segnali IR conformi agli standard.
  • Apri l'IDE Arduino, seleziona Strumenti -> Gestore libreria, cerca IRremote e installalo.
  • Scrivi e ricevi codice infrarosso
#include 

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

impostazione nulla() {
  // Initialize serial communications
  Inizio seriale(115200); 
  // Start IR reception
  irrecv.abilitaIRIn(); 
  Serial.println("Ricevitore IR pronto");
}

ciclo vuoto() {
  if (irrecv.decode(&risultati)) { 
    // IR signal detected
    Serial.print("Codice IR ricevuto: ");
    // Print the received IR signal
    Serial.println(risultati.valore, HEX); 
    // Receive the next signal
    irrecv.riprendi(); 
  }
  ritardo(100);
}

✔ Copiato!
  • Fai clic su Strumenti -> Porta per masterizzare.

  • La masterizzazione è completata, inizia a inviare segnali infrarossi
  • Fai clic su Strumenti -> Monitor seriale per monitorare il segnale IR.

Passaggio 2: Spiegazione del progetto di controllo LED

Dopo aver compreso le funzioni del codice e seguito il tutorial sui pulsanti, ora possiamo combinare le operazioni dei pulsanti con il controllo LED. La logica è semplice:
  1. Premi il pulsante A (StickCP2.BtnA.wasPressed()): accendi il LED utilizzando StickCP2.Power.setLed(1);.
  2. Premi il pulsante B (StickCP2.BtnB.wasPressed()): spegni il LED utilizzando StickCP2.Power.setLed(0);.
Lo implementiamo utilizzando if conditions per rilevare quando viene premuto il pulsante A o il pulsante B. Ciò fornisce un modo reattivo per attivare o disattivare il LED utilizzando semplici interazioni con i pulsanti, rendendolo un progetto facile con cui iniziare.

 

M5Stack Plus2 implementa le funzioni di controllo remoto

Il codice di esempio emette un segnale infrarosso attraverso il LED IR quando viene premuto il pulsante di M5Stack Plus2, simulando il funzionamento di un telecomando. È possibile modificare il numero del segnale in IrSender.sendNEC() per controllare diversi dispositivi secondo necessità.

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

impostazione nulla() {

    cfg automatico = 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);  // Inizia con IR_SEND_PIN come pin di invio
    IrSender.setSendPin(IR_TX_PIN);//Impostazioni pin di trasmissione del segnale a infrarossi
}

ciclo vuoto() {

  se (StickCP2.BtnA.wasPressed()) {
    // Send IR code for power button
     IrSender.sendNEC(0x25AE7EE3, 32);  // Esempio di codice NEC per la TV (è necessario sostituirlo con il codice effettivo)
     StickCP2.Display.clear();
     StickCP2.Display.drawString("Segnale di alimentazione inviato", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
     ritardo(5000);  // Inviato ogni 5 secondi
  }
  
  se (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 su inviato", StickCP2.Display.width() / 2,
                                StickCP2.Display.height() / 2 - 40);
    delay(5000);  // Sent every 5 seconds
  }

  StickCP2.aggiornamento();  // Aggiorna lo stato del pulsante
  
}

✔ Copiato!
Articolo precedente
Articolo successivo

lascia un commento

Tutti i commenti del blog vengono controllati prima della pubblicazione

Qualcuno ha recentemente acquistato un

Grazie per esserti iscritto!

Questa email è stata registrata!

Acquista il look

Scegli Opzioni

Modifica opzione
Notifica di disponibilità
this is just a warning
Login
Carrello della spesa
0 elementi
RuffRuff App RuffRuff App by Tsun