Som diskuterats tidigare är Arduino Due ett ARM-styrbaserat kort designat för elektroniska ingenjörer och hobbyister. Detta DUE-kort kan användas för tillverkning av CNC-maskiner, 3D-skrivare, robotar etc. Alla dessa projekt har en gemensam funktion som är Positionskontroll. Något av dessa projekt behöver noggrannhet för sin position. Exakta positioner i dessa maskiner kan uppnås av Servo Motors. I den här sessionen ska vi kontrollera positionen för en Servomotor med Arduino Due. Vi har redan täckt Servo Motor Interfacing med Arduino Uno och Servo Motor Interfacing med 8051 Microcontroller.
Servomotorer:
Servomotorer är kända för sin exakta axelrörelse eller position. Dessa föreslås inte för höghastighetsapplikationer. Dessa föreslås för låg hastighet, medelvridande vridmoment och korrekt positionstillämpning. Dessa motorer används i robotarmsmaskiner, flygkontroller och styrsystem. Servomotorer används också i vissa skrivare och faxmaskiner.
Servomotorer finns i olika former och storlekar. Vi kommer att använda SG90 Servomotor i denna handledning. SG90 är en 180 graders servomotor. Så med denna servo kan vi placera axeln från 0 till 180 grader.
En servomotor har huvudsakligen tre ledningar, en är för positiv spänning, en annan är för jord och den sista är för lägesinställning. Den RÖDA ledningen är ansluten till ström, den brun ledningen är ansluten till jord och GUL ledning (eller VIT) är ansluten till signalen.
En servomotor är en kombination av likströmsmotor, positionskontrollsystem och växlar. I servo har vi ett styrsystem som tar PWM-signalen från signalstiftet. Den avkodar signalen och får arbetsförhållandet från den. Därefter jämförs förhållandet med de fördefinierade positionsvärdena. Om det finns en skillnad i värdena justerar den servopositionen i enlighet med detta. Så servomotorns axelposition baseras på PWM-signalens arbetsförhållande till SIGNAL-stiftet.
Frekvensen för PWM- signalen (Pulse Width Modulated) kan variera beroende på typ av servomotor. Det viktiga här är PUTM-signalen. Kontrollera detta för PWM med Arduino Due. Men i det här fallet behöver vi inte ens oroa oss för med Duty Ratio-valet. I Arduino har vi en speciell funktion; när vi kallar det kan vi justera positionen för servo, bara genom att ange vinkeln. Vi kommer att prata om det i arbetsavsnittet nedan.
Innan du kopplar ihop servomotorn till Arduino Due kan du testa din servo med hjälp av denna Servo Motor Tester Circuit. Kontrollera även dessa projekt till Control Servo via Flex Sensor eller Force Force.
Komponenter:
Hårdvara: Arduino Due, strömförsörjning (5v), servomotor.
Programvara: Arduino varje natt, ladda ner den från länken nedan (https://www.arduino.cc/en/Main/Software)
För information om hur du laddar ner och installerar den här programvaran, besök den första handboken Komma igång med Arduino Due.
Kretsschema och arbetsförklaring:
Som sagt tidigare i ARDUINO har vi fördefinierade bibliotek, som kommer att ställa in frekvenser och arbetsförhållanden därefter, när huvudfilen har anropats eller inkluderats. I ARDUINO måste vi helt enkelt ange positionen för servo som behövs och DUE genererar lämplig PWM-signal för servon. De saker som vi behöver göra för att få en korrekt position för servon är,
#omfatta
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (behövs_position_vinkel);
Rubrikfilen “#include
För det andra ska ett namn väljas för servon genom att använda "Servo myservo" , här är myservo namnet som valts, så när vi skriver för position ska vi använda det här namnet, den här funktionen är användbar när vi har många servor att kontrollera, vi kan styra så många som 12 servor med detta.
Med Arduino Due som har 12 PWM-kanaler måste vi berätta för DUE var signalstiften på servon är ansluten eller var den behöver generera PWM-signalen. För att göra detta har vi "myservo.attach (2);" , här säger vi DUE att vi har anslutit signalstiftet på servo vid PIN2.
Allt kvar är att ställa in positionen, vi kommer att ställa in positionen för servo genom att använda " myservo.write (45);" , med detta kommando rör sig servohanden 45 grader. Om vi ändrar '45' till '175' vinklar servoaxeln till 175 grader och förblir där. Efter det, närhelst vi behöver ändra positionen för servo behöver vi bara ringa kommandot " myservo.write (needed_position_angle);" .
I programmet ska vi öka och minska vinklarna med hjälp av öglor. Så servo sveper från 0 till 180, sedan från 180 till 0 och så vidare. Den Servo motordrifter från Arduino Due bäst förklaras steg för steg av C-kod nedanför.