- Pulsbreddemodulation (PWM)
- Programmering af ATtiny13 ved hjælp af Arduino
- Komponenter, der kræves
- Kredsløbsdiagram og arbejde
Servomotor fungerer på hovedprincippet for pulsbreddemodulation (PWM), og dens rotationsvinkel styres af varigheden af den puls, der påføres kontrolpinden. Her i denne vejledning styrer vi en servomotor med ATtiny13 mikrokontroller ved hjælp af PWM-teknik. Så inden vi går videre, lærer vi først om PWM, Servo Motor og hvordan man programmerer ATtiny13 med Arduino Board.
Pulsbreddemodulation (PWM)
Pulse Width Modulation (PWM) er defineret som en metode til at generere et analogt signal ved hjælp af en digital kilde. Et PWM-signal består af to hovedkomponenter - driftscyklus og frekvens. Disse komponenter definerer dens adfærd. Arbejdscyklus beskriver den tid, signalet er i høj tilstand. Det betegnes som en procentdel af den samlede tid, det tager at gennemføre en cyklus.
Arbejdscyklus = Tænd tid / (Tænd tid + Sluk tid)
Frekvensen definerer, hvor hurtigt PWM gennemfører en cyklus, og hvor hurtigt signalet skifter mellem høje og lave tilstande. En frekvens på 100Hz betyder 100 cyklusser pr. Sekund. Ved at tænde og slukke for et digitalt signal med en hurtig hastighed og med en bestemt driftscyklus, vil udgangen se ud som et analogt signal med konstant spænding. En af de stærke fordele ved PWM er, at effekttabet er meget minimalt.
Alle servomotorer arbejder direkte med + 5V forsyning, men vi skal være forsigtige med den mængde strøm, motoren bruger. Hvis vi bruger mere end to servomotorer, skal der designes et ordentligt servoskjold.
Inden du tilslutter servo til Attiny13, kan du teste din servo ved hjælp af dette servomotortesterkredsløb. Her har vi interfacet servomotor med mange mikrokontroller:
- Interfacing servomotor med ARM7-LPC2148
- Interfacing Servomotor med MSP430G2
- Styring af flere servomotorer med Arduino
- Interfacing Servomotor med PIC Microcontroller ved hjælp af MPLAB og XC8
- Servomotorstyring med Raspberry Pi
- Servomotorstyring med Arduino Due
- Interfacing Servomotor med AVR Microcontroller Atmega16
Programmering af ATtiny13 ved hjælp af Arduino
Attiny13 kan programmeres ved hjælp af Arduino Uno eller et hvilket som helst andet Arduino-kort. Forbind Attiny13 til Arduino Uno som vist i nedenstående figur.
- 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
Arduino er indstillet som programmør til at programmere ATtiny13. Dette gøres ved at uploade ArduinoISP-skitse til Arduino. Denne Arduino-skitse er tilgængelig i eksemplerne i Arduino IDE. Åbn Arduino IDE, og gå til Filer> Eksempler> ArduinoISP .
Nu vises programmet til ArduinoISP. Upload programmet til Arduino Uno.
Arduino Uno er nu klar til at programmere Attiny13. Men vi er nødt til at oprette Attiny ved at installere dens kernefiler. For at gøre dette skal du gå til Fil >> Indstillinger i Arduino IDE
Derefter vises et nyt vindue. Og i " Yderligere bestyrelses-URL-adresser " tilføj nedenstående link og klik på "OK".
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Gå nu til din Arduino IDE til Værktøjer >> Board >> Boards Manager
Derefter vises et andet vindue, hvor i søgefeltet skriver 'Attiny', så får du "DIY ATtiny", og klik derefter på "install" -knappen (jeg har allerede installeret det, det er derfor installationsknappen i grå farve)
For at starte programmeringen af ATtiny 13 skal vi brænde Bootloader til den. For det skal du gå til Værktøjer> Board> ATtiny13.
Gå nu til Værktøjer> Processorversion, og kontroller, om den korrekte version af ATtiny er valgt. Vælg enten ATtiny13 eller ATtiny13a afhængigt af din chip.
Klik derefter på Brænd bootloader-knappen nederst i menuen Funktioner.
Efter brænding af bootloaderen er ATtiny nu klar til at blive programmeret. Nu kan du uploade dit program.
Komponenter, der kræves
- ATtiny13 Microcontroller
- Servomotor
- Potentiometer
- + 5V batteri
- Arduino IDE
- Tilslutning af ledninger
Kredsløbsdiagram og arbejde
Kredsløbsdiagram til styring af en servomotor ved hjælp af pot med ATtiny13 er angivet nedenfor.
Nedenfor er forbindelserne
- Tilslut servomotorens kontrolstift til pin 5 på ATtiny13
- Tilslut servomotorens jord til pin 4 i ATtiny13
- Tilslut servomotorens VCC til pin 8 i ATtiny13
- Tilslut potentiometerets midterste pin til pin 7 i ATtiny13
- Tilslut potentiometerets første og tredje ben til VCC og GND.
- Tilslut det positive af + 5V batteri til pin 8 på ATtiny13
- Forbind det negative af + 5V batteri til pin 4 på ATtiny13
Et potentiometer er forbundet til pin 7 (PB2) på ATtiny13, og servostyringens styreledning er forbundet til pin 5 (PB0).
Her læses potentiometerværdien, og den konverteres til en værdi mellem 0 og 180. Derefter konverteres denne vinkelværdi til mikrosekunder, og der gives en puls til servomotorens styrepind med den beregnede mikrosekunders forsinkelse. Nu vil servomotoren dreje i henhold til potentiometerets værdi som vist i videoen nedenfor.