Controlați un servomotor cu o placa Arduino Genuino Carnet du maker - L; Spiritul Do It Yourself

3, 2, 1, se întoarce !

arduino

de skywodd | 4 mai 2016 | Licență (vezi subsol)

Acest articol a fost modificat ultima dată pe 5 mai 2016 la 11:43.

Acest articol nu a fost actualizat de ceva timp, conținutul acestuia poate fi depășit.

În acest tutorial, vom învăța împreună cum să folosim servome de construcție de modele cu o placă Arduino/Genuino. Vom studia funcția unui servomotor și vom face câteva teste cu un model clasic de servomotor. Ca bonus, vom vedea cum să profităm de toate funcțiile oferite de biblioteca Arduino „Servo”.

rezumat

  • Principiul de funcționare și control al unui servomotor
  • Utilizarea unui servomotor cu o placă Arduino/Genuino
    • Montare
    • Codul
      • Implementarea bibliotecii Servo
      • Inițializarea Servo Library
      • Schimbarea unghiului servomotorului
      • Exemplu: Mătură
  • Concluzie

Salutare tuturor !

În acest tutorial, ne vom concentra pe servomotoare și utilizarea servomotorelor cu o placă Arduino/Genuino.

Servomotoarele sunt motoare oarecum specifice, care se pot roti cu o libertate de aproximativ 180 ° și păstrează relativ precis unghiul de rotație pe care dorim să îl obținem.

Servomotoarele sunt utilizate în mod obișnuit în modelare pentru a controla sistemele mecanice (cârma avionului, acceleratorul motorului termic etc.). Servomotoarele sunt, de asemenea, utilizate în mod obișnuit în robotică pentru a produce mini-roboți, actuatori sau indicatori rotativi.

Principiul de funcționare și control al unui servomotor

Servomotor chinezesc "9 grame"

Un servomotor de construcție model are forma unui mic dreptunghi cu două cleme pe laturi pentru fixare și o axă descentrată cu un braț (interschimbabil) pentru conexiunea mecanică.

Actuator Futuba S3003

Există diferite tipuri de servomotoare, diferite ca mărime, greutate și cuplu (forță). Fotografia de mai sus prezintă un servomotor de modelare foarte clasic: Futuba S3003. Puțin mai jos în articol, vom folosi un alt servomotor, denumit în mod obișnuit „servomotor de 9 grame”, de dragul consumului de energie electrică.

Vedere explodată a unui servomotor

Funcționarea interioară a unui servomotor este destul de simplă.

Un mic circuit electronic permite controlul unui motor de curent continuu în funcție de poziția unui potențiometru integrat în servomotor.

Ieșirea motorului de curent continuu este conectată mecanic la o serie de roți dințate care cresc forța (cuplul) servomotorului prin reducerea vitezei de rotație a acestuia din urmă.

Când motorul funcționează, angrenajele prind viață, brațul se mișcă și acționează potențiometrul cu el. Circuitul electronic reglează continuu turația motorului astfel încât potențiometrul (și prin extensie brațul) să rămână întotdeauna în același loc.

Este suficient să acordați un punct de referință servomotorului (de exemplu, „stați la 45 °”) și servomotorul va face tot posibilul să rămână cât mai aproape de acest punct de referință.

Ilustrarea semnalului de control

Acest setpoint este transmis prin intermediul unui semnal digital, un impuls pentru a fi precis.

Pentru ca servomotorul să rămână într-o poziție dată, este necesar să transmită la fiecare 20 de milisecunde (adică la o frecvență de 50Hz) un impuls cu o lungime cuprinsă între 1 și 2 milisecunde.

Un impuls de 1 milisecundă corespunde unui unghi de 0 °.

Un impuls de 2 milisecunde corespunde unui unghi de 180 °.

Prin trimiterea unui impuls de lungime intermediară, obținem unghiuri diferite, de 90 ° cu un impuls de 1,5 milisecunde, de exemplu.

N.B. Majoritatea servomotoarelor funcționează la 5 volți, dar unele funcționează la 3,3 volți. Asigurați-vă că ați citit documentația servomotorului înainte de ao utiliza.

Utilizarea unui servomotor cu o placă Arduino/Genuino

În acest capitol, vom implementa un servomotor mic de "9 grame" cu o placă Arduino/Genuino.

Montare

Pentru a realiza această asamblare, vom avea nevoie de:

O placă Arduino UNO (și cablul USB),

Un servomotor „9 grame” sau similar,

Firuri pentru a ne conecta servomotorul.

Vedere schematică a ansamblului

Vizualizare prototip a ansamblului

Cablarea este relativ simplă: fir roșu de la servomotor la pinul de 5V al plăcii Arduino, fir negru la pinul GND și fir alb (sau galben în funcție de producători) la pinul D9 al plăcii Arduino.

Ansamblul terminat

În cazul servomotorului meu, producătorul (chinezesc) a fost mulțumit de culori. Deci am un fir maro în loc de negru și un fir portocaliu în loc de roșu. Dacă aveți dubii, consultați întotdeauna documentația producătorului

PS Cu un servomotor standard, puterea este întotdeauna pe firul de mijloc.

O problemă recurentă cu ansamblul de mai sus este pierderea comunicației USB și/sau repornirea prematură a plăcii Arduino.

Acest lucru se datorează consumului de energie al servomotorului. Un servomotor consumă mult curent, uneori prea mult pentru o placă simplă Arduino. Acest consum excesiv declanșează siguranța electronică a plăcilor Arduino și are ca efect repornirea acestora.

Există o singură soluție la această problemă: conectați alimentarea servomotorului la o sursă de alimentare dedicată de 5 volți.

Vedere de prototip a ansamblului (cu o sursă de alimentare externă + 5V DC)