Descrizione
[vc_row][vc_column][vc_column_text]
Descrizione del motore K30 (Mabuchi K30 Micro DC Motor)
- Tipo: motore DC a magneti permanenti (spazzolato)
- Tensione di funzionamento: 1,5 V – 6 V DC
- Dimensioni: diametro circa 6 × 8 mm, lunghezza circa 20 mm (eBay UK)
- Velocità a pieno regime: fino a circa 27 000 RPM a 6 V (eBay UK)
- Costruzione: compatto, ideale per piccoli progetti hobbistici o dispositivi portatili dove serve velocità ma non grande coppia
Guida all’utilizzo con Arduino
1. Alimentazione e protezione
- Non collegare il motore direttamente ai pin di Arduino, poiché questi forniscono al massimo 20 mA, insufficiente per far girare il motore e rischioso per la scheda. (docs.sunfounder.com)
- Utilizza un transistor MOSFET (es. IRLZ44N) o un ponte H (es. L298N) per pilotarlo. Aggiungi sempre un diodo di protezione (flyback) in parallelo al motore per evitare picchi di tensione dannosi.
2. Schema di collegamento (con transistor N-channel)
[Arduino PIN digitale] → [Resistenza ~220 Ω] → Gate MOSFET
Drain MOSFET → motore → +5 V (o 6 V)
Source MOSFET → GND
Diodo flyback tra i terminali del motore (anodo su MOSFET side, catodo su alimentazione motore)
3. Esempio di programma (PWM)
const int motorPin = 9; // PWM-capable pin
void setup() {
pinMode(motorPin, OUTPUT);
}
void loop() {
// Aumenta gradualmente la velocità
for (int speed = 0; speed <= 255; speed += 5) {
analogWrite(motorPin, speed);
delay(20);
}
delay(500);
// Mantieni velocità
analogWrite(motorPin, 200);
delay(2000);
// Riduci gradualmente la velocità
for (int speed = 200; speed >= 0; speed -= 5) {
analogWrite(motorPin, speed);
delay(20);
}
delay(500);
}
analogWrite()modula la velocità tramite PWM (da 0 a 255).- Puoi modificare pin, velocità e tempi per adattare al tuo progetto.
4. Esempi di utilizzo pratico
- Ventola per mini-robot, agitatori, pompe miniaturizzate, o come base per un mini trapano.
- Con un sensore tachimetrico (optico o magnetico) e interrupt Arduino puoi misurare i giri e realizzare un controllo in feedback (PID).
Riepilogo
| Elemento | Dettagli |
|---|---|
| Tipo di motore | DC spazzolato a magneti permanenti, 1,5–6 V, compatto |
| Protezione necessaria | MOSFET o ponte H + diodo flyback |
| Controllo velocità | PWM su pin digitale (es. D9), analogWrite() |
| Applicazioni tipiche | Robot, modellismo, mini-agitatori, sistemi di raffreddamento |
| Espansioni possibili | Tachimetria, controllo di velocità a feedback, sensori |
Ottimo — ecco esempi pratici e completi per pilotare il motore DC K30 (1.5–6 V) usando L293D e L298N con Arduino. Includo collegamenti, spiegazioni sui pin importanti, codice Arduino (velocità + direzione + frenata) e consigli pratici (alimentazione, limiti di corrente, protezioni). Metto le fonti principali alle affermazioni tecniche più importanti.
1) Note generali prima di iniziare
- Non collegare il motore direttamente ai pin di Arduino. Usa sempre un driver o un transistor e un’alimentazione esterna per il motore; Arduino non fornisce corrente sufficiente.
- Controlla la corrente assorbita dal tuo motore (corrente a regime e corrente di stallo) e scegli il driver di conseguenza (L293D è per correnti più piccole, L298N supporta correnti più alte). (Utmel, How To Mechatronics)
2) L293D — caratteristiche essenziali
- IC a 16 pin, contiene due H-bridge (può controllare 2 motori).
- Corrente continua per canale: ~600 mA (picco 1.2 A non ripetitivo).
- Ha diodi di protezione (internal clamp diodes) integrati nella versione L293D (cioè protegge dalle sovratensioni di ritorno dovute all’induttanza del motore). (STMicroelectronics, Texas Instruments)
Collegamento tipico (1 motore) — schema testuale
- Pin 1 (1,2EN) → PWM da Arduino (es. D9) oppure HIGH per abilitare continuamente.
- Pin 2 (IN1) → digitale Arduino (es. D8)
- Pin 7 (IN2) → digitale Arduino (es. D7)
- Pin 3 (OUT1) → motore terminale A
- Pin 6 (OUT2) → motore terminale B
- Pin 4,5,12,13 → GND (collegarli al GND comune)
- Pin 8 (Vcc2, alimentazione motore) → 1.5–36 V (usa alimentazione esterna adatta al K30, tipicamente 3–6 V)
- Pin 16 (Vcc1, logica) → +5 V (Arduino 5 V)
- Condensatore di disaccoppiamento vicino ai pin di alimentazione (100 µF + 0.1 µF).
- Metti a terra la GND dell’alimentatore motore con il GND di Arduino.
Nota: la L293 (senza D) non ha i diodi interni e richiede diodi esterni; il modello L293D sì. (Texas Instruments)
Codice Arduino (L293D) — avanti / indietro + PWM
// L293D example - motor on pins IN1, IN2, enable via PWM
const int enPin = 9; // PWM pin to 1,2EN
const int in1 = 8;
const int in2 = 7;
void setup() {
pinMode(enPin, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
}
void loop() {
// Avanti a velocità crescente
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
for (int v = 0; v <= 255; v += 5) {
analogWrite(enPin, v);
delay(20);
}
delay(1000);
// Frenata (short brake): portare entrambi HIGH o entrambi LOW a seconda del driver
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
analogWrite(enPin, 0);
delay(400);
// Indietro
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enPin, 200);
delay(1500);
// Stop (coast)
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(enPin, 0);
delay(1000);
}
- Usa l’enable come pin PWM (più semplice) o applica PWM direttamente ad un input ma attenzione alla logica del chip. (circuitdigest.com)
3) L298N — caratteristiche essenziali
- È un driver dual H-bridge discreto (più “vecchio stile”), tipico su moduli venduti con dissipatore e regolatore 5 V. Può gestire correnti maggiori (tipicamente fino ~2 A per canale nei limiti termici).
- Il chip L298N NON include i diodi di clamp interni; i moduli comunemente venduti spesso includono diodi di protezione e un regolatore 5 V sulla scheda (jumper per abilitare il 5 V uscita se la tensione motore ≤12 V). Controlla sempre il modulo che hai. (How To Mechatronics, Arduino Project Hub)
Collegamento tipico modulo L298N (1 motore)
- Vcc (Motor Vcc, spesso etichettato 12V) → alimentazione motore esterna (per K30 usare 3–6 V se modulo e motore lo permettono).
- 5V (Vss / logic) → se il modulo non fornisce alimentazione, collega al 5V Arduino; su molti moduli c’è un jumper che abilita un regolatore on-board e fornisce 5V quando la Vcc motore è 7–12V. Se fornisci >12V al motore, rimuovi il jumper (per non danneggiare il regolatore). (How To Mechatronics, Arduino Project Hub)
- ENA (Enable A) → PWM Arduino (es. D9) per motore A
- IN1, IN2 → pin digitali Arduino (direzione)
- OUT1, OUT2 → motore terminali
- GND comune → collega GND alimentazione motore e GND Arduino
Schema testuale rapido
Arduino D9 (PWM) -> ENA
Arduino D8 -> IN1
Arduino D7 -> IN2
OUT1 -> motore (+)
OUT2 -> motore (-)
Vcc_motore -> alimentatore esterno (3-12V as needed)
5V logic -> Arduino 5V (or module regulator)
Allgrounds common
Codice Arduino (L298N)
// L298N example - speed + direction using ENA as PWM
const int enA = 9; // PWM
const int in1 = 8;
const int in2 = 7;
void setup() {
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
}
void loop() {
// Avanti a 70%
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, 180); // 0..255
delay(2000);
// Stop (coast)
analogWrite(enA, 0);
delay(500);
// Indietro a 50%
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 128);
delay(2000);
// Brake breve (short brake)
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
analogWrite(enA, 0);
delay(400);
// Fine ciclo
analogWrite(enA, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(1000);
}
- Se il tuo modulo L298N ha il jumper per il regolatore 5 V, leggi le istruzioni: con tensioni motore >12 V togli il jumper per non bruciare il regolatore. (How To Mechatronics)
4) Scelta L293D vs L298N — quale usare per il K30?
- Se il motore K30 assorbe <600 mA: L293D è semplice e va bene (meno ingombro, diodi interni).
- Se il motore può assorbire correnti più alte (picchi o stall >1A): preferisci L298N o driver più moderni (es. MOSFET driver o driver a ponte H basati su MOSFET come TB6612FNG, DRV8833, o un singolo MOSFET se non serve inversione). (Utmel, regentelectronics.com)
Suggerimento: per efficienza e minor dissipazione usa driver a MOSFET (TB6612, DRV8833 o ponte H basato su MOSFET) rispetto al L298N che dissipa molto calore.
5) Buone pratiche e troubleshooting rapido
- Sempre GND comune tra Arduino e alimentatore motore.
- Condensatori (100 µF o più) vicino ai terminali di alimentazione del driver per sopprimere transitori.
- Heat sink su L298N se usi correnti elevate.
- Non superare la corrente nominale: usa fusibile o limitatore di corrente se necessario.
- Misura con multimetro la corrente a regime e allo spunto; se vedi surriscaldamento o caduta di tensione, passa a driver più robusto.
- Se il PWM non sembra funzionare correttamente con L293D/L298N: prova a mettere il PWM sull’enable e non sugli input di direzione (pratica comune e più stabile). (circuitdigest.com, Arduino Forum)
6) Esempio avanzato — lettura RPM e controllo PID (concetto rapido)
- Aggiungi un sensore ottico o encoder magnetico sul motor shaft (o una ruota con fori) e conta i passaggi con un interrupt Arduino → ricava RPM.
- Applica un semplice PID per regolare PWM e mantenere la velocità desiderata sotto carico. Posso fornirti codice completo per encoder + PID se vuoi.
Fonti utili (letture rapide)
- Datasheet L293D (ST / TI) — specifica diodi interni e correnti. (STMicroelectronics, Texas Instruments)
- Tutorial L298N (HowToMechatronics, Arduino Project Hub) — spiega jumper 5V e connessioni del modulo. (How To Mechatronics, Arduino Project Hub)
- Riepiloghi e differenze L293D vs L298N (correnti e limiti). (Utmel, regentelectronics.com)
[/vc_column_text][/vc_column][/vc_row]








