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

MAKERSPACE-02.jpg

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

  1. Drivemall
  2. 4 bottoni
  3. 4 resistenze
  4. Motore in DC
  5. (Opzionale) DC Driver (i.e. L298N)

Connessioni

IMG_20200713_233714.jpg
IMG_20200713_232921.jpg
IMG_20200713_233734.jpg

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

Firm.PNG

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

IMG_20200713_232510.jpg
IMG_20200713_232930.jpg
IMG_20200713_232940.jpg

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

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