Controllo Di Un Motore DC Con La Board Drivemall
by HorizonLab in Circuits > Arduino
16 Views, 0 Favorites, 0 Comments
Controllo Di Un Motore DC Con La Board Drivemall
Una guida pratica su come controllare un motore in dc usando la Drivemall già predisposta con il driver L298
Questo tutorial è valido sia se utilizziamo l'Arduino e sia utilizzando la Drivemall Board
di seguito il link per la realizzazione della Drivermall
Il vantaggio di preferire il Drivemall alla classica scheda Arduino è quello di ridurre la complessità delle connessioni portando ad un setup più ordinato. Tuttavia, questo è opzionale: tutti i risultati sono ancora validi con la scheda arduino, una breadboard e abbastanza jumper dupont per i collegamenti.
È necessario un driver per motore CC se viene adottata una scheda Arduino al posto del Drivemall.
Lista Del Materiale
- Drivemall
- 4 bottoni
- 4 resistenze
- Motore in DC
-
(Opzionale) DC Driver (i.e. L298N)
Connessioni
Usiamo il driver L298 per i seguenti motivi
- Controllo della direzione del motore
- Controllo della potenza del motore
- Utilizzo di potenza maggiore di quella che può essere fornita da Arduino
Il driver può essere controllato tramite 3 pin
- Abilita per il potere
- IN1 e IN2 per la direzione
- IN1 e IN2 sia alto che basso il motore è fermo
- IN1 e IN2 discordanti il motore gira in un senso o nell'altro
Ogni motore è azionato da tre pin, In1, In2 per indicare la direzione e EnableA per la potenza del motore.
Cominciamo col preparare la breadboard con 4 pulsanti collegati tramite 4 resistenze a GND e l'altro pin a Vbat. Colleghiamo quindi i pin da A0 ad A3 del Drivemall ai 4 pulsanti come mostrato nelle foto (1 e due). Quindi colleghiamo il motore come nella foto 3.
Firmware
Essendo i Pin di comando per il motore DC non mappati andiamo a gestirli direttamente a livello di registro
l'instruzzione
DDRD = DDRD | B11110000
serve per definire in uscita i PIN PD7 a PD4
Per settare il livello logico dei PIIN usiamo due unstruzioni
PORTD = PORTD | B10100000;
PORTD = PORTD & B10101111;
la prima per settare il livello 1 la seconda per settare il livello 0
il motore è collegato al PIN PE4 quindi può essere comandato con i PIN PD7 e PD6.
Per evitare che durante la pressione del tasto la board rilevi più di una pressione ci viene di aiuti l'instruzione
unsigned long currentMillis = millis();
Acc=analogRead(PinAcc);
if(currentMillis - previousMillis > 100 and Acc>500)
{
Vel++;
Serial.print(Vel);
previousMillis = currentMillis;
}
Downloads
Controllo
Come ultimo step colleghiamo l'alimentazione della board, nel caso volessimo usare l'alimentazione usb per la parte logica e la 12 volt per il motore, dobbiamo collegare le GND in comune
per il controllo si ha il
pin A0 per aumentare la velocità
pin A1 per diminuire la velocità
pin A2 per fermare il motore
pin A3 per cambiare verso di rotazione
Downloads
Disclaim
Questo tutorial è stato prodotto nell'ambito del progetto Makerspace for Inclusion, cofinanziato dal Programma Erasmus + della Commissione Europea.
Il progetto mira a promuovere una forma di educazione informale come mezzo per favorire l'inclusione sociale dei giovani, l'istruzione informale come si può trovare all'interno dei makerspace. Questo tutorial riflette solo le opinioni degli autori e la Commissione Europea non può essere ritenuta responsabile per qualsiasi uso che possa essere fatto delle informazioni in esso contenute