Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Bu ko'rsatmada men sizga buni qanday qilishni tushuntiraman
- PWM bilan shahar motorini boshqaring
- UART orqali muloqot qilish
- taymer taymerining uzilishlari
Birinchidan, biz 4 dollar atrofida Aliexpress -da topishingiz mumkin bo'lgan AVR Core tizimini ishlab chiqish kartasidan foydalanamiz. Rivojlanish kartasi havolasi bu erda. Biz dasturiy ta'minotni tuzatish va tuzatish uchun Atmel ICE Debugger va Atmel Studio -dan foydalanamiz.
1 -qadam: Ma'lumotlar varag'i va manba kodiga chuqur sho'ng'ish - soat tezligi
1. o'qda biz ishlab chiqarish taxtasida ko'rishimiz mumkin bo'lgan kristalli chastotamizni aniqlaymiz
2 -qadam: UART registrlarini sozlash
UART bilan bog'lanish uchun siz USART Baud Rate Registrlarini - UBRRnL va UBRRnH ni to'g'ri sozlashingiz kerak, uni o'zingiz hisoblashingiz yoki to'g'ri kalkulyatordan foydalanib onlayn kalkulyatordan foydalanishingiz mumkin.
Onlayn kalkulyator
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Shunday qilib, MYUBBR qiymati hisoblanadi, UCSR0B registrida biz RXEN0 (recv yoqish) TXEN0 (uzatish yoqish) va RXCIE0 (uzilish uchun RX) ni ishga tushiramiz. UCSR0C registrida biz 8 bitli char hajmini tanlaymiz.
RX uzilish bitini o'rnatgandan so'ng, USART0_RX_vect uchun ISR funktsiyasini qo'shishimiz kerak
ISR (USART0_RX_vect) {char rcvChar = UDR0; agar (rcvChar! = '\ n') {bufer [bufferIndex] = rcvChar; bufferIndex ++; }}
To'xtatilgan xizmat ko'rsatish tartibida siz hech qanday biznes mantig'ini qilmasligingiz kerak. Siz tezda funktsiyani qaytarishingiz kerak.
3 -qadam: PWM sozlamalari
InitPWM funktsiyasida biz CPU soat o'lchagichini, Taymer/Hisoblagich rejimini Fast PWM sifatida o'rnatamiz va uning xatti -harakatlarini COM bitlari bilan o'rnatamiz.
Shuningdek, biz DC motorini 66 -jadvalda ko'rsatilgan OC2 piniga ulashimiz kerak. Ma'lumotlar jadvalimizda Chiqish rejimini, Tez PWM rejimini solishtiring, siz OC2 pinining (OC2/OC1C) PB7 ekanligini ko'rasiz.
4 -qadam: Natija
Manba kodini qo'shimchaga yuklaganingizda.
UART-dan yangi PWM qiymatini (0-255) kiritishingiz mumkin (arduino ketma-ket port terminalidan foydalanishingiz mumkin), shahar motorining tezligini sozlash uchun.