- Pulsa platuma modulācija (PWM)
- ATtiny13 programmēšana, izmantojot Arduino
- Nepieciešamās sastāvdaļas
- Shēmas shēma un darbība
Servomotors darbojas uz impulsa platuma modulācijas (PWM) principa, un tā rotācijas leņķi kontrolē impulsa ilgums, kas piemērots tā vadības tapai. Šeit šajā apmācībā mēs vadīsim servomotoru ar mikrokontrolleru ATtiny13, izmantojot PWM tehniku. Tāpēc pirms došanās tālāk mēs vispirms uzzināsim par PWM, servomotoru un to, kā ATtiny13 programmēt ar Arduino Board.
Pulsa platuma modulācija (PWM)
Pulsa platuma modulācija (PWM) ir definēta kā metode analogā signāla ģenerēšanai, izmantojot digitālo avotu. PWM signālu veido divi galvenie komponenti - darba cikls un frekvence. Šie komponenti nosaka tā uzvedību. Darbības cikls apraksta laiku, kad signāls atrodas augstā stāvoklī. To apzīmē kā procentuālo daļu no kopējā laika, kas nepieciešams viena cikla pabeigšanai.
Darba cikls = Ieslēgšanas laiks / (Ieslēgšanas laiks + Izslēgšanas laiks)
Frekvence nosaka, cik ātri PWM pabeidz ciklu un cik ātri signāls pārslēdzas starp augstu un zemu stāvokli. 100Hz frekvence nozīmē 100 ciklus sekundē. Ieslēdzot un izslēdzot digitālo signālu ātrā ātrumā un ar noteiktu darba ciklu, izeja parādīsies kā nemainīga sprieguma analogais signāls. Viena no spēcīgākajām PWM priekšrocībām ir tā, ka enerģijas zudumi ir ļoti minimāli.
Visi servomotori darbojas tieši ar + 5V padevi, taču mums jābūt uzmanīgiem attiecībā uz strāvas daudzumu, ko motors patērētu. Ja mēs izmantojam vairāk nekā divus servomotorus, jāprojektē pareizs servo aizsargs.
Pirms servo pievienošanas Attiny13, jūs varat pārbaudīt servo ar šīs servomotora testēšanas shēmas palīdzību. Šeit mēs esam sasaistījuši servomotoru ar daudziem mikrokontrolleriem:
- Saskarne servomotoram ar ARM7-LPC2148
- Saskarne servomotoram ar MSP430G2
- Vairāku servomotoru vadība ar Arduino
- Servomotora saskarne ar PIC mikrokontrolleru, izmantojot MPLAB un XC8
- Servomotora vadība ar Raspberry Pi
- Servomotora vadība ar Arduino Due
- Saskarne ar servomotoru un AVR mikrokontrolleru Atmega16
ATtiny13 programmēšana, izmantojot Arduino
Attiny13 var ieprogrammēt, izmantojot Arduino Uno vai jebkuru citu Arduino dēli. Pievienojiet Attiny13 ar Arduino Uno, kā parādīts zemāk redzamajā attēlā.
- Arduino 5V - ATtiny13 8. kontakts
- Arduino GND - ATtiny13 4. tapa
- Arduino tapa 13 - ATtiny13 tapa 7
- Arduino tapa 12 - ATtiny13 tapa 6
- Arduino 11. tapa - ATtiny13 5. tapa
- Arduino 10. tapa - ATtiny13 1. tapa
Arduino ir iestatīts kā programmētājs, lai programmētu ATtiny13. Tas tiek darīts, augšupielādējot ArduinoISP skici Arduino. Šī Arduino skice ir pieejama Arduino IDE piemēros. Atveriet Arduino IDE un dodieties uz Faili> Piemēri> ArduinoISP .
Tagad parādīsies programma ArduinoISP. Augšupielādējiet programmu Arduino Uno.
Arduino Uno tagad ir gatavs programmēt Attiny13. Bet mums ir jāiestata Attiny, instalējot tā galvenos failus. Lai to izdarītu, atveriet Arduino IDE failu >> Preferences
Tad parādīsies jauns logs. Sadaļā “ Papildu valdes pārvaldnieka vietrāži URL ” pievienojiet zemāk esošo saiti un noklikšķiniet uz Labi.
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Tagad savā Arduino IDE dodieties uz Rīki >> Dēlis >> Dēļu pārvaldnieks
Tad parādīsies vēl viens logs, kurā meklēšanas lodziņā ierakstiet “Attiny”, tad saņemsit “DIY ATtiny”, pēc tam noklikšķiniet uz pogas “instalēt” (es to jau instalēju, tāpēc instalēšanas poga ir pelēkā krāsā)
Lai sāktu programmēt ATtiny 13, mums tajā ir jādedzina Bootloader. Lai to izdarītu , dodieties uz Rīki> Dēlis> ATtiny13.
Tagad dodieties uz Rīki> Procesora versija un pārbaudiet, vai ir atlasīta pareizā ATtiny versija. Atkarībā no mikroshēmas izvēlieties ATtiny13 vai ATtiny13a.
Pēc tam izvēlnes Rīki apakšdaļā noklikšķiniet uz pogas Burn bootloader.
Pēc bootloader ierakstīšanas ATtiny tagad ir gatavs programmēšanai. Tagad jūs varat augšupielādēt savu programmu.
Nepieciešamās sastāvdaļas
- ATtiny13 mikrokontrolleris
- Servomotors
- Potenciometrs
- + 5V akumulators
- Arduino IDE
- Savienojošie vadi
Shēmas shēma un darbība
Ķēdes shēma servomotora vadīšanai, izmantojot katlu ar ATtiny13, ir sniegta zemāk.
Zemāk ir savienojumi
- Savienojiet servomotora vadības tapu ar ATtiny13 5. tapu
- Savienojiet servomotora zemējumu ar ATtiny13 4. kontaktu
- Savienojiet servomotora VCC ar ATtiny13 8. kontaktu
- Savienojiet potenciometra vidējo tapu ar ATtiny13 tapu
- Pievienojiet potenciometra pirmo un trešo tapu ar VCC un GND.
- Pievienojiet + 5V akumulatora pozitīvo kontaktu ar ATtiny13 8. kontaktu
- Pievienojiet + 5V akumulatora mīnusu ATtiny13 tapai 4
Potenciometrs ir savienots ar ATtiny13 tapu 7 (PB2), un servomotora vadības vads ir savienots ar tapu 5 (PB0).
Šeit tiek nolasīta potenciometra vērtība un tā tiek pārveidota par vērtību starp 0 un 180. Tad šī leņķa vērtība tiek pārvērsta mikrosekundēs un servomotora vadības tapai ar aprēķināto mikrosekundu kavēšanos tiek dots impulss. Tagad servomotors pagriezīsies atbilstoši potenciometra vērtībai, kā parādīts zemāk sniegtajā video.