Mikrokontroller yordamida haroratni boshqaruvchi shahar foniy
Download 43 Kb.
|
Mikrokontroller
Mikrokontroller yordamida haroratni boshqaruvchi shahar foniy 2017 yil 15-AVGUST MA'MURATCHI tomonidan 47 ta sharh Harorat bilan boshqariladigan shahar foniy - bu atrof-muhit harorati ma'lum bir chegaradan oshganda avtomatik ravishda doimiy shamollatgichni yoqadigan tizim. Odatda, elektron qurilmalar ko'proq issiqlik hosil qiladi. Qurilmani himoya qilish uchun bu issiqlikni kamaytirish kerak. Bu issiqlikni kamaytirishning ko'plab usullari mavjud. Buning bir usuli - fanni o'z-o'zidan yoqish. Ushbu maqolada, qurilma ichidagi haroratni pol qiymatidan yuqori bo'lganligi aniqlanganda, avtomatik ravishda ishlaydigan, fanni almashtiradigan ikkita bunday sxema tasvirlangan. Kontur
Video chiqaring O'chirish 1 8051 yordamida haroratni boshqaruvchi doimiy oqim foniy O'chirish diagrammasi Printsip
Komponentlar Ushbu loyiha uchun ADC0804-ni sozlash O'chirish dizayni Ishlayapti Loyiha kodini yuklab olish ATmega8 dan foydalangan holda 2-davrli harorat boshqariladigan doimiy oqim foniy O'chirish diagrammasi O'chirish printsipi Komponentlar Komponent tavsifi Ichki ADC registrlarini deklaratsiyalash Haroratni boshqaruvchi doimiy shamollatish davri dizayni Haroratni boshqarish DC vosita - elektron simulyatsiya video Mikroto'lqinli qurilmadan foydalangan holda haroratni boshqaruvchi doimiy shamollatish davri qanday ishlaydi? Haroratni boshqaruvchi shahar dvigatel loyihasi chiqishi video Ilovalar
Kirish Ushbu loyihada men shahar motorini tezlikni boshqarishni 555 va puls kengligi modulyatsiyasi (PWM) yordamida qanday amalga oshirish mumkinligini ko'rsataman. Biz kundalik hayotimizda DC Motorsni ko'plab tizimlarda ishlatamiz. Masalan, protsessor muxlislari, tutun söndürücüler, o'yinchoq mashinalar va boshqalar DC quvvat manbai bilan ishlaydigan DC Motors. Ko'pincha, bizning talabimizga ko'ra motorlarning tezligini sozlashimiz kerak bo'ladi. Masalan, protsessor o'yinlar yoki videoni tahrirlash kabi og'ir vazifalarni bajarayotganda, CPU foniy yuqori tezlikda ishlashi kerak. Ammo hujjatlarni tahrirlash kabi odatiy foydalanish uchun fanning tezligini kamaytirish mumkin. Ba'zi tizimlarda fan tezligi uchun avtomatik sozlash tizimi mavjud bo'lsa ham, barcha tizimlar ushbu funktsiyaga ega emas. Shunday qilib, biz DC motorining tezligini o'zimiz vaqti-vaqti bilan sozlashimiz kerak bo'ladi. Rasmmm
DC vosita tezligini boshqarish qanday amalga oshiriladi? Shahar motorini tezligini qo'lda sozlashning bir necha yo'li mavjud. Bunga erishishning eng oddiy usuli - o'zgaruvchan qarshilik yordamida, ya'ni biz vosita bilan ketma-ket o'zgaruvchan qarshilik yordamida doimiy dvigatelning tezligini sozlashimiz mumkin. Ammo bu usul odatda ikkita sababga ko'ra tayyorlanmaydi. Birinchi sabab energiya isrofidir, ya'ni qarshilik ortiqcha energiyani issiqlik sifatida tarqatadi. Ikkinchi sabab, agar biz DC motor tezligini boshqarishni avtomatlashtirish uchun mikrokontroller yoki boshqa raqamli uskunalar kabi biron bir qurilmadan foydalanmoqchi bo'lsak, unda bu usuldan foydalanib bo'lmaydi. Davom etishning yanada samarali usuli bu bizning DC dvigatelimiz tezligini boshqarish uchun Pulse Width Modulation texnikasidan foydalanish. AT89C51 mikrokontrolleridan foydalanib, tegishli post-step motor tekshirgichini o'qing PWM asosidagi shahar dvigatelining tezligini boshqarish sxemasi diagrammasi Komponentlar talab qilinadi 555 taymer IC 12V doimiy dvigatel 1N5819 x 2 1N4007 100nF
100pF 10KΩ qarshilik 100KΩ potentsiometr IRF540 MOSFET Mini Breadboard 12V quvvat manbai Simlarni ulash O'chirish dizayni Men 555 IC-ning diagrammasini tushuntirmoqchi emasman va siz allaqachon tanish bo'lgan deb o'ylayman. Sxemani loyihalashni davom ettirib, 555-sonli 1-pin GND ga ulangan. 8 va 4-gachasi pinalar + 12V quvvat manbaiga ulangan. 6 va 2-gachasi pinlar qisqa va 2-pin va GND o'rtasida 100nF kondansatör ulangan. POT o'chirish pimi 555-pin 3-ga ulangan. Ikkita Shotti diodasi (1N5819) POTning qolgan ikkita pimiga elektron diagrammada ko'rsatilganidek ulangan. Diyotlarning umumiy nuqtasi PIN-2 ga ulangan. PIN-7 10KΩ qarshilik yordamida yuqori tortiladi. MOSFET-ning Gate terminali 555-pin 7-ga ulangan. Dvigatel MOSFET-ning + 12V ta'minoti va tushishi o'rtasida, MOSFET manbai esa GND-ga ulangan. Orqa emfning oldini olish uchun Dvigatel terminallari bo'ylab PN Junction Diod ulanadi. Izoh: men Shotki diodlaridan foydalanmaganman, lekin ularni oddiy 1N4007 diodalari bilan almashtirdim, chunki PWM chastotasi kamroq (220 Gts atrofida). DC vosita o'chirgichining tezligini boshqarish qanday ishlaydi? Ushbu sxemada doimiy dvigatel 555 integral mikrosxemasi orqali ishlaydi. Ushbu sxemadagi IC 555 barqaror rejimda ishlaydi, bu esa doimiy ravishda YUQORI va LOW impulslarni hosil qiladi. Ushbu rejimda 555 IC elektronni bir nechta kichik sozlash bilan impuls kengligi modulyatori sifatida ishlatilishi mumkin. Devrening ishlash chastotasi unga bog'langan qarshilik va kondansativlarning passiv parametrlari bilan ta'minlanadi. Quyidagi xabarni ham o'qing: 555 taymer yordamida suv sathidan signal ESLATMA:
Ushbu sxema bo'yicha eng yaxshi narsalardan biri shundaki, siz uni juda kam apparat va ozgina xarajatlarga ega bo'lgan ajoyib multivibrator sifatida ishlashingiz mumkin, bu esa uni amalga oshirishga sarflanadigan xarajatlarni va bosilgan elektron platadagi bo'sh joyni tejashga imkon beradi. Agar siz aniqroq ishlaydigan va sozlash qobiliyatiga ega bo'lishi mumkin bo'lgan zarba kengligi modulyatorini xohlasangiz, u holda biz hozir foydalanayotganimizdan ko'ra mikrokontroller asosida puls kengligi modulyatoridan foydalanish yaxshiroqdir. Biroq, biz impuls kengligi modulyatoridan foydalanadigan sxema yoki dastur juda sezgir emas va shuning uchun juda aniqlikni talab qilmaydi. Bunday holda, biz yalang'och IC 555 bilan foydalanadigan sxema yaxshiroqdir, chunki bu sxemani yaratishda bizning pulimiz va kosmik resurslarimizni tejaydi. Potansiyometr qiymatini o'zgartirib, zanjirning ish tsikli o'zgarishi mumkin. Agar biz ish aylanishini ko'paytirsak, dvigatelning tezligi oshadi va agar biz ish aylanishini kamaytirsak, dvigatelning tezligi pasayadi. Ushbu loyihani mikrokontroller yordamida amalga oshirishni xohlaysizmi? Keyin postga o'ting - PWM asosidagi doimiy dvigatel tezligini boshqarish davri mikrokontroller yordamida qanday ishlaydi? STM32F103C8T6 da PWM qanday ishlatiladi? STM32 PWM qo'llanmasi 2020 yil 30-martda ma'mur tomonidan sharh qoldiring Ushbu qo'llanmada sizga STM32F103C8T6 MCU-ga asoslangan STM32 Blue Pill Board-da PWM-dan qanday foydalanishni ko'rsataman. STM32 MCU-da Pulse Width Modulation (PWM) yordamida biz kichik 5V doimiy shamollatgichning tezligini boshqaramiz. Shuningdek, siz PWM texnikasi yordamida LED yorug'ligini boshqarishingiz mumkin. Kirish Biz bu erda PWM bilan bog'liq ko'plab loyihalarni ko'rdik. Biz bilamizki, barcha mikrokontroller raqamli domenda ishlaydi va analog signalga kirish yoki uni ishlab chiqarish to'g'ridan-to'g'ri mumkin emas. Pulse Width Modulation uchun qisqa bo'lgan PWM raqamli vositalar yordamida analog signal ishlab chiqarish texnikasi. Kvadrat to'lqin hosil qilish uchun ma'lum chastotada YUQORI va LOW raqamli Chiqish pinini yasash orqali amalga oshiriladi. Ammo bu sof kvadrat to'lqinning foydasi yo'q. Raqamli boshqaruv elementlaridan foydalanish uchun biz belgilangan vaqt oralig'ida kvadrat buyumlar to'lqinining YUQORI va LOW vaqtini o'zgartirishimiz mumkin. Kvadrat to'lqinning ON va OFF davrining kengligini o'zgartirib, biz to'liq OFF (0 V) va to'liq ON (5 V yoki 3,3 V) orasidagi kuchlanishlarni simulyatsiya qilishimiz mumkin. Pulsning ON vaqtining davomiyligi Pulsning kengligi yoki oddiygina Puls kengligi deb ataladi. Ushbu kenglikni o'zgartirganimiz yoki "Modulyatsiya qilganimiz" uchun, bu usul Pulse Width Modulation deb nomlanadi. Yoqish vaqtining bitta pulsning umumiy vaqt davriga nisbati PWM signalining ishchi tsikli deb nomlanadi. Duty Cycle = ON Time / (ON Time + OFF Time) Ish tsikli = Yoqish vaqti / (yoqish vaqti + o'chirish vaqti) 50% ish tsikli signalida yoqish vaqti ham, o'chirish vaqti ham teng. Demak, chiqish o'rtacha kuchlanish darajasi 2,5 V bo'lgan mukammal kvadrat to'lqindir (agar VDD 5V bo'lsa). Agar biz ish aylanishini 100% ga oshirsak, u holda ON davomiyligi maksimal bo'ladi (ya'ni ON impulsi impulsning butun uzunligini egallaydi). Natijada, to'liq 5V signal orqali ishlab chiqariladi. Ish tsiklini boshqarish orqali biz PWM signalining chiqishida aniq kuchlanish darajasini hosil qilishimiz mumkin, undan keyin Motor tezligini boshqarish yoki Servo Dvigatelning holatini to'g'rilash orqali LED yorug'ligini sozlash uchun foydalanish mumkin va boshqa ko'plab narsalar. STM32F103C8T6 da PWM Agar siz "STM32F103C8T6 bilan ishlashni boshlash" o'quv qo'llanmasini eslasangiz, men STM32 Blue Pill taxtasida PWM signallarini ishlab chiqarishga qodir bo'lgan 15 ta pin borligini ta'kidladim. STM32F103C8T6 da PWM o'lchamlari 16-bit, ya'ni maksimal hisoblagich qiymati 216 ga teng, bu 65535 ga teng. Shunday qilib, agar hisoblagich qiymati 65535 ga o'rnatilgan bo'lsa, biz 100% ish aylanishiga erishishimiz mumkin. Agar LED va shahar foniy ulangan bo'lsa, u holda LEDning yorug'ligi maksimal bo'ladi, shuning uchun fanning tezligi ham bo'ladi. 50% ish tsikli uchun hisoblagich qiymati 32767 ga o'rnatilishi kerak. Bu maksimal yorqinlikning yarmiga va maksimal tezlikning yarmiga olib keladi. Quyidagi rasmda Arduino-ning analogWrite funktsiyasida yozilishi kerak bo'lgan turli xil xizmat tsikllari uchun PWM signali va hisoblagichning tegishli qiymatlari ko'rsatilgan. 3.3 v deb boshlangan rasm Komponentlar talab qilinadi STM32F103C8T6 MCU-da PWM-ning ushbu oddiy namoyishida men oddiy DC Fanning tezligini va shuningdek, LED yorug'ligini boshqaraman. Shunday qilib, ushbu loyiha uchun zarur bo'lgan tarkibiy qismlarning to'liq ro'yxati quyida keltirilgan. STM32F103C8T6 MCU asosidagi STM32 Moviy hap 5V doimiy dvigatel LED 10KΩ Potansiyometr 220Ω qarshilik ULN2003
Simlarni ulash USB dan UART konverteriga (agar UART orqali dasturlash bo'lsa) 16 × 2 LCD displey (ixtiyoriy) 10KΩ potentsiometr (ixtiyoriy) O'chirish diagrammasi Quyidagi rasmda loyihaning elektron sxemasi ko'rsatilgan. Aloqalar tushuntirildi Biz yuqori oqim moslamasi bo'lgan doimiy dvigatelning tezligini boshqarishimiz kerak, chunki biz dvigatelni to'g'ridan-to'g'ri STM32 MCU ga emas, balki dvigatel haydovchisi orqali ulashimiz kerak. Siz L293D yoki L298N kabi maxsus dvigatel haydovchisidan foydalanishingiz mumkin, ammo biz Darlington Array IC bo'lgan ULN2003 IC bilan ishlashimiz mumkin. ULN2003 IC yordamida Dvigatelni boshqarishning cheklanganligi shundaki, siz Dvigatelning aylanish yo'nalishini o'zgartira olmaysiz. 1 dan 7 gacha bo'lgan pinlar Kirishdir (IN1 dan IN7 gacha), 10 dan 16 gacha bo'lgan pinlar Chiqish (OUT7 dan OUT1 gacha). Biz faqat bitta dvigatelni boshqarayotganimiz sababli, dvigatelning salbiy terminali OUT1 PIN-ga ulanadi, IN1 Pimi PWM PIN-PA8 ga ulanadi. Dvigatelning ijobiy uchi tashqi 5V quvvat manbaiga ulangan. LEDga keladigan bo'lsak, LEDning anodi boshqa PWM pin PA9 ga ulanadi, katod GND ga 220Ω seriyali qarshilik orqali ulanadi. O'z navbatida PWM signaliga o'tkaziladigan analog analog kuchlanishni o'zgartirish uchun ADC pin PA0 ga 10KΩ POT ulanadi. POTning boshqa ikkita terminali 3.3V va GND ga ulangan. ADC va Duty Cycle Value qiymatlarini ko'rsatish uchun siz 16 × 2 LCD displeydan foydalanishingiz mumkin. Men buni amalga oshirmaganman, lekin agar mening Interfacing 16 × 2 LCD-ni STM32F103C8T6 o'quv qo'llanmasiga rioya qilgan bo'lsam, buni osongina amalga oshirishingiz mumkin. PWM uchun STM32 Blue Pill dasturlash Birinchidan, PA0, PA8 va PA9 pinlari mos ravishda POT, Motor PWM va LED PWM ga beriladi. Pimlarni ularning funktsiyalari asosida INPUTS va OUTPUTS sifatida ishga tushiring, ya'ni POT pin INPUT, Dvigatel pinasi ham, LED PIN Chiqish bo'lsa. Endi analogRead ADC funktsiyasidan foydalanib Potansiyometr qiymatini o'qing. Ushbu qiymatni o'zgaruvchida saqlang. Endi boshqa o'zgaruvchidan foydalanib, ADC oralig'ini aniqlang, ya'ni 0 dan 4095 gacha PWM Duty Cycle oralig'i, ya'ni 0 dan 65535 gacha. Bu biz PWM signallarida barcha kuchlanishlarni olishimizni ta'minlaydi. AnalogWrite funktsiyasidan foydalangan holda PWM signallarini xaritalangan qiymati bilan LED va Dvigatelning ish tsikli qiymati sifatida yarating. Code
const int potPIN = PA0; const int ledPIN = PA9; const int motorPIN = PA8; void setup() { pinMode(potPIN, INPUT); pinMode(ledPIN, OUTPUT); pinMode(motorPIN, OUTPUT); } void loop() { int adcValue = analogRead(potPIN); int dutyCycle = map(adcValue, 0, 4095, 0, 65535); analogWrite(ledPIN, dutyCycle); analogWrite(motorPIN, dutyCycle); }
STM32F103C8T6 MCU asosida STM32 Blue Pill Board-da Pulse Width Modulation yoki PWM-dan qanday foydalanish haqida oddiy namoyish. Download 43 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling