Nota

Ciao, benvenuto nella community di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Esplora più a fondo Raspberry Pi, Arduino ed ESP32 con altri appassionati.

Perché unirsi a noi?

  • Supporto esperto: Risolvi problemi post-vendita e sfide tecniche grazie al supporto della nostra community e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni l’accesso anticipato a nuovi annunci di prodotto e anteprime.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e omaggi: Partecipa a giveaway e promozioni durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

2.20 Modulo Ricevitore IR

Panoramica

In questa lezione imparerai a utilizzare il modulo ricevitore IR. Il ricevitore IR è un componente dotato di fotocellula sintonizzata per ricevere la luce a infrarossi. Viene utilizzato quasi sempre per il rilevamento dei comandi remoti: ogni televisore e lettore DVD ha un ricevitore IR nella parte anteriore per ricevere il segnale infrarosso del telecomando. All’interno del telecomando si trova un LED IR corrispondente, che emette impulsi IR per indicare alla TV di accendersi, spegnersi o cambiare canale.

Componenti necessari

../_images/Part_two_20.png

Schema elettrico

../_images/image182.png

Circuito Fritzing

In questo esempio, colleghiamo il pin sinistro (-) del modulo ricevitore IR a GND, il pin centrale a 5V e il pin destro (S) al pin 11.

../_images/image183.png

Codice

Nota

  • Puoi aprire direttamente il file 2.20_irReceiver.ino nella cartella sunfounder_vincent_kit_for_arduino\code\2.20_irReceiver.

  • Qui viene utilizzata la libreria IRremote, che puoi installare tramite il Library Manager.

    ../_images/lib_irremote.png

Dopo aver caricato il codice sulla scheda Mega2560, potrai vedere sul monitor seriale il valore corrente del tasto premuto sul telecomando IR.

Analisi del codice

Questo codice è progettato per funzionare con un telecomando a infrarossi (IR) utilizzando la libreria IRremote. Ecco la spiegazione:

  1. Inclusione delle librerie: Include la libreria IRremote, che fornisce funzioni per lavorare con i telecomandi IR.

    #include <IRremote.h>
    
  2. Definizione del pin e variabili: Definisce il pin Arduino a cui è collegato il pin del segnale del sensore IR e dichiara una variabile per memorizzare l’ultimo valore IR decodificato.

    const int IR_RECEIVE_PIN = 11;  // Definisce il numero del pin per il sensore IR
    String lastDecodedValue = "";  // Variabile per memorizzare l'ultimo valore decodificato
    
  3. Configurazione iniziale: Inizializza la comunicazione seriale a un baud rate di 9600. Avvia il ricevitore IR sul pin specificato (IR_RECEIVE_PIN) e abilita il feedback LED (se applicabile).

    void setup() {
        Serial.begin(9600);                                     // Avvia la comunicazione seriale a 9600 baud
        IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);  // Avvia il ricevitore IR
    }
    
  4. Loop principale: Il ciclo verifica continuamente i segnali IR in arrivo.

    void loop() {
        if (IrReceiver.decode()) {
            String decodedValue = decodeKeyValue(IrReceiver.decodedIRData.command);
            if (decodedValue != "ERROR" && decodedValue != lastDecodedValue) {
                Serial.println(decodedValue);
                lastDecodedValue = decodedValue;  // Aggiorna l'ultimo valore decodificato
            }
            IrReceiver.resume();  // Abilita la ricezione del prossimo valore
        }
    }
    
    • Controlla se un segnale IR viene ricevuto e decodificato correttamente.

    • Decodifica il comando IR e lo memorizza in decodedValue utilizzando una funzione personalizzata decodeKeyValue().

    • Stampa il valore decodificato sul monitor seriale se è diverso dall’ultimo valore memorizzato.

    • Aggiorna lastDecodedValue con il nuovo valore decodificato.

    • Riprende la ricezione dei segnali IR per il prossimo segnale.

Immagine del risultato

../_images/image184.jpeg