Mundarija:
- 1 -qadam: Fikrni o'rganish
- 2 -qadam: Uskuna
- 3 -qadam: yig'ish
- 4 -qadam: Boshqarish?
- 5 -qadam: ishni osonlashtirish
- 6 -qadam: Birinchi tajribalar
- 7-qadam: real vaqtda nazorat
- 8 -qadam: Xulosa
Video: Interfaol yorug'lik: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:29
Bu mening birinchi ko'rsatma! Iltimos, men ingliz tilini to'g'ri yozishga qiynalayotganimda sabr qiling. Meni tuzatishga jur'at eting! Men bu loyihani "Yorqin bo'lsin" tanlovi boshlanganidan so'ng boshladim. Koshki, men bundan ham ko'proq narsani qilsam va qilmoqchi bo'lganimni tugatsam edi. Ammo maktab bilan ish o'rtasida men xohlagancha vaqt qolmagan. Shunga qaramay, men bu erda o'z tajribalarim haqida hisobot qoldiraman, shuning uchun har kim men qilganimni sinab ko'rishi mumkin. Bu ko'rsatma qo'llanma bo'lib xizmat qilmaydi va bu qarama -qarshilikni qanday qilishni o'rgatadi. Bu elektronika sohasida yangi boshlanuvchilar uchun qo'llanma emas. Bu men izlamoqchi bo'lgan bitta fikr va maqsadni bo'lishishga o'xshaydi. Agar siz elektronika sohasida boshlang'ich/bexabar bo'lsangiz va shunga o'xshash biror narsa qilishni xohlasangiz, uzr so'rayman! Lekin biz har doim sizga yordam berishga harakat qilishimiz mumkin. Oxirgi qadamni ko'ring. Biz allaqachon ko'plab yorug'lik loyihalarini ko'rdik. Ularning ko'pchiligi RGB LED -laridan foydalanadilar: - Xonani bitta rang bilan yoritish, kayfiyatingizga mos muhit yaratish - Televizor/Monitor rangidan yoki audiodan yorug'lik effektlarini yaratish. Instructables.com saytida hatto bir nechtasi ham bor. Tegishli: DIY Ambient Light SystemsLight Bar Ambient Lighting. O'zingizning rangli rangli yorug'lik panjaralaringizni yarating Ushbu tanlovni bahona qilib, men bir muncha vaqtdan beri xayolimda bo'lgan loyihani boshladim. Men har doim shunday yorug'lik chiroqlariga o'xshash narsalarni yasashni va xonamdagi devorlarni RGB LEDlari bilan to'ldirishni xohlardim. Ammo, bir qadam oldinga qadam tashlab, ularning hammasini nazorat qilish mumkin. Umid qilamizki, bu loyiha havaskorlar va elektron tinkerlar uchun ochiq manbali elektron uskunalar to'plamini yaratadi, bu apparat/dasturiy ta'minotni buzish va sensorli integratsiyaga imkon beradi. Mana, men yaratgan narsalarning kichik ko'rinishi:
1 -qadam: Fikrni o'rganish
Men o'z xonamdagi devorlarni RGB LEDlari bilan to'ldirishni xohlayman, har bir LEDning rangini va yorqinligini boshqaraman, foydalanish qulayligi va moslashuvchanligi uchun mikrokontrollerdan foydalanmoqchiman. Afsuski, men mikrokontrolderlarda mavjud bo'lgan bir nechta pin bilan yuzlab LEDlarni boshqarolmayman. Ko'p sonli LEDlarning boshqaruvini kodlash qiyin bo'lardi, shuning uchun men barcha LEDlarni bir nechta kichikroq bo'laklarga bo'lishim kerak deb qaror qildim va har bir chiziq uchun mikrokontrollerdan foydalanishim mumkin edi. Keyin ular o'rtasida ma'lumot almashish uchun mikrokontrollerlarning aloqa imkoniyatlaridan foydalanardim. Bu ma'lumot LEDlarning rangi va yorqinligi, ranglarning naqshlari/ketma -ketligi va sensorli ma'lumot bo'lishi mumkin. Har bir chiziq uchun men 16 RGB LEDni ishlatishga qaror qildim. Bu juda katta ham, kichik ham bo'lakka olib keladi. Shunday qilib, men har bir chiziq uchun maqbul miqdordagi resurslardan foydalanaman va har bir bar uchun xarajatlarni kamaytiraman. Shunday bo'lsa -da, 16 ta RGB LED - mikrokontroller uchun 48 ta LED (3*16 = 48). Men ishlatadigan eng arzon mikrokontroller. Bu shuni anglatadiki, mikrokontrolda 48 ta LED uchun etarli bo'lmagan 20 ta kirish -chiqish pinlari bo'ladi, men charlieplexing yoki vaqtni ajratuvchi diskdan foydalanishni xohlamayman, chunki loyihaning maqsadi xonani yoritishdir. O'ylaymanki, men qandaydir qulflangan registrni ishlatmoqchiman! Qayta boshlash:- Interaktiv muhit yoritgichini yaratish- Boshqariladigan LEDlarning standart chizig'ini yaratish- Xonani to'ldirish uchun bir nechta panjaralarni ulash imkoniyati- Foydalanuvchi moslashuvi/konfiguratsiyasi va sensorli integratsiyasiga ruxsat berish.
2 -qadam: Uskuna
Oldingi bosqichda aytilganidek, men bir xonani yoritish uchun bir nechta panjaralar yasashni xohlayman. Bu xarajatlar masalasini esga soladi. Men har bir barni iloji boricha iqtisodiy jihatdan tejamli qilishga harakat qilaman. Men ishlatgan mikrokontroller AVR ATtiny2313 edi. Bu juda arzon va menda bir nechtasi yotardi. ATtiny2313 -da bitta Universal Serial interfeysi va bitta USART interfeysi mavjud, ular keyingi bosqichlarda yaxshi ishlatiladi. Menda uchta MCP23016 - I2C 16bit I/U port kengaytiruvchisi bor edi, bu to'g'ri hisob! Men har bir port kengaytirgichidan 16 ta LEDning bitta rangini boshqarish uchun foydalanardim. LEDlar … Afsuski, men topa oladigan eng arzon edi. Ular 48 qizil, yashil va ko'k ~ 10000mcd 5 mm, 20 graduslik burchak. Bu hozircha muhim emas, chunki bu faqat bitta prototip. Shunga qaramay, natija juda yaxshi! Men mikrokontrollerni 8 MGts da ishlayapman. I2C avtobusining chastotasi 400 kHz. LEDni almashtirish chastotasi taxminan 400 Gts. Shunday qilib, agar men 48 ta LEDni cheklamasdan haydashga qodir bo'lsam, keyinroq ko'proq joy olaman!
3 -qadam: yig'ish
Zanjirni loyihalashdan so'ng, men uni prototip yaratish uchun bir nechta taxtalarda qurdim. Bir necha soat simlarni kesib, sxemani yig'ib bo'lgach, men shunday natijaga erishdim: 48 ta LED va tonna simli bitta ulkan non paneli!
4 -qadam: Boshqarish?
Bu loyihaning eng qiyin qismi, men bitta boshqaruv algoritmini naqshlar/ketma -ketliklar bilan ishlash, shuningdek, har bir LEDning yorqinligi va rangini boshqarish uchun etarlicha umumiy qilishni xohlardim. (1 bayt = 8 bit). Rangga IC muxbirining manzili yozilgan bitta bayt, "yozish" buyrug'i bilan 1 bayt va 16 bit (LED) qiymati bilan 2 bayt. IC LED -larga "cho'kish" sifatida ulangan, ya'ni pinning 0 mantiqiy qiymati LEDni yondiradi. Endi esa, eng qiyin qismi, 48 ta LED uchun PWM boshqaruvini qanday qilish kerak? Keling, bitta LED uchun PWMni o'rganaylik! PWM @ Vikipediyani tushuntirdi. Agar men LEDning yorqinligini 50%ni xohlasam, PWM qiymati 50%. Bu shuni anglatadiki, LED bir vaqtning o'zida o'chirilgan vaqt bilan bir xil bo'lishi kerak. Keling, 1 soniya vaqtini olaylik. PWM 50%, bu 1 soniyada ishga tushish vaqti 0,5 soniya va o'chirish vaqti 0,5 soniyani tashkil etadi. PWM 80%? 0,2 soniya o'chirilgan, 0,8 soniya yoqilgan! Raqamli dunyoda: 10 soatlik davrda 50%, 5 davrda LED yonadi, yana 5 tsiklda esa LED o'chadi. 20%? 2 tsikl yoqilgan, 8 tsikl o'chirilgan. 45%? Xo'sh, biz 45%ni ololmaymiz … Vaqt tsikllarda va bizda atigi 10 tsikl bo'lgani uchun, biz PWMni faqat 10%ga bosqichlarga bo'lishimiz mumkin. Bu demak, pin evolyutsiyasi 50%bo'lishi kerak: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Yoki hatto 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Dasturlashda biz qatorni yoqish va o'chirish ketma -ketligini tuzishimiz mumkin. Har bir tsikl uchun biz indikatorning qiymatini tsikl sifatida chiqaramiz. Men hozircha mantiqiy bo'ldimmi? Agar biz LED0 50%va LED1 20%qilmoqchi bo'lsak, biz ikkala qatorni ham qo'shishimiz mumkin.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; LEDni boshqarish uchun: 1, 2, 0, 0, 0, 0, 0, 0, 0, 0; LED0 natijasi +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; 0; Port kengaytiruvchi IC -da bu raqamlar ketma -ketligini chiqarganimizda, biz LED0 ni 50% nashrida va LED1 ni 20% bilan olamiz !! 2 LED uchun oddiy, to'g'rimi? Endi biz buni har bir rang uchun 16 ta LED uchun qilishimiz kerak! Bu massivlarning har biri uchun bizda har bir rang uchun yorqinlik kombinatsiyasi mavjud (16 LED) Har safar ranglarning boshqa kombinatsiyasini xohlasak, biz bu qatorni o'zgartirishimiz kerak bo'ladi.
5 -qadam: ishni osonlashtirish
Oldingi qadam - oddiy ketma -ketlikni tuzish uchun juda ko'p ish … Men dastur tuzishga qaror qildim, u erda biz har bir LEDning ranglarini ketma -ketlikda aytamiz va biz qadamning uchta massivini olamiz. Vaqt cheklanganligi sababli bu dasturni LabView -da yaratdim.
6 -qadam: Birinchi tajribalar
Mikrokontrollerda bir necha qadam yuklansa, biz shunga o'xshash narsani olamiz: Videolarning sifatsizligi uchun uzr so'rayman! Men ketma -ketlikdagi qadamlarning maksimal sonini 8 tagacha aniqladim va PWMni 20% ga sakrash bilan chekladim. Bu qaror men foydalanayotgan nazorat turiga va ATtiny2313 EEPROM -ga bog'liq. Bu tajribalarda men qanday effektlar berishim mumkinligini ko'rishga harakat qildim. Aytishim kerakki, natijadan mamnunman!
7-qadam: real vaqtda nazorat
Oldingi bosqichlarda aytib o'tilganidek, men xonamdagi LEDlarni boshqaruvchi barcha mikrokontrollerlar bilan aloqa o'rnatmoqchiman. Shunday qilib, men ATtiny2313 -da mavjud USART interfeysidan foydalandim va uni kompyuterimga uladim. Men ham LEDV panelini boshqarish uchun LabView dasturini tuzdim, bu dasturda men mikrokontrolerga ketma -ketlik, har bir LEDning rangi va ketma -ketlik bosqichlari orasidagi vaqtni aytib bera olaman. Keyingi videoda LEDlarning rangini o'zgartirish va ketma -ketlikni aniqlashni ko'rsatish.
8 -qadam: Xulosa
O'ylaymanki, men loyihamning birinchi yondashuvida muvaffaqiyat qozondim. Men resurslar va cheklovlar kam bo'lgan 16 ta RGB LEDni boshqarishga qodirman. Istalgan ketma -ketlikni yaratib, har bir LEDni alohida boshqarish mumkin.
Kelgusi ishlar:
Agar men odamlardan ijobiy fikrlar olsam, men bu g'oyani yanada rivojlantiraman va bosma elektron platalar va yig'ish bo'yicha ko'rsatmalarni o'z ichiga olgan to'liq DIY elektronika to'plamini yasashim mumkin.
Keyingi versiya uchun men: -Mikrokontrollerni ADC -ga o'zgartiraman -MCP23016 -ni boshqa turdagi ketma -ket parallel ravishda o'zgartiraman, bu LED -lardan ko'proq oqim olib ketishi mumkin -Mikrokontroller bilan muloqot qilish uchun ochiq kodli dasturiy ta'minotni tayyorlang va LEDlarni boshqarish -Bir nechta mikrokontroller o'rtasidagi aloqani rivojlantirish.
Sizda biron bir taklif yoki savol bormi? Yoki izoh qoldiring!
"Yorqin bo'lsin" filmining finalchisi!
Tavsiya:
YN160 Pro LED yoritgichli yorug'lik chiroqlari, o'zgaruvchan toklar va yorug'lik chiroqlari: 8 qadam
YN160 Pro LED yoritgichli yorug'lik manbai (AC)
Sirli yorug'lik qutisi (tungi yorug'lik): 4 qadam
Sirli yorug'lik qutisi (tungi yorug'lik): Va bu juda oson qiziqarli loyiha, bu loyiha https://www.instructables.com/id/Arduino-Traffic-L…, lekin men allaqachon Men asl saytning tuzilishini o'zgartirdim, men qo'shimcha yoritgichlar qo'shaman va uni to'plash uchun poyabzal qutisini ishlataman
O'zgaruvchan yorug'lik sezuvchi tungi yorug'lik: 8 qadam (rasmlar bilan)
O'zgaruvchan yorug'lik sezgichli tungi yorug'lik: Bu ko'rsatma qo'lda o'chirish uchun tungi yorug'lik sensori qanday buzilganligini ko'rsatadi. Diqqat bilan o'qing, har qanday ochiq sxemalarni yodda tuting va agar kerak bo'lsa, birlikni sinovdan o'tkazishdan oldin o'z hududingizni o'chiring
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: 5 qadam
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: Harakatlanuvchi yorug'lik tugmasi uyda ham, ofisda ham juda ko'p qo'llanmalarga ega. Biroq, bu yorug'lik sensori bilan jihozlanishning qo'shimcha afzalliklari bo'lib, bu yorug'lik faqat tunda yoqilishi mumkin
Yorug'lik va tovush effektlari bilan Arduino asosidagi yorug'lik chiroqlari: 14 qadam (rasmlar bilan)
Yorug'lik va tovush effektlari bilan Arduino asosidagi Lightsaber: Salom jedi! Bu ko'rsatma kinofilmda bo'lgani kabi ko'rinadigan, ovoz chiqaradigan va bajaradigan chiroqni yasash haqida. Yagona farq - bu metallni kesolmaydi: (Bu qurilma Arduino platformasiga asoslangan va men unga juda ko'p funktsiyalar va funktsiyalarni beraman, u