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!

2. Movimento tramite codice

Nel progetto precedente, abbiamo controllato il funzionamento del motore utilizzando diversi segnali di livello per l’input del modulo L9110.

Se modifichiamo i segnali di livello attraverso il programma, possiamo controllare il movimento dell’auto in modo più flessibile.

Componenti necessari

Per questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un intero kit, 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

-

Collegamenti

Collega i fili tra il modulo L9110 e la scheda R3 seguendo lo schema qui sotto.

Modulo L9110

Scheda R3

Motore

A-1B

5

A-1A

6

B-1B(B-2A)

9

B-1A

10

OB(B)

Filo nero del motore destro

OA(B)

Filo rosso del motore destro

OB(A)

Filo nero del motore sinistro

OA(A)

Filo rosso del motore sinistro

../_images/car_2.png

Codice

Nota

  • Apri il file 2.move.ino nel percorso 3in1-kit\car_project\2.move.

  • Oppure copia questo codice nell”IDE di Arduino.

Dopo il caricamento del codice, l’auto si muoverà avanti, indietro, a sinistra e a destra per due secondi rispettivamente.

Come funziona?

Questo progetto è essenzialmente lo stesso del precedente, e consiste nel far muovere l’auto in avanti, indietro, a sinistra e a destra, nonché fermarsi, fornendo diversi segnali di livello ai pin di input del modulo L9110.

  1. Inizializza i pin del modulo L9110.

    const int A_1B = 5;
    const int A_1A = 6;
    const int B_1B = 9;
    const int B_1A = 10;
    
    void setup() {
        pinMode(A_1B, OUTPUT);
        pinMode(A_1A, OUTPUT);
        pinMode(B_1B, OUTPUT);
        pinMode(B_1A, OUTPUT);
    }
    
  2. Imposta i pin di input su diversi livelli alti o bassi per controllare la rotazione dei motori sinistro e destro, quindi incapsulali in singole funzioni.

    void moveForward() {
        digitalWrite(A_1B, LOW);
        digitalWrite(A_1A, HIGH);
        digitalWrite(B_1B, HIGH);
        digitalWrite(B_1A, LOW);
    }
    
    void moveBackward() {
        digitalWrite(A_1B, HIGH);
        digitalWrite(A_1A, LOW);
        digitalWrite(B_1B, LOW);
        digitalWrite(B_1A, HIGH);
    }
    ...
    
  3. Chiama queste funzioni in loop().

    void loop() {
        moveForward();
        delay(2000);
        stopMove();
        delay(500);
    
        moveBackward();
        delay(2000);
        stopMove();
        delay(500);
    ...
    
  • digitalWrite(pin, value)

    • pin: il numero del pin di Arduino.

    • value: HIGH o LOW.

    Scrive un valore HIGH o LOW su un pin digitale. Se il pin è stato configurato come OUTPUT con pinMode(), la sua tensione verrà impostata sul valore corrispondente: 5V (o 3.3V su schede a 3.3V) per HIGH, 0V (massa) per LOW.

  • pinMode(pin, mode)

    • pin: il numero del pin di Arduino da impostare.

    • mode: INPUT, OUTPUT o INPUT_PULLUP.

    Configura il pin specificato per comportarsi come input o output.

  • delay(ms)

    • ms: il numero di millisecondi di pausa. Tipi di dati consentiti: unsigned long.

    Mette in pausa il programma per il tempo specificato (in millisecondi) come parametro. (Ci sono 1000 millisecondi in un secondo.)