Come controllare un motore DC tramite ESP32 e Bluetooth con L298N su PlatformIO

Introduzione

Benvenuto su questo articolo dove ti guiderò passo passo attraverso un progetto su come controllare un motore DC utilizzando un ESP32 e un ponte H basato su L298N. Segui questa guida completa per imparare come controllare il verso di rotazione e la velocità (tramite un segnale PWM) di un motore DC dal tuo smartphone tramite un’interfaccia Bluetooth.
In questo tutorial sul controllo del motore DC con ESP32 e L298N, esploreremo ogni aspetto, dalle basi dell’elettronica fino alla programmazione dell’ESP32 tramite l’IDE PlatformIO. Utilizzeremo l’applicazione Serial Bluetooth Terminal di Kai Morich per inviare comandi al nostro circuito.
Questo progetto non solo ti fornirà una comprensione del funzionamento del motore DC e del ponte H, ma ti consentirà anche di padroneggiare il controllo wireless tramite Bluetooth, aprendo un mondo di possibilità per future applicazioni.
Durante il tutorial, ti fornirò lo schema di collegamento, esempi di codice e istruzioni passo-passo per garantire una facile riproducibilità del progetto. Sia che sia principiante o esperto nel campo dell’elettronica e della programmazione, questa guida sarà adatta a te.

Il motore DC

Un motore DC (motore a corrente continua) è un dispositivo elettromeccanico ampiamente utilizzato (i motori DC sono componenti essenziali in vari settori come l’automazione industriale, la robotica, l’elettronica di consumo e molti altri) che converte l’energia elettrica in energia meccanica. È composto da una combinazione di componenti elettrici e magnetici che consentono il movimento rotatorio.
Un motore DC è costituito da due componenti principali: lo statore e il rotore. Lo statore è la parte fissa del motore e può essere costituito o da un magnete permanente oppure da un insieme di avvolgimenti di filo di rame, noti come avvolgimenti dello statore, che creano un campo magnetico stazionario. Il rotore è la parte mobile del motore e contiene una serie di avvolgimenti, noti come avvolgimenti del rotore, che creano un campo magnetico che interagisce con il campo magnetico dello statore.
Il funzionamento di base di un motore DC si basa sulla legge della forza di Lorentz. Quando una corrente elettrica passa attraverso gli avvolgimenti del rotore, viene generato un campo magnetico. Questo campo magnetico interagisce con il campo magnetico dello statore, generando una forza che fa ruotare il rotore.
Il motore DC può ruotare in entrambi i sensi.
Per invertire la direzione di rotazione del motore, la polarità della corrente nel rotore deve essere invertita. Ciò viene realizzato utilizzando un dispositivo di commutazione, noto come commutatore, che cambia la direzione della corrente elettrica nei vari avvolgimenti del rotore (oppure, molto più banalmente, invertendone i fili di alimentazione).
L’energia elettrica necessaria per far funzionare il motore DC viene fornita da una fonte di alimentazione esterna, come una batteria o un alimentatore. La tensione fornita determina la velocità e la potenza del motore, mentre la corrente determina la coppia o la forza di torsione generata dal motore.

In questo progetto useremo un motore DC dotato di riduttore ad ingranaggi che puoi vedere nell’immagine seguente:

Il motore DC completo di riduttore ad ingranaggi
Il motore DC completo di riduttore ad ingranaggi

Come puoi notare, il motore presenta due linguette di rame (sul lato sinistro della foto) dove dovrai saldare i fili di alimentazione, come mostrato nella foto sotto:

Il motore DC completo di riduttore ad ingranaggi e fili di alimentazione
Il motore DC completo di riduttore ad ingranaggi e fili di alimentazione

Se non sai come fare una saldatura a stagno puoi consultare l’articolo Un altro tutorial su come saldare presente in questo blog.

Nella prossima foto puoi vedere come si presenta il motore DC separato dal riduttore ad ingranaggi:

Il motore DC separato dal riduttore ad ingranaggi
Il motore DC separato dal riduttore ad ingranaggi

Il segnale PWM

Il segnale PWM, acronimo di Pulse Width Modulation (modulazione di larghezza di impulso), è una tecnica di controllo utilizzata per regolare la quantità di energia consegnata a un dispositivo elettrico (il carico) in modo efficiente. È ampiamente utilizzato in diverse applicazioni, tra cui l’elettronica di potenza, il controllo dei motori, l’illuminazione a LED e molto altro.
Il segnale PWM si basa sulla modulazione di una forma d’onda rettangolare in cui viene variata la larghezza dell’impulso (pulse width) rispetto al periodo dell’onda. Il periodo rappresenta il tempo impiegato per completare un ciclo della forma d’onda, mentre la larghezza dell’impulso indica la durata in cui l’onda è ON (alto) durante un periodo.
Il rapporto tra la larghezza dell’impulso e il periodo, noto come ciclo di lavoro (duty cycle), rappresenta la percentuale di tempo in cui il segnale è ON rispetto al periodo totale. Il ciclo di lavoro è solitamente espresso come una percentuale o come un valore compreso tra 0 e 1.
Per generare un segnale PWM, un circuito di controllo, come un microcontrollore o un circuito integrato dedicato, genera una serie di impulsi rettangolari con una frequenza costante. La durata di ciascun impulso viene variata per ottenere il ciclo di lavoro desiderato. Ad esempio, se il ciclo di lavoro è del 50%, l’impulso sarà ON per la metà del periodo e OFF per l’altra metà.
L’utilizzo del segnale PWM offre diversi vantaggi. Innanzitutto, consente di controllare la potenza consegnata a un carico in modo efficiente. Poiché il segnale è composto da impulsi ON e OFF, l’energia viene fornita solo per la durata degli impulsi ON, riducendo la dissipazione di energia e il consumo complessivo. Questo lo rende ideale per applicazioni in cui è richiesta una regolazione precisa della potenza, come il controllo dei motori.
Inoltre, il segnale PWM consente di regolare la grandezza o l’intensità di un’applicazione proporzionalmente. Variando il ciclo di lavoro, è possibile ottenere una gamma continua di livelli di potenza o luminosità. Ad esempio, nell’illuminazione a LED, il segnale PWM può essere utilizzato per regolare l’intensità luminosa, offrendo un controllo graduale della luminosità.
Infine, il segnale PWM è facilmente implementabile utilizzando circuiti elettronici digitali. I microcontrollori moderni e i circuiti integrati dedicati offrono funzioni di generazione del segnale PWM integrate, semplificando l’implementazione in diversi progetti e applicazioni.
In conclusione, il segnale PWM è una tecnica di controllo che modula la larghezza degli impulsi di una forma d’onda rettangolare per regolare la potenza o l’intensità di un dispositivo elettrico. Offre efficienza energetica, controllo preciso e flessibilità, rendendolo ampiamente utilizzato in diverse aree dell’elettronica e dell’automazione.

Il ponte H

Un ponte H è un circuito elettronico utilizzato per controllare la direzione del flusso di corrente attraverso un carico, come un motore DC. È un componente ampiamente utilizzato nell’elettronica di potenza e nella robotica per invertire la polarità e il senso di rotazione di un motore, consentendo di controllare il suo movimento in avanti e indietro.
Un ponte H è composto da quattro interruttori (generalmente transistor) disposti in una configurazione specifica che permette di controllare il flusso di corrente attraverso un carico. I quattro interruttori sono organizzati in due rami: un ramo superiore e un ramo inferiore.

Schema di un ponte H che pilota un motore DC
Schema di un ponte H che pilota un motore DC

Quando un ramo del ponte H è chiuso (gli interruttori S1 e S4 sono attivi), la corrente fluisce in una direzione attraverso il carico, consentendo al motore di girare in una direzione specifica (ad esempio in avanti). Al contrario, quando l’altro ramo del ponte H è chiuso (interruttori S2 e S3 attivi), la corrente fluisce nella direzione opposta attraverso il carico, invertendo il senso di rotazione del motore (ad esempio indietro).
La combinazione di apertura e chiusura degli interruttori S1, S2, S3 e S4 permette di controllare la direzione di rotazione del motore. Ad esempio, se S1 e S4 sono chiusi e S2 e S3 sono aperti, la corrente fluisce nel carico in una direzione, facendo girare il motore in avanti. Invertendo lo stato degli interruttori, è possibile invertire la direzione del flusso di corrente e far girare il motore in direzione opposta.
Per controllare il ponte H, è necessario fornire i segnali di controllo appropriati ai quattro interruttori. Questi segnali possono provenire da un microcontrollore o da un circuito di controllo dedicato. È importante garantire che gli interruttori siano aperti e chiusi in modo sequenziale e appropriato per evitare cortocircuiti o situazioni di sovracorrente (per esempio bisogna evitare che siano chiusi contemporaneamente S1 e S2 oppure S3 e S4 per evitare di cortocircuitare l’alimentazione).
Un ponte H può essere controllato utilizzando un segnale di modulazione di larghezza di impulso (PWM). Il segnale PWM è una forma di controllo di segnale digitale che alterna tra due stati: ON e OFF, in cui la durata del periodo ON viene variata per controllare l’intensità media del segnale.
Nel caso del ponte H, il segnale PWM viene utilizzato per controllare la velocità del motore DC. Questo viene fatto modulando la larghezza degli impulsi del segnale PWM che viene inviato al ponte H. Quando la larghezza dell’impulso è maggiore, viene fornita una maggiore tensione media al motore, aumentando la velocità. Al contrario, quando la larghezza dell’impulso è ridotta, la tensione media diminuisce, diminuendo la velocità del motore.
Il segnale PWM viene generato da un microcontrollore o da un circuito di controllo dedicato. Il microcontrollore produce una serie di impulsi con una frequenza fissa e la larghezza di ciascun impulso viene variata in base al valore del segnale di controllo desiderato.
Quando il segnale PWM viene inviato al ponte H, il ponte H risponde aprendo e chiudendo gli interruttori in modo rapido in base allo stato dell’impulso PWM. Ad esempio, quando l’impulso è ON, gli interruttori appropriati vengono chiusi per far fluire la corrente nel carico, mentre quando l’impulso è OFF, gli interruttori vengono aperti per interrompere il flusso di corrente.
La variazione della larghezza degli impulsi del segnale PWM consente di controllare la velocità del motore in modo graduale. Regolando la percentuale di “ON-time” rispetto al periodo totale dell’impulso, è possibile ottenere una vasta gamma di velocità del motore.
Il controllo tramite segnale PWM offre numerosi vantaggi, tra cui un controllo più preciso della velocità del motore, una maggiore efficienza energetica e la possibilità di controllare il motore in modo proporzionale. È particolarmente utile in applicazioni in cui è richiesta una regolazione fine della velocità o quando è necessario controllare la velocità del motore in base a condizioni variabili.

Il driver L298N

Il circuito integrato L298N è un popolare chip driver di motore utilizzato per controllare motori DC e motori passo-passo. È ampiamente utilizzato in progetti di robotica, automazione e elettronica in generale. Il L298N offre una soluzione conveniente ed efficiente per il controllo dei motori, consentendo di controllare la direzione e la velocità del motore con facilità.
Il L298N è un driver di tipo ponte H, il che significa che può controllare la direzione del flusso di corrente attraverso un motore. Supporta la gestione di due motori DC indipendenti o un motore passo-passo a quattro fasi.
Una delle caratteristiche chiave del L298N è la sua capacità di gestire correnti elevate. È in grado di gestire correnti fino a 2 ampere, rendendolo adatto per motori di dimensioni medie. Il chip L298N dispone di quattro uscite (OUT1, OUT2, OUT3, OUT4), che possono essere collegate ai terminali del motore per fornire alimentazione e controllo.
Per controllare il L298N, è necessario fornire un segnale di controllo appropriato per le sue diverse linee di ingresso. Le linee di ingresso principali includono ENA, ENB, IN1, IN2, IN3 e IN4. Le linee ENA e ENB consentono di attivare o disattivare il driver del motore. Le linee IN1 e IN2 controllano la direzione del motore collegato alle uscite OUT1 e OUT2, mentre le linee IN3 e IN4 controllano la direzione del motore collegato alle uscite OUT3 e OUT4.
Per regolare la velocità del motore, il L298N supporta la modulazione di larghezza di impulso (PWM). Collegando il segnale PWM a una delle linee ENA o ENB, è possibile variare la larghezza degli impulsi per regolare la velocità del motore in base al duty cycle del segnale PWM.
Il L298N richiede un’alimentazione esterna per alimentare il motore. È necessario fornire un’adeguata tensione di alimentazione (generalmente compresa tra 5V e 35V, a seconda delle specifiche del chip) per il funzionamento corretto del motore e del driver. Inoltre, è importante collegare correttamente i terminali del motore al driver per garantire un flusso di corrente corretto.
Quindi, il circuito integrato L298N è un chip driver di motore ampiamente utilizzato per il controllo di motori DC e motori passo-passo. Offre funzionalità di controllo della direzione e velocità del motore, supporta correnti elevate e può essere controllato utilizzando segnali di controllo come il PWM. Con la sua affidabilità e facilità di utilizzo, il L298N si è affermato come una scelta popolare per una varietà di progetti che richiedono il controllo dei motori.

Puoi scaricare il suo datasheet da questo link: L298N

In questo progetto useremo una scheda che monta un L298N che puoi vedere nell’immagine seguente:

Scheda con ponte H usata per pilotare il motore DC
Scheda con ponte H usata per pilotare il motore DC

Vediamo il significato dei vari elementi della scheda:

  • l’OUTPUT MOTOR 1 e OUTPUT MOTOR 2 sono le uscite di pilotaggio dei motori (questa scheda è in grado di pilotare due motori contemporaneamente anche se noi ne useremo solo uno)
  • la sezione POWER SUPPLY FROM BATTERIES riceve la tensione proveniente dal pacco batterie (in questo caso pari a 6V)
  • il CON5 JUMPER lo lasciamo collegato in quanto serve ad usare la tensione proveniente dalla sezione POWER SUPPLY FROM BATTERIES per alimentare, oltre che il motore DC, anche il chip del ponte H
  • ENABLE A JUMPER e ENABLE B JUMPER sono due jumper che agiscono sui pin di abilitazione dei due motori presenti sul chip. Nel nostro caso dobbiamo rimuovere il primo per poter pilotare il motore DC tramite l’ESP32 con il segnale PWM
  • i pin IN1, IN2 sono gli ingressi per il pilotaggio del motore 1 mentre i pin IN3, IN4 sono gli ingressi per il pilotaggio del motore 2. Mettendo IN1 a HIGH e IN2 a LOW il motore 1 girerà in un senso, mettendo IN1 a LOW e IN2 a HIGH il motore girerà nel senso opposto, mettendo IN1 e IN2 a LOW il motore si ferma. Stessa cosa per IN3 e IN4 sul secondo motore.

Di quali componenti abbiamo bisogno?

La lista dei componenti non è particolarmente lunga:

  • una breadboard per connettere la NodeMCU ESP32 agli altri componenti
  • alcuni fili DuPont (maschio – maschio, maschio – femmina, femmina – femmina)
  • un motore DC con tensione di alimentazione compresa fra i 3V e i 6V
  • una scheda ponte H
  • un portabatterie per 4 batterie AA oppure AAA (in modo da avere 6V)
  • e, ovviamente, una NodeMCU ESP32 !

Realizzazione del progetto

Lo schema elettrico

Prima di realizzare il circuito vero e proprio diamo un’occhiata al pinout della board:

Pinout della ESP32
Pinout della ESP32

Ecco, nell’immagine seguente, lo schema di collegamento realizzato con Fritzing:

blank
Schema di collegamento

I GPIO utilizzati sono 3 e, più precisamente, sono il 5, il 18 e il 19 e servono per controllare il ponte H. L’ESP32 viene alimentato dal cavo USB collegato al computer mentre il motore viene alimentato dalle batterie in quanto assorbe una corrente relativamente alta. Le due alimentazioni hanno in comune la massa.

Nella immagine seguente puoi vedere una foto del porta batterie utilizzato in questo progetto:

Il porta batterie
Il porta batterie

Come vedi il collegamento è abbastanza semplice. In realtà potresti anche fare a meno della breadboard, a meno che non voglia aggiungere qualche altro componente.

Lo sketch

Creiamo il progetto PlatformIO

Abbiamo già visto la procedura di creazione di un progetto PlatformIO nell’articolo Come creare un progetto per NodeMCU ESP8266 con PlatformIO.

Anche se si riferisce alla board ESP8266, la procedura è simile.
Semplicemente, nella scelta della piattaforma, dovrai scegliere la AZ-Delivery ESP-32 Dev Kit C V4.

Non installare le librerie indicate in quell’articolo perché non ci servono in questo progetto. Però devi, seguendo la procedura indicata nell’articolo, installare la libreria BluetoothSerial by Seeed come mostrato nell’immagine seguente:

Installazione della libreria BluetoothSerial
Installazione della libreria BluetoothSerial

Ora modifica il file platformio.ini per aggiungere queste due righe:

monitor_speed = 115200
upload_speed = 921600

in modo che il file abbia un aspetto del genere:

[env:az-delivery-devkit-v4]
platform = espressif32
board = az-delivery-devkit-v4
monitor_speed = 115200
upload_speed = 921600
framework = arduino
lib_deps = mbed-seeed/[email protected]+sha.f56002898ee8

Ovviamente puoi scaricare il progetto dal link seguente:

Sostituisci il file main.cpp del progetto che hai creato con quello presente nel file zip.

Vediamo ora come funziona lo sketch.

Inizialmente vengono incluse le librerie necessarie:

#include <Arduino.h>
#include "BluetoothSerial.h"

Viene poi instanziato l’oggetto SerialBT che gestisce il Bluetooth e definita la variabile BTData in cui transiteranno i dati ricevuti dal Bluetooth:

BluetoothSerial SerialBT;
byte BTData;

Definiamo poi i GPIO usati per il controllo del motore:

// GPIOs DC motor
int DCmotorInput1 = 19;               // IN1
int DCmotorInput2 = 18;               // IN2
int EnableDCmotor = 5;                // ENA

Subito dopo vengono definiti i parametri di funzionamento del PWM e la variabile dutyCycle, inizializzata a 200:

// Configuring the PWM values
const int PWM_Frequency = 5000;
const int PWM_Channel = 0;
const int PWM_Resolution = 8;
int dutyCycle = 200;

Nella funzione setup si inizializza la porta seriale e si attende che sia pronta:

Serial.begin(115200);
delay(2000);

Si configurano i GPIO come uscite:

// Configuring the output GPIOs
pinMode(DCmotorInput1, OUTPUT);
pinMode(DCmotorInput2, OUTPUT);
pinMode(EnableDCmotor, OUTPUT);

Si configura l’uscita del canale PWM e lo si connette al pin EnableDCmotor:

// Configuring the PWM output
ledcSetup(PWM_Channel, PWM_Frequency, PWM_Resolution);
  
// Connecting the PWM channel
ledcAttachPin(EnableDCmotor, PWM_Channel);

Infine si attiva il Bluetooth:

// Starts the Bluetooth device
SerialBT.begin();
Serial.println("Bluetooth Started! Ready to pair...");

Se desideri assegnare un nome specifico al dispositivo Bluetooth ESP32 è necessario specificarlo come argomento della funzione SerialBT.begin(). Ad esempio, se vuoi chiamarlo myESP32BT, inserisci SerialBT.begin(“myESP32BT”).
Se lasci il comando senza un parametro, ad esempio SerialBT.begin(), verrà applicato il nome predefinito ESP32.

Incontriamo ora la funzione loop.

La prima parte legge il carattere inviato dall’applicazione sul cellulare (che vedremo in seguito) verso l’ESP32:

if(SerialBT.available())
{
  BTData = SerialBT.read();
}

Segue la decodifica dei comandi:

if(BTData == 'S')
{
  // Stops the DC motor
  Serial.println("Motor stopped");
  digitalWrite(DCmotorInput1, LOW);
  digitalWrite(DCmotorInput2, LOW);
  delay(1000);
}

Quando viene ricevuto il comando S (Stop) i due pin DCmotorInput1 e DCmotorInput2 vengono messi nello stato LOW. In questo caso il motore si ferma.

if(BTData == 'F')
{
  // Moves the DC motor forward with speed according to PWM duty cycle
  Serial.println("Moving Forward");
  digitalWrite(DCmotorInput1, LOW);
  digitalWrite(DCmotorInput2, HIGH); 
  ledcWrite(PWM_Channel, dutyCycle); 
  delay(2000);
}

Quando viene ricevuto il comando F (Forward) il pin DCmotorInput1 viene messo a LOW mentre il pin DCmotorInput2 viene messo nello stato HIGH. In questo caso il motore gira in un senso. Inoltre viene scritto nel canale PWM il valore presente nella variabile dutyCycle. La velocità di rotazione sarà proporzionale a questo valore.

if(BTData == 'B')
{
  // Moves the DC motor backwards with speed according to PWM duty cycle
  Serial.println("Moving Backwards");
  digitalWrite(DCmotorInput1, HIGH);
  digitalWrite(DCmotorInput2, LOW); 
  ledcWrite(PWM_Channel, dutyCycle); 
  delay(2000);
}

Quando viene ricevuto il comando B (Backwards) il pin DCmotorInput1 viene messo a HIGH mentre il pin DCmotorInput2 viene messo nello stato LOW. In questo caso il motore gira nel senso opposto. Inoltre viene scritto nel canale PWM il valore presente nella variabile dutyCycle. La velocità di rotazione sarà proporzionale a questo valore.

if(BTData == 'I')
{
  // Increments the PWM duty cycle by 10
  dutyCycle = dutyCycle + 10;
  // Limits the PWM duty cycle value to a maximum of 250
  if(dutyCycle >= 250)
  {
    dutyCycle = 250;
  }
  Serial.print("I ");
  Serial.println(dutyCycle);
  ledcWrite(PWM_Channel, dutyCycle);
}

Quando viene ricevuto il comando I (Increment) il valore contenuto nella variabile dutyCycle viene incrementato di 10 (di conseguenza la velocità di rotazione aumenta). Il valore viene però limitato a 250 in quanto siamo già prossimi al massimo valore impostabile per il PWM che è 255. Inoltre viene scritto nel canale PWM il valore presente nella variabile dutyCycle.

if(BTData == 'D')
{
  // Decrements the PWM duty cycle by 10
  dutyCycle = dutyCycle - 10;
  // Limits the PWM duty cycle value to a minimum of 170
  if(dutyCycle <= 170)
  {
    dutyCycle = 170;
  }
  
  Serial.print("D ");
  Serial.println(dutyCycle);
  ledcWrite(PWM_Channel, dutyCycle);    
}

Quando viene ricevuto il comando D (Decrement) il valore contenuto nella variabile dutyCycle viene decrementato di 10 (di conseguenza la velocità di rotazione diminuisce). Il valore viene però limitato a 170 in quanto per valori inferiori il motore si ferma. Inoltre viene scritto nel canale PWM il valore presente nella variabile dutyCycle.

L’applicazione Serial Bluetooth Terminal

Per mandare i comandi Bluetooth verso l’ESP32 ho scelto di usare l’applicazione Serial Bluetooth Terminal di Kai Morich. Puoi scaricarla dal Play Store.

Ora attiva il Bluetooth nel tuo smartphone e cerca i dispositivi Bluetooth. Dovresti vedere un elenco di Dispositivi associati e Dispositivi disponibili. Vai su Dispositivi disponibili.

Seleziona ESP32 nel caso tu abbia lasciato nello sketch la riga SerialBT.begin() senza parametro, altrimenti scegli il dispositivo col nome che hai messo come parametro in quella riga. Il tuo cellulare ti chiederà se vuoi accoppiarlo con ESP32 (o col nome che gli hai impostato). A questo punto dai OK. Non c’è bisogno di password.

Apri l’applicazione Serial Bluetooth Terminal e clicca nel punto indicato nell’immagine seguente:

Clicca nel punto indicato per far uscire il menu
Clicca nel punto indicato per far uscire il menu

Seleziona la voce Devices come indicato nella figura sotto:

Seleziona la voce Devices
Seleziona la voce Devices

Si aprirà un altro menu dal quale dovrai selezionare il tuo dispositivo (per esempio ESP32):

Seleziona il dispositivo
Seleziona il dispositivo

Clicca ora nel punto indicato nell’immagine seguente per connettere l’applicazione al dispositivo selezionato:

Connetti l'applicazione al dispositivo
Connetti l’applicazione al dispositivo

Se tutto va bene dovrebbe stabilirsi la connessione:

Connessione avvenuta
Connessione avvenuta

A questo punto devi registrare i comandi da inviare al dispositivo con delle macro nell’applicazione. Tieni premuto il tasto M1. Si aprirà il menu per editarlo:

Realizziamo la prima macro
Realizziamo la prima macro

Al posto di M1, nel campo Name metti il carattere S e riempi il campo Value sempre con il carattere S, poi salva premendo nel punto indicato:

La prima macro è pronta
La prima macro è pronta

Ripetendo la stessa identica procedura esegui le seguenti associazioni:

  • su M2 metti il carattere F nei campi Name e Value
  • su M3 metti il carattere B nei campi Name e Value
  • su M4 metti la scritta +10 nel campo Name e il carattere I nel campo Value
  • su M5 metti la scritta -10 nel campo Name e il carattere D nel campo Value
  • M6 lascialo invariato

Alla fine dovresti avere una schermata come questa:

blank
Ecco come appare la schermata dopo aver registrato tutte le macro

Premendo il tasto S farai fermare il motore. Premendo il tasto F farai andare avanti il motore (puoi regolarne la velocità tramite i tasti +10 e -10) mentre premendo il tasto B farai girare il motore nel senso opposto (sempre con la possibilità di regolare la velocità con i tasti +10 e -10). I tasti +10 e -10 non fanno altro che incrementare/decrementare di dieci unità il duty cycle del PWM (entro i limiti di 170 e 250 perchè per duty cycle inferiore a 170 il motore ha difficoltà a ruotare mentre a 250 è quasi arrivato al massimo valore che è 255).

Video del funzionamento

Qui sotto puoi vedere un semplice video che mostra il funzionamento del dispositivo:

Video del funzionamento

Per rendere più evidente la rotazione del motore ho attaccato una ruota sull’asse del motore.

Newsletter

Se vuoi essere aggiornato sui nuovi articoli, iscriviti alla newsletter. Prima dell’iscrizione alla newsletter leggi la pagina Privacy Policy (UE)

Se ti vuoi disiscrivere dalla newsletter clicca sul link che troverai nella mail della newsletter.

Inserisci il tuo nome
Inserisci la tua email
0 0 votes
Valutazione articolo
guest
0 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
Torna in alto