- Pulsbreddemodulering (PWM)
- Programmering av ATtiny13 ved hjelp av Arduino
- Komponenter kreves
- Kretsdiagram og arbeid
Servomotoren fungerer på prinsippet for pulsbreddemodulering (PWM), og rotasjonsvinkelen styres av varigheten av pulsen som påføres kontrollpinnen. Her i denne opplæringen vil vi kontrollere en servomotor med ATtiny13 mikrokontroller ved hjelp av PWM-teknikk. Så før vi går videre, vil vi først lære om PWM, Servo Motor og hvordan du programmerer ATtiny13 med Arduino Board.
Pulsbreddemodulering (PWM)
Pulse Width Modulation (PWM) er definert som en metode for å generere et analogt signal ved hjelp av en digital kilde. Et PWM-signal består av to hovedkomponenter - driftssyklus og frekvens. Disse komponentene definerer dens oppførsel. Driftssyklus beskriver hvor lang tid signalet er i høy tilstand. Det er betegnet som en prosentandel av den totale tiden det tar å fullføre en syklus.
Driftssyklus = Slå på tid / (Slå på tid + slå av tid)
Frekvensen definerer hvor raskt PWM fullfører en syklus og hvor raskt signalet bytter mellom høye og lave tilstander. En frekvens på 100Hz betyr 100 sykluser per sekund. Ved å slå et digitalt signal PÅ og AV med rask hastighet og med en viss driftssyklus, vil utgangen virke som et analogt signal med konstant spenning. En av de kraftige fordelene med PWM er at strømtapet er veldig minimalt.
Alle servomotorer fungerer direkte med + 5V forsyning, men vi må være forsiktige med hvor mye strøm motoren vil forbruke. Hvis vi bruker mer enn to servomotorer, bør det utformes et skikkelig servoskjold.
Før du kobler Servo til Attiny13, kan du teste servoen din ved hjelp av denne Servomotortesterkretsen. Her har vi koblet servomotor til mange mikrokontrollere:
- Grensesnitt Servomotor med ARM7-LPC2148
- Grensesnitt Servomotor med MSP430G2
- Kontrollerer flere servomotorer med Arduino
- Grensesnitt Servomotor med PIC Microcontroller ved bruk av MPLAB og XC8
- Servomotorstyring med Raspberry Pi
- Servomotorstyring med Arduino Due
- Grensesnitt Servomotor med AVR Microcontroller Atmega16
Programmering av ATtiny13 ved hjelp av Arduino
Attiny13 kan programmeres ved hjelp av Arduino Uno eller et annet Arduino-kort. Koble Attiny13 til Arduino Uno som vist i figuren nedenfor.
- 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 satt som programmerer for å programmere ATtiny13. Dette gjøres ved å laste opp ArduinoISP-skisse til Arduino. Denne Arduino-skissen er tilgjengelig i eksemplene i Arduino IDE. Åpne Arduino IDE og gå til Filer> Eksempler> ArduinoISP .
Nå vil programmet for ArduinoISP dukke opp. Last opp programmet til Arduino Uno.
Arduino Uno er nå klar til å programmere Attiny13. Men vi må sette opp Attiny ved å installere kjernefilene. For å gjøre dette, gå til Fil >> Innstillinger i Arduino IDE
Deretter vises et nytt vindu. Og i " Tilleggs-URL-en for styreleder " legger du til lenken nedenfor og klikker "OK".
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Nå i din Arduino IDE, gå til Verktøy >> Board >> Boards Manager
Deretter vil et annet vindu dukke opp der du skriver "Attiny" i søkefeltet, så får du "DIY ATtiny" og klikker deretter på "installer" -knappen (jeg har allerede installert den, det er derfor installasjonsknappen i grå farge)
For å starte programmeringen av ATtiny 13, må vi brenne Bootloader til den. For det, gå til Verktøy> Brett> ATtiny13.
Gå nå til Verktøy> Prosessorversjon og sjekk om riktig versjon av ATtiny er valgt. Velg enten ATtiny13 eller ATtiny13a, avhengig av brikken din.
Klikk deretter på Burn bootloader-knappen nederst i Verktøy-menyen.
Etter å ha brent bootloaderen, er ATtiny nå klar til å programmeres. Nå kan du laste opp programmet.
Komponenter kreves
- ATtiny13 Microcontroller
- Servo motor
- Potensiometer
- + 5V batteri
- Arduino IDE
- Koble ledninger
Kretsdiagram og arbeid
Kretsskjema for å kontrollere en servomotor ved bruk av potten med ATtiny13 er gitt nedenfor.
Nedenfor er koblingene
- Koble servomotorens kontrollpinne til pinne 5 på ATtiny13
- Koble bakken til servomotoren til pinne 4 på ATtiny13
- Koble servomotorens VCC til pin 8 på ATtiny13
- Koble den midterste pinnen på potensiometeret til pinne 7 på ATtiny13
- Koble potensiometerets første og tredje pinne til VCC og GND.
- Koble det positive av + 5V batteri til pinnen 8 på ATtiny13
- Koble det negative av + 5V batteri til pinnen 4 på ATtiny13
Et potensiometer er koblet til pinnen 7 (PB2) på ATtiny13, og styreledningen til servomotoren er koblet til pinne 5 (PB0).
Her leses potensiometerverdien og den konverteres til en verdi mellom 0 og 180. Deretter blir denne vinkelverdien konvertert til mikrosekunder, og en puls blir gitt til styretappen på servomotoren med den beregnede mikrosekundens forsinkelse. Nå vil servomotoren dreie i henhold til verdien av potensiometeret som vist i videoen gitt nedenfor.