Arduino: Controllo motore DC con un Potenziometro

Salve a tutti!

In questo articolo vi mostrerò un progetto che ci permette di regolare la velocità di un motore DC (max 5 volt) senza aver bisogno di Ponti H ma usando un potenziometro.

Per prima cosa abbiamo bisogno di:

– 1 motore DC

– Arduino UNO

– Un potenziometro

– Jumpers o fili di collegamento

– Breadboard (basetta)

Lo schema del circuito da seguire è il seguente:

Cattura di schermata (29)

Adesso passiamo al codice:

[c]

int PinMotore = 5; //PIN PWM
int PotPin = 0; //pin potenziometro
int lettura = 0; //variabile per la lettura
int velocita = 0; //variabile per la velocità
void setup()
{
pinMode(PinMotore, OUTPUT); //Imposto il pin in uscta
}
void loop()
{
lettura = analogRead(PotPin); //Leggo il valore del potenziometro
velocita = map(lettura, 0, 1023, 0, 255); //mappo i valori da 1024 a 255
azione(velocita); //richiamo la funzione passondogli la velocità
}
void azione(int velocita)
{
analogWrite(PinMotore, velocita); //faccio girare il motore in base alla lettura
}

[/c]

Nello sketch è presente la funzione MAP che permette di ampliare o ridurre un range di dati, nello sketch infatti i valori del potenziometro da 0 a 1023 sono stati cambiati in un range che va da 0 fino a 255.

Adesso caricate lo sketch sulla vostra scheda ed il gioco è fatto!

A seguire alcune foto del progetto:

AtQHdoKI3jng7mG3pCGNjW0KeLvEcrc094rlHxiRkKxa Aq-K6i1SbRYwEH2gEvYQj6RIJh_mDLD6IL9Ze_4fgygw AoNXR-TgjGctvEt1rDe7H-1Q79AFv7TmwvTI2p7gnTYi AibfGF3a8FpsU26xH7ikxVqgRmj1-itWf1fMWGAz3_cD

Ruotando il potenziometro varierete la velocità del motore grazie al PIN PWM in uscita.

[embedplusvideo height=”400″ width=”600″ editlink=”http://bit.ly/1P5EO2g” standard=”http://www.youtube.com/v/oQwU2cP12N8?fs=1&vq=hd720″ vars=”ytid=oQwU2cP12N8&width=600&height=400&start=&stop=&rs=w&hd=1&autoplay=0&react=1&chapters=&notes=” id=”ep4916″ /]