- Pulse Width Modulation (PWM)
- Programming ATtiny13 gamit ang Arduino
- Kinakailangan ang Mga Bahagi
- Circuit Diagram at Paggawa
Gumagawa ang servo motor sa punong-guro ng Pulse Width Modulation (PWM) at ang anggulo ng pag-ikot nito ay kinokontrol ng tagal ng pulso na inilapat sa control pin nito. Dito sa tutorial na ito makokontrol namin ang isang servo motor na may ATtiny13 microcontroller gamit ang diskarteng PWM. Kaya bago magpatuloy malalaman muna natin ang tungkol sa PWM, Servo Motor at kung paano i-program ang ATtiny13 kasama ang Arduino Board.
Pulse Width Modulation (PWM)
Ang Pulse Width Modulation (PWM) ay tinukoy bilang isang pamamaraan para sa pagbuo ng isang analog signal gamit ang isang digital na mapagkukunan. Ang isang signal ng PWM ay binubuo ng dalawang pangunahing sangkap - cycle ng tungkulin at dalas. Tinutukoy ng mga sangkap na ito ang pag-uugali nito. Inilalarawan ng cycle ng tungkulin ang dami ng oras na ang signal ay nasa isang mataas na estado. Ito ay tinukoy bilang isang porsyento ng kabuuang oras na kinakailangan upang makumpleto ang isang pag-ikot.
Duty Cycle = I-ON ang oras / (I-ON ang oras + I-OFF ang oras)
Tinutukoy ng dalas kung gaano kabilis ang pagkumpleto ng PWM ng isang ikot at kung gaano kabilis ang switch ng signal sa pagitan ng mataas at mababang estado. Ang dalas ng 100Hz ay nangangahulugang 100 cycle bawat segundo. Sa pamamagitan ng paglipat ng isang digital signal na ON at OFF sa isang mabilis na rate at may isang tiyak na cycle ng tungkulin, ang output ay lilitaw tulad ng isang pare-pareho na boltahe analog signal. Ang isa sa mga makapangyarihang benepisyo ng PWM ay ang pagkawala ng kuryente ay napakaliit.
Ang lahat ng mga servo motor ay direktang gumagana nang may + 5V supply, ngunit kailangan naming mag-ingat sa dami ng kasalukuyang gagamitin ng motor. Kung gumagamit kami ng higit sa dalawang servo motor ay dapat na idinisenyo ang isang tamang kalasag na servo.
Bago Ikonekta ang Servo sa Attiny13, maaari mong subukan ang iyong servo sa tulong ng Servo Motor Tester Circuit na ito. Dito namin na- interfaced ang servo motor sa maraming mga microcontroller:
- Pag-interface ng Servo Motor na may ARM7-LPC2148
- Pag-interface ng Servo Motor sa MSP430G2
- Pagkontrol ng Maramihang Mga Servo Motors kasama ang Arduino
- Ang interface ng Servo Motor na may PIC Microcontroller gamit ang MPLAB at XC8
- Servo Motor Control na may Raspberry Pi
- Servo Motor Control na may Arduino Dahil
- Ang interface ng Servo Motor na may AVR Microcontroller Atmega16
Programming ATtiny13 gamit ang Arduino
Maaaring ma-program ang Attiny13 gamit ang Arduino Uno o anumang iba pang board ng Arduino. Ikonekta ang Attiny13 sa Arduino Uno tulad ng ipinakita sa larawan sa ibaba.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Arduino pin 13 - ATtiny13 pin 7
- Arduino pin 12 - ATtiny13 pin 6
- Arduino pin 11 - ATtiny13 pin 5
- Arduino pin 10 - ATtiny13 pin 1
Ang Arduino ay itinakda bilang isang programmer upang mai-program ang ATtiny13. Ginagawa ito sa pamamagitan ng pag-upload ng ArduinoISP sketch sa Arduino. Ang sketch ng Arduino na ito ay magagamit sa loob ng mga halimbawa sa Arduino IDE. Buksan ang Arduino IDE at pumunta sa Mga File> Mga Halimbawa> ArduinoISP .
Ngayon ang programa para sa ArduinoISP ay mag-pop up. I-upload ang programa sa Arduino Uno.
Handa na ngayong i-program ng Arduino Uno ang Attiny13. Ngunit kailangan naming i- set up ang Attiny sa pamamagitan ng pag-install ng mga pangunahing file. Upang magawa ito, pumunta sa File >> Mga Kagustuhan sa Arduino IDE
Pagkatapos ang isang bagong window ay mag-pop-up. At sa " Karagdagang Board Manager URL's " idagdag ang link sa ibaba at i-click ang "OK".
"Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"
Ngayon sa iyong Arduino IDE pumunta sa Tools >> Board >> Boards Manager
Pagkatapos ang isa pang window ay mag-pop-up kung saan sa uri ng search box i-type ang 'Attiny' pagkatapos ay makakakuha ka ng "DIY ATtiny" pagkatapos ay mag-click sa pindutang 'i-install' (na-install ko ito, iyon ang dahilan kung bakit ang pindutang i-install sa kulay-abo na kulay)
Upang simulan ang pag-program ng ATtiny 13, dapat nating sunugin ang Bootloader dito. Para doon , pumunta sa Tools> Board> ATtiny13.
Pumunta ngayon sa Mga Tool> Bersyon ng processor at suriin kung napili ang tamang bersyon ng ATtiny. Piliin ang alinman sa ATtiny13 o ATtiny13a depende sa iyong chip.
Pagkatapos i-click ang Burn button ng bootloader sa ilalim ng menu ng Mga Tool.
Matapos masunog ang bootloader, handa na ngayong mai-program ang ATtiny. Maaari mo na ngayong i-upload ang iyong programa.
Kinakailangan ang Mga Bahagi
- ATtiny13 Microcontroller
- Servo motor
- Potensyomiter
- + 5V na baterya
- Arduino IDE
- Mga kumokonekta na mga wire
Circuit Diagram at Paggawa
Ang diagram ng circuit upang makontrol ang isang servo motor na gumagamit ng palayok na may ATtiny13 ay ibinibigay sa ibaba.
Nasa ibaba ang mga koneksyon
- Ikonekta ang servo motor control pin sa pin 5 ng ATtiny13
- Ikonekta ang ground ng servo motor upang i-pin ang 4 ng ATtiny13
- Ikonekta ang VCC ng servo motor sa pin 8 ng ATtiny13
- Ikonekta ang gitnang pin ng potentiometro sa pin 7 ng ATtiny13
- Ikonekta ang una at pangatlong mga pin ng potentiometer sa VCC at GND.
- Ikonekta ang positibo ng + 5V na baterya sa pin 8 ng ATtiny13
- Ikonekta ang negatibo ng + 5V na baterya sa pin 4 ng ATtiny13
Ang isang potentiometer ay konektado sa pin 7 (PB2) ng ATtiny13 at ang control wire ng servo motor ay konektado sa pin 5 (PB0).
Dito nabasa ang halaga ng potensyomiter at nabago ito sa isang halaga sa pagitan ng 0 at 180. Pagkatapos ang halagang anggulo na ito ay na-convert sa microseconds at isang pulso ay ibinibigay sa control pin ng servo motor na may nakalkula na pagkaantala ng microseconds. Ngayon ang motor na servo ay magpapasara ayon sa halaga ng potensyomiter tulad ng ipinakita sa video na ibinigay sa ibaba.