Controllare un motore DC con un telecomando IR utilizzando Arduino e L293D

Controllare un motore DC con un telecomando IR utilizzando Arduino e L293D

Questo progetto dimostra come controllare la direzione e la velocità di un motore DC utilizzando un telecomando a infrarossi (IR), un Arduino Uno e un chip driver per motori L293D. Questo setup consente un controllo preciso del motore, rendendolo adatto a una varietà di applicazioni.

Questo progetto apre un mondo di possibilità per i tuoi sforzi di elettronica fai-da-te. Ecco alcune idee per iniziare:

  • Robot Telecomandato:Controlla il movimento di un piccolo robot utilizzando un telecomando IR.
  • Sistema di Tende Automatico:Apri e chiudi le tende o le persiane da remoto.
  • Installazioni d'Arte Interattiva:Crea opere d'arte dinamiche con parti mobili controllate da un telecomando IR.
  • Sistema di Pan e Tilt:Controlla il pan e l'inclinazione di una camera o sensore utilizzando un telecomando IR.

Hardware/Componenti

  • Arduino Uno
  • L293D Driver di Motore IC
  • Motore a corrente continua
  • Telecomando IR e ricevitore
  • Diodi (1N4001 x4)
  • Fili di collegamento
  • Alimentatore (ad es., batteria da 9V per il motore)

Guida all'impianto elettrico

%%WIRING%%

(in video at 02:14)

Il chip L293D richiede connessioni sia all'Arduino che a un'alimentazione esterna per il motore. I diodi sono utilizzati per la protezione da ritorno di corrente. Il ricevitore IR si collega ai pin 5V e GND dell'Arduino, con il pin di segnale collegato al pin digitale 11 (configurabile nel codice). Il motore si collega ai pin di uscita del L293D, che sono controllati dall'Arduino.

Spiegazione del codice

(in video alle 07:30)

Il codice Arduino fornito utilizza la libreria IRremote per decodificare i segnali provenienti dal telecomando IR. I principali parametri configurabili all'interno del codice includono:


const char type ='B';// W for white, B for black. Must keep single quotes like 'B' or 'W'
const boolean PCB = 0;// if receiver is PCB set to 1, if not set to 0. See video for details

Imposta iltypevariabile a 'W' per un telecomando bianco o 'B' per un telecomando nero (nel video alle 07:41). IlPCBla variabile deve essere impostata su 1 se il tuo ricevitore IR ha un PCB, e 0 se è un modulo nudo (nel video alle 07:50).


const String RIGHT=">";// move motor to the right (CW) with this key on remote
const String LEFT ="<";// move motor to the left (CCW) with this key on remote
const String STOP ="OK";// stop motor with this key on remote

Queste righe definiscono le etichette dei pulsanti del telecomando IR per controllare il motore. Assicurati che corrispondano alle etichette sul tuo telecomando (nel video alle 08:12). Puoi personalizzarle per utilizzare pulsanti diversi sul tuo telecomando.


#define P1A 2 // define pin 2 as for P1A
#define P2A 7 // define pin 7 as for P2A
#define EN12 8 // define pin 8 as for 1,2EN enable
int RECV_PIN = 11;

Queste righe definiscono i pin Arduino utilizzati per controllare il driver di motore L293D (nel video al 09:52).P1AeP2Acontrolla la direzione, eEN12abilita il motore.RECV_PINè il pin collegato all'uscita del segnale del ricevitore IR (nel video alle 06:52). Modifica questi se stai utilizzando pin diversi.

Progetto dal vivo/Demostrazione

(in video alle 14:15)

Il video dimostra il progetto in azione, mostrando come il motore CC risponde ai comandi del telecomando IR. La dimostrazione mostra come controllare la rotazione del motore in senso orario e antiorario e come fermare il motore utilizzando diversi pulsanti del telecomando.

Capitoli

  • [00:00] Introduzione e panoramica del progetto
  • [00:53] Componenti del Progetto e Requisiti Preliminari
  • [02:14] Spiegazione del cablaggio
  • [07:30] Spiegazione del codice e configurazione
  • [14:15] Dimostrazione del progetto con telecomando nero e PCB
  • [16:04] Dimostrazione con Silver Remote e PCB
  • Dimostrazione con Silver Remote e Bare Module
  • [18:23] Dimostrazione con Telecomando Nero e Modulo Nudo
142-Source for controlling a servo motor with an IR remote controller using Arduino
Lingua: C++
143-Source for a simple L293 motor controller using Arduino
Lingua: C++
Copia!

File📁

Nessun file disponibile.