Motore DC direzione e velocità con Arduino e Potenziometro
Controllo velocità e direzione di un motore DC con Arduino, vediamo come!
Inizialmente questo articolo era stato scritto al volo per dare una risposta al commento di Enrico, che voleva pilotare un motore dc controllandone velocità e direzione tramite un potenziometro. Data la sua semplicità di comprensione e realizzazione, credo che lo schema ed il codice siano sufficienti.
Il circuito si rifà all’articolo L298N pilotare un motore DC con Arduino.
Lo schema:
Il codice:
/*
Autore : Andrea Lombardo
Web : http://www.lombardoandrea.com
Articolo : https://wp.me/p27dYH-Jf
*/
//definizione dei pin
static int pinDirezioneMarcia = A0; //pin analogico deputato a leggere i valori del potenziometro
static int mA = 12; //pin digitale per determinare gli stati logici da inviare al modulo
static int mB = 13; //pin digitale per determinare gli stati logici da inviare al modulo
static int pinPotenza = 11; //pin digitale tramite il quale inviare un segnale di tipo PWM tramite la funzione analgWrite()
//variabili usate per gestire e mostrare i valori di operazione
int accelerazione;
int potenza; //valore in uscita dal pin 11
void setup() {
//inizializzo la comunicazione seriale cosi da mostrare i valori nel Monitor Seriale
Serial.begin(9600);
//inizializzo variabili
accelerazione = 0;
potenza = 0;
//definisco tipologia pin
pinMode(pinDirezioneMarcia, INPUT); //input in quanto legge il valore analogico del pin A0
pinMode(mA, OUTPUT); //output perche' definisce lo stato logico del pin IN1 del modulo L298N
pinMode(mB, OUTPUT); //output perche' definisce lo stato logico del pin IN2 del modulo L298N
pinMode(pinPotenza, OUTPUT); //output perche' definisce il valore PWM del pin EN1 del modulo L298N
//pullDown sensore pinDirezioneMarcia
digitalWrite(pinDirezioneMarcia, LOW);
//Definisco il senso di marcia del motore
/*
mA | mB | Evento
-----|-------|----------------------
LOW | LOW | fermo
LOW | HIGH | Movimento in un senso
HIGH | LOW | Movimento senso opposto
HIGH | HIGH | Fermo
*/
digitalWrite(mA, LOW);
digitalWrite(mB, HIGH);
}
void loop() {
//leggo il valore analogico del potenziometro sul pin A0.
int valorePotenziometro = analogRead(pinDirezioneMarcia);
/*
Il range dei valori analogici e' da 0 a 1023 mentre il range dei valori PWM e' da 0 a 255
per mantenere questa proporzionalita' eseguo la mappatura dei valori
*/
int valoreMappato = map(valorePotenziometro, 0, 1023, 0, 255);
determinaMovimento(valoreMappato);
}
void determinaMovimento(int valoreMappato) {
String direzione = "";
if (valoreMappato <= 121) {
//vai in un senso
digitalWrite(mA, LOW);
digitalWrite(mB, HIGH);
potenza = map(valoreMappato, 0, 121, 255, 0);
direzione = "DIETRO";
} else if (valoreMappato >= 135) {
//vai nell'altro
digitalWrite(mA, HIGH);
digitalWrite(mB, LOW);
potenza = map(valoreMappato, 135, 255, 0, 255);
direzione = "AVANTI";
} else if (valoreMappato > 121 && valoreMappato < 135) {
//ferma il motore
digitalWrite(mA, LOW);
digitalWrite(mB, LOW);
direzione = "FERMO";
valoreMappato = 0;
}
//Invio i dati letti al Monitor seriale, cosi da poterli vedere a video
Serial.print("Accelerazione = ");
Serial.print(potenza);
Serial.print(" - direzione = ");
Serial.println(direzione);
analogWrite(pinPotenza, potenza);
}
Come sempre
- Assicurati che tutti i collegamenti siano corretti;
- Ricordati di impostare la porta COM del tuo Arduino;
- Imposta la stessa velocità seriale definita in Serial.begin(9600), nel Monitor Seriale
- E ricorda che io non mi assumo nessuna responsabilità per eventuali danni o disastri che causi 😀
A fine pagina trovi il link per scaricare il pacchetto con codici e schemi di collegamento. Come sempre ti ricordo che acquistando prodotti Amazon passando attraverso i link del mio sito, io percepisco una piccola commissione (parliamo di centesimi) in buoni regalo. Questi buoni sommati alle eventuali donazioni PayPal, servono a mantenere attivo il sito web e ad acquistare nuovi componenti.
Prodotti Amazon
Auto Amazon Links: Nessun prodotto trovato.
Greluma 4 pezzi L298N Modulo scheda controller azionamento motore Dual H Bridge DC Stepper per Arduino
13,98 €AZDelivery Dual H Bridge DC Stepper Motor Driver Controller Board Modulo AZ-L298N | per Arduino Smart Car Robot | Tensione Logica 5V
8,99 €DollaTek Scheda Controller Mini Drive Stepper Motor Controller Doppio modulo L298N H CC Stepper Bridge per Arduino Robot Smart Car
10,99 €ARCELI 5 PCS L298N Modulo scheda controller azionamento motore Dual H Bridge Modulo passo-passo CC per Arduino
14,99 €5 Pezzi L298N Modulo Scheda Controller Azionamento Motore, Doppio H Ponte CC Passo Passo Motore Controllo Scheda, Modulo Driver Motore L298N H-Bridge per Arduino Veicolo Intelligente Robot
13,99 €Auto Amazon Links: Nessun prodotto trovato.






























![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #1](https://m.media-amazon.com/images/I/51z3unD0rSL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #2](https://m.media-amazon.com/images/I/51qwMwhIEpL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #3](https://m.media-amazon.com/images/I/41xRusra-PL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #4](https://m.media-amazon.com/images/I/51Pj4AYoI2L._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #5](https://m.media-amazon.com/images/I/51aGD+zFqLL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #6](https://m.media-amazon.com/images/I/51qB0r6PqYL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #7](https://m.media-amazon.com/images/I/518XcmBXXAL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #8](https://m.media-amazon.com/images/I/41mGAFfpn9L._SL120_.jpg)

















![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #1](https://m.media-amazon.com/images/I/51L0AYnxlBL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #2](https://m.media-amazon.com/images/I/5111WEC6vgL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #3](https://m.media-amazon.com/images/I/41752hu+9BL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #4](https://m.media-amazon.com/images/I/51gDXfwE4qL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #5](https://m.media-amazon.com/images/I/519n0CHiF5L._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #6](https://m.media-amazon.com/images/I/515PpgJcSfL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #7](https://m.media-amazon.com/images/I/519E0KPfiHL._SL120_.jpg)
RSS - Articoli
Commentati Recentemente