- Pulzusszélesség moduláció (PWM)
- Az ATtiny13 programozása Arduino használatával
- Szükséges alkatrészek
- Áramkör és munka
A szervomotor az impulzusszélesség-moduláció (PWM) fő részén működik, és forgásszögét a vezérlőcsapjára alkalmazott impulzus időtartama szabályozza. Itt ebben az oktatóanyagban egy szervomotort vezérelünk ATtiny13 mikrovezérlővel PWM technikával. Tehát mielőtt tovább mennénk, először megismerjük a PWM-et, a szervomotort és az ATtiny13 programozását az Arduino Board segítségével.
Pulzusszélesség moduláció (PWM)
Az impulzusszélesség-modulációt (PWM) az analóg jel digitális forrás segítségével történő előállítására szolgáló módszerként definiálják. A PWM jel két fő alkotórészből áll: munkaciklus és frekvencia. Ezek az összetevők meghatározzák annak viselkedését. Az üzemi ciklus leírja, hogy mennyi ideig tart a jel magas állapotban. Az egy ciklus befejezéséhez szükséges teljes idő százalékában jelölik.
Üzemeltetési ciklus = bekapcsolási idő / (bekapcsolási idő + kikapcsolási idő)
A frekvencia határozza meg, hogy a PWM milyen gyorsan fejezzen be egy ciklust, és hogy a jel milyen gyorsan váltson magas és alacsony állapot között. A 100 Hz frekvencia másodpercenként 100 ciklust jelent. A digitális jel be- és kikapcsolásával gyors ütemben és bizonyos munkaciklus mellett a kimenet állandó feszültségű analóg jelként jelenik meg. A PWM egyik hatalmas előnye, hogy az energiaveszteség nagyon minimális.
Minden szervomotor közvetlenül + 5 V-os tápfeszültséggel működik, de óvatosnak kell lennünk a motor által elfogyasztott áram mennyiségével kapcsolatban. Ha kettőnél több szervomotort használunk, megfelelő szervo pajzsot kell kialakítani.
Mielőtt a szervót csatlakoztatná az Attiny13-hoz, tesztelheti szervóját ennek a szervomotor tesztelő áramkörnek a segítségével. Itt összekötöttük a szervomotort sok mikrovezérlővel:
- Összekötő szervomotor és ARM7-LPC2148
- Összekötő szervomotor az MSP430G2-vel
- Több szervomotor vezérlése az Arduino segítségével
- Összekötő szervomotor PIC mikrokontrollerrel MPLAB és XC8 használatával
- Szervomotor vezérlés Raspberry Pi-vel
- Szervomotor vezérlés Arduino Due-vel
- Összekötő szervomotor és AVR mikrokontroller Atmega16
Az ATtiny13 programozása Arduino használatával
Az Attiny13 programozható Arduino Uno vagy bármely más Arduino tábla segítségével. Csatlakoztassa az Attiny13-at az Arduino Uno-hoz az alábbi ábra szerint.
- Arduino 5V - ATtiny13 8. tű
- Arduino GND - ATtiny13 tű 4
- Arduino pin 13 - ATtiny13 pin 7
- Arduino pin 12 - ATtiny13 pin 6
- Arduino 11. tű - ATtiny13 5. tű
- Arduino pin 10 - ATtiny13 pin 1
Az Arduino programozónak van beállítva az ATtiny13 programozására. Ez úgy történik, hogy feltölti az ArduinoISP vázlatot az Arduino-ra. Ez az Arduino vázlat az Arduino IDE példáin belül érhető el. Nyissa meg az Arduino IDE alkalmazást, és válassza a Fájlok> Példák> ArduinoISP menüpontot .
Most megjelenik az ArduinoISP programja. Töltse fel a programot az Arduino Uno-ra.
Az Arduino Uno már készen áll az Attiny13 programozására. De fel kell állítanunk az Attiny-t az alapfájlok telepítésével. Ehhez lépjen a Fájl >> Beállítások elemre az Arduino IDE-ben
Ezután egy új ablak jelenik meg. A „ További Board Manager URL-ek ” mezőbe írja be az alábbi linket, és kattintson az „OK” gombra.
„Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Most az Arduino IDE-jében lépjen az Eszközök >> Tábla >> Táblák kezelőjéhez
Ezután megjelenik egy másik ablak, ahol a keresőmezőbe írja be az "Attiny" kifejezést, és akkor kapja meg a "DIY ATtiny" szót, majd kattintson a "telepítés" gombra (már telepítettem, ezért a telepítés gomb szürke színben)
Az ATtiny 13 programozásának megkezdéséhez be kell égetnünk a Bootloadert. Ehhez lépjen az Eszközök> Alaplap> ATtiny13 oldalra.
Most lépjen az Eszközök> Processzor verziója elemre, és ellenőrizze, hogy az ATtiny megfelelő verziója van-e kiválasztva. A chipjétől függően válassza az ATtiny13 vagy az ATtiny13a lehetőséget.
Ezután kattintson az Eszközök menü alján található Burn bootloader gombra.
A rendszerbetöltő beégetése után az ATtiny készen áll a programozásra. Most feltöltheti programját.
Szükséges alkatrészek
- ATtiny13 mikrovezérlő
- Szervómotor
- Potenciométer
- + 5 V-os akkumulátor
- Arduino IDE
- Csatlakozó vezetékek
Áramkör és munka
Az alábbiakban bemutatjuk a szervomotor vezérlésének kapcsolási rajzát az ATtiny13 fazék segítségével.
Az alábbiakban bemutatjuk a kapcsolatokat
- Csatlakoztassa a szervomotor vezérlőcsapját az ATtiny13 5. tűjéhez
- Csatlakoztassa a szervomotor földjét az ATtiny13 4. tűjéhez
- Csatlakoztassa a szervomotor VCC-jét az ATtiny13 8. tűjéhez
- Csatlakoztassa a potenciométer középső csapját az ATtiny13 7. tűjéhez
- Csatlakoztassa a potenciométer első és harmadik érintkezőjét a VCC-hez és a GND-hez.
- Csatlakoztassa az + 5 V-os akkumulátor pozitívját az ATtiny13 8. tűjéhez
- Csatlakoztassa az + 5 V-os akkumulátor negatívját az ATtiny13 4. tűjéhez
Egy potenciométer van csatlakoztatva az ATtiny13 7 érintkezőjéhez (PB2), a szervomotor vezérlő vezetéke pedig az 5 csaphoz (PB0).
Itt leolvassák a potenciométer értékét, és 0 és 180 közötti értékre konvertálják. Ezután ezt a szögértéket mikroszekundummá konvertálják, és a kiszámított mikroszekundumos késleltetéssel impulzust kapnak a szervomotor vezérlőcsapjára. Most a szervomotor a potenciométer értékének megfelelően forog, amint azt az alábbi videó bemutatja.