Šioje pamokoje mes valdysime ARDUINO UNO servovariklį. „Servo“ varikliai naudojami ten, kur reikia tikslaus veleno judėjimo ar padėties. Jie nėra siūlomi didelės spartos programoms. Jie siūlomi mažam greičiui, vidutiniam sukimo momentui ir tiksliam padėties pritaikymui. Šie varikliai naudojami robotinėse rankose, skrydžio valdymo ir valdymo sistemose.
Servo varikliai yra įvairių formų ir dydžių. Servo variklyje daugiausia bus laidai, vienas skirtas teigiamai įtampai, kitas - žemei, o paskutinis - padėčiai nustatyti. RED laidas yra prijungtas prie maitinimo šaltinio, juodas laidas yra prijungtas prie žemės, o geltonas laidas - prie signalo.
Servovariklis yra nuolatinės srovės variklio, padėties valdymo sistemos, pavarų derinys. Nuolatinės srovės variklio ašies padėtį reguliuoja servo valdymo elektronika, atsižvelgiant į PWM signalo, SIGNAL kaiščio, darbo santykį.
Tiesiog kalbant apie valdymo elektroniką, reguliuokite veleno padėtį valdydami nuolatinės srovės variklį. Šie duomenys apie veleno padėtį siunčiami per SIGNAL kaištį. Padėties duomenys valdikliui turėtų būti siunčiami PWM signalo forma per servo variklio signalo kaištį.
PWM (moduliuojamas impulso pločio) signalo dažnis gali skirtis priklausomai nuo servo variklio tipo. Svarbus dalykas yra PWM signalo PAREIGOS RATIO. Remiantis šiuo PAREIGOS RATU, valdymo elektronika sureguliuoja veleną.
Kaip parodyta žemiau esančiame paveikslėlyje, norint, kad velenas būtų perkeltas į 9o laikrodį, ĮJUNGIMO RATAS turi būti 1 / 18.j 1 ms įjungimo laiko ir 17 ms išjungimo laiko 18 ms signalu.
Kad velenas būtų perkeltas į 12o laikrodį, signalo įjungimo laikas turi būti 1,5 ms, o išjungimo laikas - 16,5 ms. Šį santykį dekoduoja valdymo sistema servo serveryje ir pagal jį jis koreguoja padėtį. Šis PWM čia sukurtas naudojant ARDUINO UNO.
Grandinės komponentai
Aparatūra: „ ARDUINO UNO“, maitinimo šaltinis (5v), 100uF kondensatorius, mygtukai (dvi dalys), 1KΩ rezistorius (du elementai), servovariklis (kurį reikėjo išbandyti).
Programinė įranga: „ arduino IDE“ (naktinis „Arduino“).
„Arduino“ servo variklio grandinės schema ir paaiškinimas
Normaliais atvejais, norėdami reguliuoti dažnį ir gauti reikiamą darbo santykį, norėdami tiksliai nustatyti servo padėties valdymą, turime eiti į valdiklio registrus, ARDUINO neturime to daryti.
„ARDUINO“ turime iš anksto nustatytas bibliotekas, kurios atitinkamai nustatys dažnius ir darbo santykius, kai bus iškviestas arba įtrauktas antraštės failas. „ARDUINO“ mes tiesiog turime nurodyti reikalingą servo padėtį, o UNO automatiškai sureguliuoja PWM.
Tai, ką turime padaryti, kad gautume tikslią servo padėtį, yra šie:
|
Pirmiausia turime nustatyti PWM signalo dažnį ir tam turėtume paskambinti „#include
Dabar mes turime apibrėžti servo pavadinimą „Servo sg90sevo“, čia „sg90servo“ yra pasirinktas vardas, taigi, rašydami gėrimui, mes naudosime šį pavadinimą, ši funkcija bus naudinga, kai turime daugybę servo valdyti, tuo galime valdyti net aštuonis servo servo.
Dabar mes UNO pasakome, kur prijungtas servo signalo kaištis arba kur reikia generuoti PWM signalą. Norėdami tai padaryti, turime „Sg90.attach (3);“, čia mes sakome UNO, kad mes prijungėme servo signalo kaištį PIN3.
Liko tik nustatyti padėtį, mes nustatysime servo padėtį naudodami „Sg90.write (30);“. Šia komanda servo ranka pasislenka 30 laipsnių kampu, taigi viskas. Po to, kai tik reikia pakeisti servo padėtį, turime iškviesti komandą „Sg90.write (needed_position_ angle);“. Šioje grandinėje turėsime du mygtukus, vienas mygtukas padidins servo padėtį, o kitas skirtas servo padėčiai mažinti.
„ Arduino Servo Motor“ valdymo pamoka yra paaiškinta toliau pateiktame C kode.