Nota
Ciao, benvenuto nella community di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto Esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti subito!
1.3.1 Motore
Introduzione
In questo progetto, impareremo come utilizzare L293D per pilotare un motore DC e farlo ruotare in senso orario e antiorario. Poiché il motore DC richiede una corrente maggiore, per sicurezza, utilizziamo qui il modulo di alimentazione per alimentare i motori.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
COMPONENTI NEL KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link seguenti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
- |
|
- |
|
Schema Elettrico
Collega il modulo di alimentazione alla breadboard e inserisci il jumper nel pin da 5V, quindi questo erogherà una tensione di 5V. Collega il pin 1 dell’L293D a GPIO22 e impostalo ad alto livello. Collega il pin 2 a GPIO27 e il pin 7 a GPIO17, quindi imposta un pin ad alto livello e l’altro a basso. In questo modo puoi cambiare la direzione di rotazione del motore.
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Nota
Il modulo di alimentazione può essere utilizzato con una batteria da 9V tramite il supporto per batteria incluso nel kit. Inserisci il jumper del modulo di alimentazione nelle strisce bus da 5V della breadboard.
Passo 2: Entra nella cartella del codice.
cd ~/raphael-kit/c/1.3.1/
Passo 3: Compila.
gcc 1.3.1_Motor.c -lwiringPi
Passo 4: Esegui il file eseguibile.
sudo ./a.out
Quando il codice viene eseguito, il motore prima ruota in senso orario per 5s, quindi si ferma per 5s. Successivamente, ruota in senso antiorario per 5s, quindi si ferma nuovamente per 5s. Questa serie di azioni viene ripetuta ciclicamente.
Nota
Se il codice non funziona o appare un errore come: "wiringPi.h: No such file or directory", fai riferimento a Installa e Controlla wiringPi.
Codice
#include <wiringPi.h>
#include <stdio.h>
#define MotorPin1 0
#define MotorPin2 2
#define MotorEnable 3
int main(void){
int i;
if(wiringPiSetup() == -1){ //quando l'inizializzazione di wiring fallisce, stampa messaggio a schermo
printf("setup wiringPi failed !");
return 1;
}
pinMode(MotorPin1, OUTPUT);
pinMode(MotorPin2, OUTPUT);
pinMode(MotorEnable, OUTPUT);
while(1){
printf("Clockwise\n");
digitalWrite(MotorEnable, HIGH);
digitalWrite(MotorPin1, HIGH);
digitalWrite(MotorPin2, LOW);
for(i=0;i<3;i++){
delay(1000);
}
printf("Stop\n");
digitalWrite(MotorEnable, LOW);
for(i=0;i<3;i++){
delay(1000);
}
printf("Anti-clockwise\n");
digitalWrite(MotorEnable, HIGH);
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, HIGH);
for(i=0;i<3;i++){
delay(1000);
}
printf("Stop\n");
digitalWrite(MotorEnable, LOW);
for(i=0;i<3;i++){
delay(1000);
}
}
return 0;
}
Spiegazione del Codice
digitalWrite(MotorEnable, HIGH);
Abilita il L239D.
digitalWrite(MotorPin1, HIGH);
digitalWrite(MotorPin2, LOW);
Imposta un livello alto su 2A(pin 7); poiché 1,2EN(pin 1) è ad alto livello, 2Y emetterà un livello alto.
Imposta un livello basso su 1A, quindi 1Y emetterà un livello basso e il motore inizierà a ruotare.
for(i=0;i<3;i++){
delay(1000);
}
Questo ciclo serve a ritardare di 3*1000ms.
digitalWrite(MotorEnable, LOW)
Se 1,2EN (pin1) è a livello basso, L293D non funziona. Il motore smette di ruotare.
digitalWrite(MotorPin1, LOW)
digitalWrite(MotorPin2, HIGH)
Inverte il flusso di corrente del motore, e il motore ruoterà in senso inverso.
Immagine del Fenomeno