Impuls kengligi modulyatsiyasi

|
Impuls kengligi modulyatsiyasi
|
bet | 5/10 | Sana | 13.02.2024 | Hajmi | 52,35 Kb. | | #155674 |
1.3 Impuls kengligi modulyatsiyasi
Puls kengligi modulyatsiyasi, qisqartirilgan PWM. LEDni boshqarish uchun analog chiqishdan (PWM) foydalanish misoli Arduino dasturining Fayl->Sketchbook->Misollar->Analog menyusida mavjud. Puls kengligi modulyatsiyasi yoki PWM - bu raqamli qurilmalar orqali o'zgaruvchan analog qiymatlarni ishlab chiqarish operatsiyasi. Qurilmalar to'rtburchaklar impulslarni ishlab chiqarish uchun ishlatiladi - doimiy ravishda maksimal va minimal qiymatlar o'rtasida almashinadigan signal. Ushbu signal maksimal qiymat (5 V) va minimal qiymat (0 V) o'rtasidagi kuchlanishni modellashtiradi, shu bilan birga 0 V ga yoqish vaqtiga nisbatan 5 V ga yoqish vaqtining davomiyligini o'zgartiradi. maksimal qiymatdan tashqariga puls kengligi deyiladi. Turli xil analog qiymatlarni olish uchun impuls kengligi o'zgartiriladi. Agar yoqish-o'chirish vaqtlari etarlicha tez o'zgarsa, siz LEDga 0 dan 5 V gacha bo'lgan doimiy signalni qo'llashingiz mumkin va shu bilan uning porlash yorqinligini nazorat qilishingiz mumkin. Grafikda yashil chiziqlar doimiy vaqt davrlarini belgilaydi. Davrning davomiyligi PWM chastotasiga teskari proportsionaldir. Bular. agar PWM chastotasi 500 Gts bo'lsa, yashil chiziqlar har biri 2 millisekundlik intervallarni belgilaydi. AnalogWrite () ni 0 - 255 shkalasi bilan chaqirish analogWrite(255) 100% ish aylanishiga (5V har doim yoqilgan) va analogWrite(127) mos kelishini bildiradi. - 50% ish aylanishi. Misol uchun, siz platformani olib, uni oldinga va orqaga silkitishni boshlashingiz mumkin. Bizning inson ko'zlari uchun bu harakat miltillovchi LEDni yorqin chiziqlarga aylantiradi. LEDdagi puls kengligini oshirish yoki kamaytirish LEDning porlayotgan chiziqlarini oshiradi yoki kamaytiradi.
1.4 Arduino-da xotira
Arduino platformalarida ishlatiladigan ATmega168 mikrokontrollerida uch turdagi xotira mavjud:
1) Flash xotira: eskizlarni saqlash uchun ishlatiladi.
) RAM (Static Random Access Memory): o'zgaruvchilarni saqlash va boshqarish uchun ishlatiladi.
) EEPROM (uchuvchan bo'lmagan xotira): doimiy ma'lumotlarni saqlash uchun ishlatiladi.
Fleshli xotira va EEPROM doimiy xotira turlaridir (quvvat o'chirilganda ma'lumotlar saqlanadi). RAM o'zgaruvchan xotira hisoblanadi.
ATmega168 mikrokontrolleri quyidagilarga ega:
1) 16 KB flesh-xotira (bootloader xotirasi uchun 2 KB ishlatiladi)
) 1024 bayt operativ xotira
3) 512 bayt EEPROM
RAMning kichik miqdoriga e'tibor berish kerak, chunki eskizdagi ko'p sonli chiziqlar uni to'liq ishlatishi mumkin. Masalan, quyidagi e'lon: char message[] = "Men Cape Wind loyihasini qo'llab-quvvatlayman."; operativ xotiraning umumiy hajmidan 32 baytni egallaydi (har bir belgi bir baytni egallaydi). Agar sizda ko'rsatish uchun katta hajmdagi matn yoki jadvallar mavjud bo'lsa, mavjud 1024 bayt operativ xotiradan to'liq foydalanish mumkin. Agar RAMda bo'sh joy bo'lmasa, dastur muvaffaqiyatsiz bo'lishi mumkin, masalan, u yozilishi mumkin, lekin ishlamaydi. Ushbu holatni aniqlash uchun siz eskiz chiziqlarini sharhlarga aylantirishingiz yoki ularni qisqartirishingiz kerak (kodni o'zgartirmasdan). Agar shundan so'ng dastur to'g'ri ishlayotgan bo'lsa, unda RAMning barcha miqdori uni bajarishga sarflangan. Ushbu muammoni hal qilishning bir necha yo'li mavjud:
Kompyuterda dastur bilan eskizni ishga tushirganda, Arduino yukini kamaytirish uchun ma'lumotlar yoki hisob-kitoblarning bir qismini kompyuterga o'tkazishingiz mumkin.
Agar sizda qidirish jadvallari yoki boshqa katta massivlar bo'lsa, qiymatlarni saqlash uchun minimal ma'lumotlar turidan foydalanishingiz mumkin. Misol uchun, ma'lumotlar turi ikki baytni egallaydi, lekin bir bayt faqat bitta joyni oladi (lekin kichik diapazondagi qiymatlarni saqlashi mumkin).
Eskiz ishlayotgan vaqtda o'zgarmas satrlar va ma'lumotlar flesh xotirada saqlanishi mumkin. Buning uchun siz PROGMEM tugmasidan foydalanishingiz kerak. EEPROM dan foydalanish uchun EEPROM kutubxonasiga murojaat qiling.
|
| |