Se vuoi usare un file servomotore o servo, Con Arduino, in questo articolo imparerai di cosa hai bisogno per iniziare. Abbiamo già visto in altri articoli cosa è necessario utilizzare motori elettrici, motori passo-passo, e anche altri concetti necessari per comprendere il funzionamento di questo tipo di dispositivo, come l'articolo su %PWM.
Ora puoi aggiungere un altro nuovo componente elettronico a l'elenco dei dispositivi analizzato e che puoi andare integrando i tuoi progetti fai da te per aggiungere nuove funzionalità.
Cos'è un servo?
Un servomotore, o semplicemente servo, è un motore elettronico con somiglianze con i motori CC convenzionali, ma con alcuni elementi che li rendono speciali. In questo caso, ha la capacità di mantenere una posizione indicata, cosa che i motori elettrici non consentono.
D'altra parte, anche il servo può controllo preciso la velocità di rotazione, grazie ad una serie di ingranaggi interni e ad un sistema che permette un controllo molto migliore di quanto si potrebbe fare in altri tipi di motori.
Queste caratteristiche lo rendono particolarmente interessante per applicazioni robotica, o per altri dispositivi dove è necessario controllare il movimento e la posizione, come una stampante o un'auto telecomandata. In questo tipo di auto radiocomandate è presente un motore convenzionale per guidare l'auto, e un servo per lo sterzo, con il quale controllare con precisione la svolta.
Differenza tra motore passo-passo e servomotore
Se lo chiedi la differenza tra un servomotore e un motore passo-passo, la verità è che possono essere confusi, poiché nel motore passo-passo, o passo-passo, anche la rotazione può essere controllata in modo abbastanza preciso e le applicazioni sono molto simili al servo. Invece, ci sono alcune differenze.
Ed è che i servomotori usano tipicamente magneti delle terre rare, mentre i motori passo-passo utilizzano magneti più economici e più convenzionali. Pertanto, un servo può raggiungere uno sviluppo di coppia maggiore, nonostante rimanga compatto. Pertanto, la forza di rotazione sarà molto alta.
caratteristiche tecniche
Ogni volta che acquisti un servo, dovresti consultare la sua scheda tecnica o scheda tecnica. In questo modo, assicurerai il file caratteristiche tecniche ha, ma anche i limiti a cui puoi sottoporlo, come tensione, intensità, carico massimo, coppia, ecc. Ricorda che ogni modello può essere molto diverso.
Ad esempio, se guardi uno dei più popolari, il Micro Servo 9G SG90 di la nota azienda Tower Pro, quindi avrai delle caratteristiche molto peculiari, anche se la programmazione e il collegamento dei modelli sono più o meno le stesse e tutto quanto detto qui è utile per chiunque.
Nel caso di questo modello, si tratta di un motore di alta qualità, con un angolo di rotazione che consente a spazzare tra -90 e 90º, cioè un giro totale di 180º. La risoluzione che puoi ottenere è molto alta, quindi sarai in grado di avanzare molto poco a poco. Ad esempio, con le limitazioni del segnale PWM di Arduino UNO, potresti persino ottenere un anticipo di grado in grado.
Allo stesso modo, il segnale PWM imporrà anche un altro limite, ed è il numero di volte che ogni posizione può cambiare per unità di tempo. Ad esempio, poiché gli impulsi funzionano con tra 1 e 2 ms e con Periodi di 20 ms (50Hz), quindi il servo può muoversi una volta ogni 20 ms.
Inoltre avrà un peso di 9 grammi e, nonostante quel peso e le dimensioni compatte, potrà sviluppare a coppia o coppia di 1.8 kg / cm con 4.8v. Questo grazie al suo set di ingranaggi POM.
Infine, sai già che, a seconda di cosa vuoi ottenere, dovrai scegliere uno o un altro modello, in modo che abbia il caratteristiche necessarie per il tuo progetto. Cioè, non è la stessa cosa che vuoi che un motore muova un carico X, piuttosto che uno per XX ...
Dove acquistare un servo
Se vuoi iniziare a utilizzare questo tipo di servomotore, puoi trovarlo a buon mercato in molti negozi specializzati e puoi anche acquistarlo online su Amazon. Ad esempio, ecco alcuni esempi di prodotti consigliati che potrebbe interessarti:
-
AZDelivery Servo MG90S Micro: supporta fino a 13.4 kg.
- Innovareking-EU: fino a 25 kg / cm.
- Innovareking-EU: un altro modello impermeabile e fino a 35 kg / cm.
Tutti hanno un angolo di torsione abbastanza buono, ma differisce fondamentalmente nella coppia che ognuno può tollerare. ho incluso tre diversi modelli. Il primo, e più economico, può essere sufficiente per la maggior parte delle applicazioni. Ma se ne hai bisogno uno con maggiore forza per altre applicazioni, hai il 25 e il 35, che sono già abbastanza notevoli ...
Integrazione con Arduino
Come puoi vedere nell'immagine sopra, il servo si collega molto facilmente ad Arduino. Ha solo tre cavi, che puoi collegare in questo modo:
- Rosso con 5V
- Nero con GND
- Giallo con un pin PWM Arduino, in questo caso con -9.
Per programmare uno schizzo per iniziare a utilizzare questi tipi di motori, sono disponibili diverse opzioni. Ma, prima di tutto, per iniziare, devi aggiungi la libreria IDE di Arduino per pilotare questo tipo di servomotori:
- Apri l'IDE di Arduino.
- Vai al programma.
- Quindi Includi libreria.
- Servo
Da codice di schizzo, potrebbe essere così semplice in cui il servo attraverserà le sue posizioni fermandosi a 0º, 90º e 180º:
//Incluir la biblioteca del servo #include <Servo.h> //Declarar la variable para el servo Servo servoMotor; void setup() { // Iniciar el monitor serie Serial.begin(9600); // Iniciar el servo para que use el pin 9 al que conectamos servoMotor.attach(9); } void loop() { // Desplazar a la posición 0º servoMotor.write(0); // Esperar 1 segundo delay(1000); // Desplazar a la posición 90º servoMotor.write(90); // Esperar 1 segundo delay(1000); // Desplazamos a la posición 180º servoMotor.write(180); // Esperar 1 segundo delay(1000); }
Adesso se vuoi spostalo di grado in grado, allora sarebbe così:
// Incluir la biblioteca servo #include <Servo.h> // Declarar la variable para el servo Servo servoMotor; void setup() { // Iniciar la velocidad de serie Serial.begin(9600); // Poner el servo en el pin 9 servoMotor.attach(9); // Iniciar el servo en 0º servoMotor.write(0); } void loop() { // Los bucles serán positivos o negativos, en función el sentido del giro // Positivo for (int i = 0; i <= 180; i++) { // Desplazar ángulo correspondiente servoMotor.write(i); // Pausa de 25 ms delay(25); } // Negativo for (int i = 179; i > 0; i--) { // Desplazar el ángulo correspondiente servoMotor.write(i); // Pausa e 25 ms delay(25); } }