Indice
In questo articolo parleremo dei motori elettrici di piccola e media potenza che potremmo usare nel corso dei nostri progetti.
Questi motori hanno un uso più svariato, possono essere utilizzati per creare piccoli rover, droni oppure qualche braccio robotico. Oggi guarderemo in modo più specifico dei motori:
- Motori DC (con/senza spazzole);
- Servomotori;
- Motori passo-passo.
Motore DC
Come suggerisce il nome questo tipo di motore funziona a corrente continua, ed è composto da 2 parti:
- Lo statore, magnete che crea un campo magnetico;
- Il rotore, un avvolgimento di filo di rame;
Posto sotto tensione, il rotore crea un campo magnetico e inizia a girare per induzione elettromagnetica. Il campo elettromagnetico del rotore tende ad allontanarsi dal campo magnetico dello statore, producendo una rotazione continua.
Nei motori che presentano piu poli, vi troviamo delle spazzole (Con spazzole) che forniscono agli avvolgimenti la corrente necessaria per creare il campo elettromagnetico, in modo sequenziale durante la rotazione. Così facendo avremo un scambio di polarità del campo.
I motori senza spazzole è composto da magneti permanenti (nel rotore) e da avvolgimenti alimentati in modo sequenziale. Il vantaggio principale di questo motore è la ridotta resistenza meccanica e la completa assenza di scintille che si andavano a creare con il contatto tra rotore e spazzole. Questo motore senza spazzole (in inglese brushless) è usato un po’ ovunque in particolar modo nei lettori CD e simili. quest’ ultimi sono molto utili anche nel campo dei droni e dei rover.
int motorPin = 13; void setup() { // put your setup code here, to run once: pinMode(motorPin, OUTPUT); } void loop() { //Acceso per un secondo massima velocità digitalWrite(motorPin,HIGH); delay(1000); digitalWrite(motorPin,LOW); delay(500); /*Acceso a velocità controllata * 0 = motore fermo * 255= massima velocità */ analogWrite(motorPin,200); delay(1000); analogWrite(motorPin,0); delay(1000); }
Motore Passo-Passo
I motori passo-passo (step o stepper motor) sono motori brushless nella quale possiamo controllare a passi la posizione del rotore.
A differenza del motore DC, il step motor è utilizzabile nelle applicazioni dove serve controllare la rotazione e fermare in un punto preciso l’albero motore. Questo tipo di motore viene utilizzato principalmente nella robotica e nelle Stampanti 3D.
I motori passo-passo sono principalmente di due tipi:
- unipolari: dotati di due avvolgimenti con un polo comune;
- bipolari: dotati di due avvolgimenti separati.
I bipolari si distinguono dagli unipolari perché hanno quattro pin corrispondenti ai due avvolgimenti separati. Gli unipolari hanno cinque o sei pin a seconda che le coppie centrali siano in comune con un unico pin o con due pin distinti.
Questo tipo di motore verrà approfondito più avanti in un nuovo articolo.
Servomotore
Il servomotore, è un motore passo-passo che comprende dei meccanismi controllati da un microprocessore interno. Studiati per vari utilizzi, i servomotori possono essere di varie dimensioni e di vari angoli (solitamente con rotazione da 0 a 180 gradi o con rotazione completa ovvero fino a 360 gradi). Il controllo dei servomotori è differente rispetto ai motori passo passo.
#include <Servo.h> Servo myservo; int pos = 0; void setup() { myservo.attach(9); } void loop() { //sposta dalla posizione 0 fino alla 180 for(pos = 0; pos <= 180; pos++) { myservo.write(pos); delay(15); } delay(500); //sposta dalla posizione 180 fino a 0 for(pos = 180; pos>=0; pos--) { myservo.write(pos); delay(15); } }
Fonti per l’ articolo:
- Wikipedia: https://it.wikipedia.org/wiki/Motore_elettrico#Motore_in_corrente_continua
- Pier Calderan – Elettronica DIY. La guida per hobbisti e maker (2013)
- E un po’ di esperienza personale con i vari tipi di motore 😀
Fa venir voglia di provarlo subito 🙂
Solo… cosa significa “attach (9)” nei servo? Quanti fili hanno e come li colleghi?
Dove si trova un approfondimento per riuscire a realizzarlo davvero?
Grazie ciao
Grazie Matteo per il tuo commento sopratutto per avermi fatto accorgere di alcune sviste nel’ articolo.
Il servomotore ha 3 pin dove uno va collegato a +Vcc (filo Rosso), uno a GND(Filo Nero o Marrone) e il terzo è il pin di controllo (filo arancione) dove passa l’informazione che indica a quale angolo si deve posizionare l’ asse.
Immagine dei pin del servomotore:
http://2.bp.blogspot.com/-p7fU0wa0yHU/VKnBPT1vwgI/AAAAAAAAAIs/gauXk9a2rhg/s1600/sg90wiring.jpg
La funzione attach() serve per indicare a quale pin di Arduino viene collegato il Pin di controllo del Servo. in questo caso il pin di controllo del servo viene collegato al pin 9 di Arduino.
Se vuoi maggiori approfondimenti su internet si può trovare il mondo su questo argomento, basta saper cercare.
Se hai qualche altro dubbio non esitare a contattarci. 😉
Fa venir voglia di provarlo subito 🙂
Solo… cosa significa “attach (9)” nei servo? Quanti fili hanno e come li colleghi?
Dove si trova un approfondimento per riuscire a realizzarlo davvero?
Grazie ciao
Grazie Matteo per il tuo commento sopratutto per avermi fatto accorgere di alcune sviste nel’ articolo.
Il servomotore ha 3 pin dove uno va collegato a +Vcc (filo Rosso), uno a GND(Filo Nero o Marrone) e il terzo è il pin di controllo (filo arancione) dove passa l’informazione che indica a quale angolo si deve posizionare l’ asse.
Immagine dei pin del servomotore:
http://2.bp.blogspot.com/-p7fU0wa0yHU/VKnBPT1vwgI/AAAAAAAAAIs/gauXk9a2rhg/s1600/sg90wiring.jpg
La funzione attach() serve per indicare a quale pin di Arduino viene collegato il Pin di controllo del Servo. in questo caso il pin di controllo del servo viene collegato al pin 9 di Arduino.
Se vuoi maggiori approfondimenti su internet si può trovare il mondo su questo argomento, basta saper cercare.
Se hai qualche altro dubbio non esitare a contattarci. 😉
Ciao
mi sto avventurando ora nella programmazione Arduino, volevo chiedere nel motore DC utilizziamo il pin 13 che è quello con un resistenza interna, essendo il motore stesso una resistenza, se volessi utilizzare un altro pin dovrei comunque prevedere l’utilizzo di un carico resistivo?
Grazie
Massimo
Ciao Massimo,
Dipende dal motore DC. Di solito i motori DC come quello mostrato nell’immagine dell’articolo necessitano di 3.3V per essere alimentati. Una tensione maggiore porterà si ad un aumento della velocità di rotazione ma, di contro, aumenterà anche il surriscaldamento del motore stesso.
Detto questo la resistenza andrebbe messa per evitare il surriscaldamento alimentando il motore con la giusta tensione. Ti consiglio 2 cose: Valuta se il motore deve rimanere attivo per lunghi periodi (se si allora alimentalo con 3.3V utilizzando opportune resistenze); Il secondo consiglio è quello di provare e vedere cosa succede.
Ho visto motori DC da 3.3V alimentati con una tensione di 9V, lo sentivo piangere a quel motore!! XD
Comunque se farai delle prove facci sapere le tue conclusioni, che possono sempre tornare utili.
Saluti Simone
Ciao,
il tuo articolo è molto interessante, grazie.
Vorrei iniziare a fare qualche esperimento anche io.
Ho questo motore: https://i.ibb.co/T8svfM0/engine.png
ma non ho idea di che tipo di motore sia.
E’ un motorino DC?
grazie mille
Claudio
Ciao,
Si quello è un motorino DC, ma non ne conosco la tensione necessaria per alimentarlo. Per verificarla prova a cercare il relativo datasheet su internet.