- Pulsbreddsmodulering (PWM)
- Programmering av ATtiny13 med Arduino
- Komponenter krävs
- Kretsschema och arbete
Servomotorn fungerar på principen för pulsbreddsmodulering (PWM) och dess vridningsvinkel styrs av varaktigheten av pulsen som appliceras på dess styrstift. Här i den här handledningen kommer vi att styra en servomotor med ATtiny13 mikrokontroller med PWM-teknik. Så innan vi går vidare lär vi oss först om PWM, Servomotor och hur man programmerar ATtiny13 med Arduino Board.
Pulsbreddsmodulering (PWM)
Pulsbreddsmodulering (PWM) definieras som en metod för att generera en analog signal med en digital källa. En PWM-signal består av två huvudkomponenter - arbetscykel och frekvens. Dessa komponenter definierar dess beteende. Driftscykel beskriver hur länge signalen är i högt tillstånd. Det betecknas som en procentandel av den totala tiden det tar att genomföra en cykel.
Driftscykel = Slå PÅ-tid / (Slå PÅ-tid + Stäng av tid)
Frekvensen definierar hur snabbt PWM slutför en cykel och hur snabbt signalen växlar mellan höga och låga tillstånd. En frekvens på 100Hz betyder 100 cykler per sekund. Genom att sätta en digital signal PÅ och AV med en snabb hastighet och med en viss arbetscykel kommer utgången att se ut som en analog signal med konstant spänning. En av de kraftfulla fördelarna med PWM är att strömförlusten är mycket minimal.
Alla servomotorer fungerar direkt med + 5V-matning, men vi måste vara försiktiga med den mängd ström som motorn skulle förbruka. Om vi använder mer än två servomotorer ska en ordentlig servosköld utformas.
Innan du ansluter Servo till Attiny13 kan du testa din servo med hjälp av denna Servomotor Tester Circuit. Här har vi kopplat servomotor med många mikrokontroller:
- Gränssnitts Servomotor med ARM7-LPC2148
- Gränssnitts servomotor med MSP430G2
- Styrning av flera servomotorer med Arduino
- Interfacing Servomotor med PIC Microcontroller med MPLAB och XC8
- Servomotorstyrning med Raspberry Pi
- Servomotorstyrning med Arduino Due
- Gränssnitts Servomotor med AVR Microcontroller Atmega16
Programmering av ATtiny13 med Arduino
Attiny13 kan programmeras med Arduino Uno eller något annat Arduino-kort. Anslut Attiny13 till Arduino Uno enligt bilden nedan.
- Arduino 5V - ATtiny13 stift 8
- Arduino GND - ATtiny13 pin 4
- Arduino-stift 13 - ATtiny13-stift 7
- Arduino-stift 12 - ATtiny13-stift 6
- Arduino-stift 11 - ATtiny13-stift 5
- Arduino stift 10 - ATtiny13 stift 1
Arduino är inställd som programmerare för att programmera ATtiny13. Detta görs genom att ladda upp ArduinoISP-skiss till Arduino. Denna Arduino-skiss finns i exemplen i Arduino IDE. Öppna Arduino IDE och gå till Filer> Exempel> ArduinoISP .
Nu kommer programmet för ArduinoISP att dyka upp. Ladda upp programmet till Arduino Uno.
Arduino Uno är nu redo att programmera Attiny13. Men vi måste ställa in Attiny genom att installera dess kärnfiler. För att göra detta, gå till Arkiv >> Inställningar i Arduino IDE
Då dyker ett nytt fönster upp. Och lägg till nedanstående länk i " Tilläggs-URL för styrelsens webbadress " och klicka på "OK".
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Gå nu till din Arduino IDE till Verktyg >> Board >> Boards Manager
Då kommer ett annat fönster att dyka upp där i sökrutan skriver du 'Attiny' då får du "DIY ATtiny" och klickar sedan på "installera" -knappen (jag har redan installerat det, det är därför installationsknappen i grå färg)
För att börja programmera ATtiny 13 måste vi bränna Bootloader till den. För det, gå till Verktyg> Board> ATtiny13.
Gå nu till Verktyg> Processorversion och kontrollera om rätt version av ATtiny är vald. Välj antingen ATtiny13 eller ATtiny13a beroende på ditt chip.
Klicka sedan på Bränn bootloader-knappen längst ner på Verktyg-menyn.
Efter att ha bränt bootloader är ATtiny nu redo att programmeras. Nu kan du ladda upp ditt program.
Komponenter krävs
- ATtiny13 Microcontroller
- Servomotor
- Potentiometer
- + 5V batteri
- Arduino IDE
- Anslutande ledningar
Kretsschema och arbete
Kretsschema för att styra en servomotor med potten med ATtiny13 ges nedan.
Nedan är anslutningarna
- Anslut servomotorns kontrollstift till stift 5 på ATtiny13
- Anslut servomotorns jord till stift 4 på ATtiny13
- Anslut servomotorns VCC till stift 8 på ATtiny13
- Anslut potentiometerns mittstift till pin 7 i ATtiny13
- Anslut potentiometerns första och tredje stift till VCC och GND.
- Anslut det positiva av + 5V batteri till stift 8 på ATtiny13
- Anslut minus på + 5V batteri till stift 4 på ATtiny13
En potentiometer är ansluten till stiftet 7 (PB2) på ATtiny13 och servomotorns styrledning är ansluten till stift 5 (PB0).
Här avläses potentiometervärdet och omvandlas till ett värde mellan 0 och 180. Därefter omvandlas detta vinkelvärde till mikrosekunder och en puls ges till servomotorns styrstift med den beräknade mikrosekundernas fördröjning. Nu kommer servomotorn att vridas enligt värdet på potentiometern som visas i videon nedan.