Nota

Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.

Perché unirsi?

  • Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto 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 agli annunci di nuovi prodotti e anteprime.

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

  • Promozioni festive e concorsi: Partecipa a concorsi e promozioni speciali durante le festività.

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

9. Telecomando

Questo kit include un ricevitore IR che ti permette di utilizzare un telecomando a infrarossi per controllare il movimento dell’auto.

Componenti necessari

Per questo progetto, avremo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Starter 3 in 1

380+

3 in 1 Starter Kit

Puoi anche acquistarli separatamente dai link qui sotto.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda SunFounder R3

ACQUISTA

Modulo Driver Motore L9110

-

Motore TT

-

LED

ACQUISTA

Ricevitore IR

-

Collegamenti

Ora costruisci il circuito seguendo lo schema qui sotto.

Ricevitore IR

Scheda R3

OUT

12

GND

GND

VCC

5V

../_images/car_9.png

Codice

Nota

  • Apri il file 9.remote_control.ino nel percorso 3in1-kit\car_project\9.remote_control.

  • Oppure copia questo codice nell”IDE di Arduino.

  • Qui viene utilizzata la libreria IRremote, puoi installarla dal Library Manager.

    ../_images/lib_irremote.png

Dopo che il codice è stato caricato con successo, premi il pulsante sul telecomando e il LED lampeggerà una volta per indicare che il segnale è stato ricevuto, e l’auto si muoverà in base al pulsante premuto. Puoi premere i seguenti tasti per controllare l’auto.

  • +: Aumenta la velocità

  • -: Riduci la velocità

  • 1: Avanti a sinistra

  • 2: Avanti

  • 3: Avanti a destra

  • 4: Gira a sinistra

  • 6: Gira a destra

  • 7: Indietro a sinistra

  • 8: Indietro

  • 9: Indietro a destra

Come funziona?

L’effetto di questo progetto è far muovere l’auto leggendo il valore del tasto del telecomando a infrarossi. Inoltre, il LED sul pin 13 lampeggerà per indicare la ricezione corretta del segnale IR.

  1. Importa la libreria IRremote, che puoi installare dal Library Manager.

    #include <IRremote.h>
    
    const int IR_RECEIVE_PIN = 12;  // Definisce il numero di pin per il sensore IR
    
  2. Inizializza la comunicazione seriale a un baud rate di 9600. Inizializza il ricevitore IR sul pin specificato (IR_RECEIVE_PIN) e abilita il feedback LED (se applicabile).

    ...
    
    void setup() {
    
        ...
        // Telecomando IR
        IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);  // Avvia il ricevitore
        Serial.println("TELECOMANDO AVVIATO");
    
    }
    
  3. Quando premi i tasti sul telecomando, il ricevitore infrarossi rileverà quale tasto è stato premuto, e l’auto si muoverà secondo il valore corrispondente.

    void loop() {
    
        if (IrReceiver.decode()) {
            //    Serial.println(results.value,HEX);
            String key = decodeKeyValue(IrReceiver.decodedIRData.command);
            if (key != "ERROR") {
                Serial.println(key);
    
                if (key == "+") {
                    speed += 50;
                } else if (key == "-") {
                    speed -= 50;
                } else if (key == "2") {
                    moveForward(speed);
                    delay(1000);
                ...
                }
                IrReceiver.resume();  // Abilita la ricezione del prossimo segnale
    
        }
    }
    
    • Verifica se un segnale IR è stato ricevuto e decodificato correttamente.

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

    • Verifica se il valore decodificato non è un errore.

    • Stampa il valore IR decodificato nel monitor seriale.

    • Riprende la ricezione del segnale IR per il prossimo segnale.