
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:
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:
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=¬es=” id=”ep4916″ /]
ciao molto utile, io ho un encoder con 5 pin come si potrebbe collegare?
Ciao, vuoi collegare un motore DC + Encoder?
si esatto, è fattibile? grazie della risposta
Credo di sì, sapresti dirmi che valori dà in uscita l’encoder?