Mundarija:
- Ta'minotlar
- 1 -qadam: Siz olgan narsalarni tekshiring
- 2 -qadam: Lehimlash
- 3 -qadam: Ulanishlar
- 4 -qadam: yorug'lik dasturlari
- 5 -qadam: Kod
- 6 -qadam: PWM haqida
Video: Miltillovchi sham ko'prigi: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Bu ko'rsatma statik nurli oddiy sham ko'prigini qanday qilib miltillovchi chiroqlar, miltillovchi, to'lqin naqshlari va boshqa noaniq o'zgaruvchan kayfiyatli yorug'lik nuriga aylantirishni ko'rsatadi. Men Rojdestvo savdosidan keyin 8 € ga sham ko'prigini sotib oldim. U 7 ta yorug'lik chiroqlari va 33 V 3 Vt kuchlanishli devor adapteriga ega. U yorqin va iliq oq rang bilan porlaydi va bu loyiha uchun juda mos keladi, bu erda men shamlar miltillashi uchun Arduino qo'yaman. Eng mashhur Arduino - Arduino Uno. Ushbu loyihada men Arduino Mega 2560 dan foydalanaman.
Men 30 V quvvat manbaidan voz kechmoqchiman va quvvat manbai sifatida mobil telefonlar uchun mo'ljallangan oddiy 5 V quvvat bankidan foydalanaman.
Quvvat banklari haqida bilishning yaxshi tomoni shundaki, ular ichki zanjirga ega, bu batareyani 3,7 V dan 5 V ga o'zgartiradi, chunki jarayon biroz kuch ishlatadi, agar quvvat banki ishlatilmasa, u o'zini o'chirib qo'yadi. Agar quvvat banki Arduino asosidagi DIY gadjetlari uchun ishlatilsa, gadjet o'zini energiya tejaydigan uyqu holatiga qo'yib, bir necha daqiqadan so'ng qaytadan ishga tushira olmaydi. Bu quvvat bankini yopadi. Bu miltillovchi sham ko'prigida uyqu rejimi yo'q. Quvvat kabeli uzilmaguncha, u doimiy ravishda quvvat sarflaydi va quvvat bankini faol ushlab turadi.
Videoda sham ko'prigi statik rejimda va to'liq miltillashda ko'rsatilgan. To'liq miltillovchi ko'zlarni chindan ham bezovta qiladi, video esa uni biroz yumshatadi. Uskuna o'rnatilgandan so'ng, kabellarni kesish, yangi ulanishlarni lehimlash va ba'zi komponentalarni qo'shish, Arduino uchun kod yozish orqali barcha kerakli yorug'lik naqshlari yaratiladi. Bu ko'rsatmaga men kiritgan naqshlar:
- Haqiqiy shamlarga taqlid qiladigan 4 xil miltillovchi chiroqlar
- 2 xil miltillovchi (aks holda statik chiroqlarning tasodifiy miltillashi)
- 2 xil to'lqin naqshlari
- oddiy statik yorug'lik
Shakllarni almashtirish bitta foydalanuvchi interfeysi elementi bo'lgan tugma orqali amalga oshiriladi. Qancha ko'p naqsh kerak bo'lsa va qanchalik sozlansa, shuncha ko'p tugma va tugmachani qo'shish kerak bo'ladi. Ammo go'zallik oddiylikda. Tanlanadigan naqshlar sonini kamaytiring. Uskunaga ko'p boshqaruv elementlarini qo'shish orqali emas, balki kodlash va sinov paytida eng yaxshi sozlamalarni tanlang.
Ta'minotlar
- 7 ta lampochkali 1 ta LED sham ko'prigi. Bu past kuchlanishli shahar modeli ekanligiga ishonch hosil qiling, u batareyali yoki devorga o'rnatilgan quvvat manbai bilan o'lik 110-240 V o'zgaruvchan tokni 6-30 V DC ga aylantiradi. Shunday qilib, sham ko'prigini sindirish mutlaqo xavfsizdir.
- 1 Arduino Mega (boshqa har qanday mikrokontroller bajaradi, faqat dasturlash mumkinligiga ishonch hosil qiling)
- 1 ta taxtaning prototipi
- o'tish simlari va boshqa simlar
- lehim vositasi
- multimetr
- 7 qarshilik, 120 Ω
- 1 tugma (men sizga Arduino -da o'rnatilgan tugmani qanday ishlatishni ko'rsataman)
- ULN2803AP 7 tranzistorli darlington tranzistorli IC qiladi (agar siz Arduino Uno yoki Meaga -dan foydalansangiz, sizga bu kerak emas)
- Mobil telefonlar uchun mo'ljallangan 5 V quvvat banki
1 -qadam: Siz olgan narsalarni tekshiring
Har bir LED qanday voltajda ishlashini va qancha oqim oqishini bilib oling.
- Sham ko'prigining pastki qismini oching. Bir shamga o'tadigan ikkita simni toping.
- Mis simlarini kesuvchi mis simlarini ochadigan kabellardan izolyatsiyani olib tashlang.
- Chiroqlarni yoqing (dam oling, bu atigi bir necha volt) va aniqlangan mis simlar ustidagi kuchlanishni o'lchang.
- Kabelni o'lchash joylaridan birida kesib oling (bu vaqtda, albatta, chiroqlar o'chadi), har ikki uchida ham izolyatsiyani (3-4 mm) olib tashlang. O'tayotgan oqimni o'lchang. Siz nima qilayotgan bo'lsangiz, kesilgan kabelni multimetr bilan qayta ulang, bu sizning multimetringiz orqali barcha oqimning o'tishiga imkon beradi, bu sizga oqim miqdorini bildiradi.
Mening o'qishlarim
Bir sham ustidagi kuchlanish (3 -qadam): 3,1 V
E'tibor bering, sham ko'prigining quvvat manbai 33 V edi. Shunday qilib, etti marta 3,1 V - atigi 21,7 V. Ba'zi shamlarda qo'shimcha qarshilik bo'lishi kerak. Agar men shamning kuchlanishini o'lchaganimda, u 11 V bo'lishi kerak edi.
Sham yoqilganda oqadi (4 -qadam): 19 mA
Men hamma narsani 5 V 2 A batareya bilan quvvatlantiraman. Sham uchun, men 5 V dan 3 V gacha kuchlanishni tushirishim kerak, menga qarshilik kerak, u 19 mA oqimida 2 V kuchlanishni pasaytiradi.
2 V / 0,019 A = 105 Ω
Quvvat tarqalishi quyidagicha:
2 V * 19 mA = 38 mVt
Bu ahamiyatsiz. Ko'p narsa rezistorning o'zini urishi mumkin. Shunga qaramay, 105 dyuymli rezistorsiz men LEDni puflashim mumkin. Menda 100 120 va 120 Ω rezistorlar bor. Men 120 with bilan boraman. Bu ko'proq himoya beradi.
Barcha 7 ta shamni 3 V kuchlanish bilan sinab ko'rish, faqat bitta xira chiroq bo'lgan, faqat 0,8 mA o'tadigan bir shamdan tashqari, yorqin nur berdi. Bu mening qo'shimcha rezistorli shamim edi. Ma'lum bo'lishicha, boshqa shamlarda rezistorlar umuman yo'q edi. Qandilda ishlatiladigan LED chiroqlar shunchaki 3 V ga mo'ljallangan! Qo'shimcha rezistorli shamni engil zo'ravonlik yordamida ochish kerak edi, lekin hech narsa buzilmadi. Rezistor plastik shamchiroq ichidagi kichkina LED ostida topilgan. Men uni qolipdan olib tashlashim va simlarni qayta sotishim kerak edi. Bu biroz chalkash edi, chunki lehimlantiruvchi temir yig'ish uchun ishlatilgan issiq elimni isitdi.
Endi men bilamanki, qanday quvvat manbai, kuchlanish bo'lishidan qat'i nazar, men 19 mA o'tishi uchun 3 V ga tushishim kerak.
Agar men LED texnologiyasi bilan yaqindan tanish bo'lganimda, men ishlatilgan LED turini tan olgan bo'lardim va unga 3 V kuchlanish kerakligini bilardim.
2 -qadam: Lehimlash
Bu qadamda men 5 ta shamdan barcha musbat (+) simlarni bitta simga ulayman. Keyin har bir sham uchun alohida salbiy (-) sim qo'shaman. LED chirog'i faqat "+" va "-" o'ngga o'tsa yonadi. Har bir shamdan faqat ikkita bir xil simi uchlari bo'lgani uchun, qaysi biri '+', qaysi biri '-' ekanligini tekshirish kerak. Buning uchun sizga 3 V quvvat manbai kerak. Menda ikkita AAA batareyasi bo'lgan kichik batareya to'plami bor edi. 3 V tanga batareyasi sinov uchun ham juda yaxshi ishlaydi.
Sham ko'prigi Arduino va ko'prik o'rtasida o'tishi uchun 8 ta kabel kerak. Agar siz 8 ta izolyatsiyalangan simli kabelni topsangiz, bu juda yaxshi bo'lardi. Bitta sim 120 mA quvvatga ega bo'lishi kerak, qolganlari esa maksimal 20 mA. Men 4 ta ikkita simli kabeldan foydalanishni tanladim.
Birinchi rasmda shamlardan barcha '+' simlarini ulash uchun bitta umumiy simni qanday tayyorlaganim ko'rsatilgan. Har bir sham uchun umumiy simning izolyatsiyasini olib tashlang. Har bir bo'g'in uchun qisqaruvchi izolyatsiya trubkasini qo'shing (rasmdagi sariq chiziq) va uni umumiy kabelning to'g'ri joyiga qo'ying. "+" Simini har bir shamdan uning bo'g'imiga lehimlang, bo'g'inni qisish trubkasi bilan yoping va qising. Albatta, oddiy yopishqoq lenta ham yaxshi, hammasi oxirida qoplanadi.
Ikkinchi rasmda har bir shamga kerak bo'lgan '-' simlari ko'rsatilgan. Umumiy "+" simlari to'g'ridan -to'g'ri Arduino -ning 5 V piniga (yoki, ehtimol, non paneli orqali) o'tadi. Har bir "-" simlari o'z tranzistorli IC piniga o'tadi (yana, ehtimol, non paneli orqali).
Arduino ko'pincha prototip taxtasi deb ataladi. Non paneli ham siz prototiplarda ishlatadigan narsadir. Men ko'rsatma beradigan narsa bu prototip. Men uni chiroyli plastik qutilarga yashirilgan, yaltiroq mahsulotga aylantirmayman. Uni prototipdan keyingi bosqichga ko'tarish, non taxtasini bosilgan elektron karta va lehimlangan komponentlar bilan almashtirish va hatto Arduino -ni oddiy mikrokontroller chipi bilan almashtirish demakdir (aslida bunday chip Arduino miyasi). Va hamma narsa plastik qutiga yoki buzilgan sham ko'prigiga mos bo'lishi.
3 -qadam: Ulanishlar
Ushbu sahifadan olingan Arduinos haqida:
- Kirish/chiqish pimi uchun umumiy maksimal oqim: 40mA
- Birlashtirilgan barcha kirish/chiqish pimlarining oqimlari yig'indisi: 200mA
Mening shamlarim har biri 19 mA ni tashkil qiladi, 3 V dan quvvat olganda, ularning etti tasi bor, bu 133 mA ni tashkil qiladi. Men ularni to'g'ridan -to'g'ri chiqish pinlaridan quvvatlantirishim mumkin edi. Biroq, menda zaxira darlington tranzistorli IClar bor. Men o'yladim, nega bo'lmasin. Mening davram bu ishni to'g'ri bajaradi: ma'lumotlar pinlari faqat signal uchun, kuch uchun emas. Buning o'rniga men LED chiroqlarini yoqish uchun Arduino -dagi 5 V pinni ishlataman. Sinov paytida men noutbukni Arduino -ga uladim. Hamma narsa USB noutbukidan quvvatlanadi, u 5 V beradi. Arduino Mega -ning o'ziga xos sigortasi bor, u kompyuterni himoya qilish uchun 500 mA tezlikda yonadi. Mening shamlarim 133 mA ni tashkil qiladi. Arduino, ehtimol, ancha past. Noutbukdan quvvat olganda hamma narsa yaxshi ishlaydi, shuning uchun Arduino USB portiga ulangan 5 V batareya to'plamidan foydalanish juda yaxshi.
Ma'lumot pinlari D3 - D9 IC ULN2803APGCN ga o'tadi. LEDlar 3 V kuchlanish bilan ishlaydi. Har bir lampochka 5 V manbaga, so'ngra 120 Ω qarshilikka ulanadi. Oxir -oqibat, kontaktlarning zanglashiga olib chiqish darlington tranzistorlari orqali erga ulanadigan ICning bitta kanalidan tashqari.
Foydalanuvchining ba'zi harakatlarini amalga oshirish uchun elektron tugmani bosish tugmasi qo'shiladi. Sham ko'prigida foydalanuvchi tanlaydigan bir nechta dastur bo'lishi mumkin.
O'chirish tugmasi RESET va GND ga ulangan. Qayta tiklash tugmachasi aynan shunday qiladi. Men hamma narsani plastik qutiga joylashtirmaganim uchun, men dasturni boshqarish uchun Arduino -dagi reset tugmachasidan foydalanaman. Rasmga muvofiq tugmani qo'shish, taxtani asl holatiga qaytarish tugmasi kabi ishlaydi. Dastur oxirgi marta ishga tushirilganda qanday yorug'lik dasturi ishlatilganligini eslab ishlaydi. Shunday qilib, har bir qayta o'rnatish keyingi yorug'lik dasturiga o'tadi.
Fotosuratlarda yangi kabellar ko'prikdan qanday chiqib ketayotgani, tranzistor IC va rezistorlarni non taxtasiga qanday qo'yganim va o'tish simlari Arduino Mega -ga qanday ulanganligi ko'rsatilgan. Men 4 ta erkak-erkak o'tish simlarini 8 ta yarim simga kesib tashladim, ularni sham ko'prigidan chiqadigan 8 ta kabelga lehimladim. Shunday qilib, men kabellarni non paneliga yopishtirishim mumkin.
Transistorlarsiz alternativa
Oldingi bosqichda men shamlar uchun umumiy "+" simini va tranzistor IC orqali erga o'tadigan "-" simlarini tayyorladim. Agar bitta pin baland bo'lsa, mos keladigan sim-uning transistori va LED chiroqlari orqali erga ulanadi.
"-" simlarini to'g'ridan-to'g'ri Arduino ma'lumot pimlariga ulash ham ishlaydi, lekin har doim ma'lumot pinlari qancha oqimga bardosh bera olishini o'ylab ko'ring! Bu yondashuv mening dasturimni o'zgartirishi kerak edi. Shamni yoqish uchun ma'lumotlar pinlari past bo'lishi kerak. Mening dasturimni avvalgidek ishlatish uchun shamchalarda '+' va '-' ni almashtirish kerak. Shamlar uchun umumiy "-" simga ega bo'ling, u Arduino-dagi GND-ga o'tadi. Alohida simlar shamchaning '+' simlari va Arduino ma'lumot pimi o'rtasida o'tadi.
4 -qadam: yorug'lik dasturlari
Keyingi bosqichda taqdim etadigan dasturim 9 ta yorug'lik dasturidan o'tadi. Tugmani bosish bir soniya davomida chiroqlarni o'chiradi, keyin quyidagi yorug'lik dasturi boshlanadi. Dasturlar quyidagicha:
- Kuchli miltillash. Shamlar tasodifan miltillaydi. Agar siz ularga uzoqdan qarasangiz, bu juda zerikarli ko'rinadi, lekin uzoqdan va sovuq chodir oynasi ortidan yaxshi ko'rinishi mumkin. Shunga qaramay, qo'shningiz o't o'chiruvchilarni chaqirishi mumkin.
- Yumshoq miltillovchi. Juda yaxshi ko'rinadi. Chizmasiz xonadagi haqiqiy shamlar kabi.
- Har xil miltillovchi. Sham 30 soniya oralig'ida kuchli va yumshoq miltillash o'rtasida silliq almashadi.
- Har xil miltillovchi. №3 kabi, lekin har bir sham o'z tezligida 30 dan 60 s gacha o'zgarib turadi.
- Tez miltillash. Shamlar statik xira darajada porlaydilar va tasodifiy miltillaydilar. O'rtacha har soniyada bir marta miltillaydi.
- Sekin miltillash. № 5 kabi, lekin ancha sekinroq.
- O'rta yuqori shamdan pastgacha tez to'lqin.
- Sekin to'lqin o'rta shamdan pastgacha.
- Statik yorqin yorug'lik. Men buni kiritishim kerak edi, asl funktsiyadan xalos bo'lishni xohlamadim.
5 -qadam: Kod
/*
FLICKERING CANDLE BRIDGE */ // holat o'zgaruvchisini // holatini ushlab turish uchun e'lon qilish _attribute _ ((bo'lim (". Noinit"))) belgisiz int rejimi; // Dastur asl holatini tiklashdan so'ng ishga tushganda, bu xotira qismi ishga tushirilmaydi, lekin u asl holatini tiklashdan oldingi // qiymatiga ega bo'ladi. // dasturi birinchi marta ishga tushirilganda tasodifiy qiymatga ega bo'ladi. / * * Shamlar sinfida miltillovchi sham uchun yorug'lik darajasini hisoblash uchun kerak bo'lgan hamma narsa bor *. */ sinf shamchasi {shaxsiy: uzoq vaqt; uzoq vaqt; uzun maxlit; uzun minlit; uzoq o'rtacha; uzoq origmaxtime; uzoq boshlang'ich vaqt; uzoq origmaxlite; uzoq origminlit; uzoq origmeanlit; uzoq deltamaxtime; uzoq deltamintime; uzoq deltamaxlit; uzoq deltaminlit; uzoq deltameanlit; uzun bo'yli; uzoq tenglik; uzoq boshlanish; uzoq nishon; suzuvchi omil; uzoq muddatli maqsad; uzoq boshlash vaqti; uzoq kutish vaqti; void newtarget (bekor); uzoq maqsadli (bo'sh); ommaviy: sham (uzun mat, uzun mit, uzun mal, uzun mil, uzun mel, uzun eo); uzoq darajali ma'lumot (bo'sh); void initlfo (uzun deltamat, uzun deltamit, uzun deltamal, uzun deltamil, uzun deltamey, uzun stavka); void setlfo (bekor); }; sham:: sham (uzun mat, uzun mit, uzun mal, uzun mil, uzun mel, uzun eo): maxtime (mat), mintime (mit), maxlite (mal), minlite (mil), Meanlite (mel), hatto tekis (eo), origmaxtime (mat), origmintime (mit), origmaxlite (mal), origminlite (mil), origmeanlite (mel) {target = meanlite; yangi maqsad (); } / * * levelnow () sham hozirda bo'lishi kerak bo'lgan yorug'lik darajasini qaytaradi. * Funktsiya yangi tasodifiy yorug'lik darajasini va * bu darajaga yetish uchun zarur bo'lgan vaqtni belgilaydi. O'zgarish chiziqli emas *, lekin sigmasimon egri chiziqda. Yangi * darajani aniqlash vaqti bo'lmaganida, funksiya yorug'lik darajasini qaytaradi. */ uzun sham:: levelnow (void) {uzoq yordam, hozir; suzuvchi t1, t2; hozir = millis (); if (hozir> = maqsadli vaqt) {yordam = maqsad; yangi maqsad (); yordamni qaytarish; } else {// help = target * (millis () - starttime) / deltatime + start * (targettime - millis ()) / deltatime; t1 = float (maqsad vaqti - hozir) / deltatime; t2 = 1. - t1; // Bu sigmasimon hisoblash yordami = t1*t1*t1*start + t1*t1*t2*start*3 + t1*t2*t2*maqsad*3 + t2*t2*t2*nishon; yordamni qaytarish; }} bo'sh sham:: newtarget (void) {uzun sum; sum = 0; for (long i = 0; i <evenout; i ++) sum+= onetarget (); boshlash = maqsad; maqsad = sum / tenglik; boshlanish vaqti = millis (); maqsadli vaqt = boshlanish vaqti + tasodifiy (mintime, maxtime); deltatime = maqsad vaqti - boshlanish vaqti; } uzun sham:: onetarget (void) {if (random (0, 10) lastcheck + 100) {lastcheck = now; / * * "Milisaniyalardan keyin" miltillovchi algo: * 2 millisekunddan keyin tezlikni tekshirishni boshlang * 2 millisekundlik tezlikda, miltillash ehtimolini 50 %ga oshiring. * Agar tezlik 10000 ms bo'lsa, 5000 ms davomida tanga * 50 marta aylantiriladi. * 1/50 = 0,02 * Agar tasodifiy (10000) boshlanish vaqti + tezlik / 2) {if (tasodifiy (tezlik) maqsadli vaqt) past darajaga qaytsa; qaytish (start - lowlite) * (targettime - hozir) / (targettime - starttime) + lowlite; } void twinkler:: twink (void) {starttime = millis (); maqsadli vaqt = tasodifiy (mintimime, maxtime) + boshlanish vaqti; start = tasodifiy (minlit, maxlit); } void setup () {int led; // Sehrli rejim o'zgaruvchisini o'qing, u // oxirgi marta qanday yorug'lik dasturi ishlatilganligini aytib berishi kerak, uni ko'paytiring // va to'lib toshgan bo'lsa nolga qaytaring. rejim ++; rejim %= 9; // Bu qiymat // nima bo'lishidan qat'i nazar, Arduino // bu dasturni birinchi marta ishlatgan. / * * MUHIM QAYD * ============= * * * Bu dasturning asosiy vazifasi - PWM * signallarini LED chiroqlariga chiqarish. Bu erda men pinlarni 3 dan 9 gacha * chiqish rejimiga qo'ydim. Arduino Mega2560 -da bu pinlar PWM signallarini yaxshi chiqaradi. Agar sizda boshqa Arduino bo'lsa, * qaysi pinlardan (va nechta) foydalanishingiz mumkinligini tekshiring. PWM dasturidan foydalanish uchun siz har doim * kodni qayta yozishingiz mumkin, agar sizning Arduino * etarli PWM pinlarini ta'minlay olmasa. * */ pinMod (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); pinMode (6, OUTPUT); pinMode (7, OUTPUT); pinMode (8, OUTPUT); pinMode (9, OUTPUT); pinMod (LED_BUILTIN, OUTPUT); analogWrite (LED_BUILTIN, 0); // Arduino shamidagi *bezovta qiluvchi qizil chiroqni o'chiring [7]; // miltillovchi shamlardan foydalanishga tayyorlaning, siz ularni ishlatasizmi yoki miltillamaysizmi *twink [7]; // miltillovchi shamlardan foydalanishga tayyorlaning … if (mode == 8) {for (int i = 3; i <10; i ++) analogWrite (i, 255); while (rost); // Har safar bu dastur ishga tushganda // tugatish // tugmachasi bosilmaguncha, bu kabi cheksiz tsiklga kiradi. } agar (rejim <2) // miltillovchi {long maxtime_; uzoq vaqt_; uzun maxlite_; uzun minlite_; uzoq ma'no_; uzun juft_; agar (rejim == 0) {maxtime_ = 250; mintime_ = 50; maxlite_ = 256; minlite_ = 0; o'rtacha qiymat = 128; hatto_ = 1; } agar (rejim == 1) {maxtime_ = 400; mintime_ = 150; maxlite_ = 256; minlite_ = 100; o'rtacha qiymat = 200; hatto_ = 1; } uchun (int i = 0; i <7; i ++) {mumkin = yangi sham (maxtime_, mintime_, maxlite_, minlite_, Meanlite_, even_); } while (true) // miltillovchi shamlar uchun cheksiz tsikl {for (int i = 0; i levelnow ()); }} agar (rejim <4) // lfo miltillashga qo'shilsa {if (mode == 2) // bir xil lfo (30 s) barcha shamlar uchun {for (int i = 0; i initlfo (75, 50, 0), 50, 36, 30000);}} if (mode == 3) // o'zgaruvchan lfo: s shamlar uchun {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 20000); can [1]-> initlfo (75, 50, 0, 50, 36, 25000); can [2]-> initlfo (75, 50, 0, 50, 36, 30000); can [3]-> initlfo (75, 50, 0, 50, 36, 35000); mumkin [4]-> initlfo (75, 40, 0, 50, 36, 40000); mumkin [5]-> initlfo (75, 30, 0, 50, 26, 45000); can [6]-> initlfo (75, 20, 0, 50, 16, 50000); can [7]-> initlfo (75, 10, 0, 50, 6, 55000);} while (rost) // lfo bilan miltillovchi shamlar uchun cheksiz pastadir {long lastclock = 0; for (int i = 0; i levelnow ()); if (millis ()> lastclock + 4000) {lastclock = millis (); uchun (int i = 0; i setlfo ();}}} if (mode <6) // miltillovchi shamlar {int speedo; if (mode == 4) speedo = 6000; boshqa speedo = 22000; for (int i = 0); i <7; i ++) twink = yangi chaqmoq (300, 295, 255, 250, speedo); while (true) {for (int i = 0; i levelnow ()); }} // To'lqinlar. // Bu bo'lim ziddiyatli qavslar bilan boshlanadi // ziddiyatli nomlar yo'qligiga ishonch hosil qilish uchun. // Qavsga boshqa ehtiyoj yo'q, // rejim qiymatini tekshirishning hojati yo'q.{int lolite = 2; int hilite = 255; int o'rtacha; int ampl; float fasedelta = 2,5; suzuvchi faza; int elong; suzuvchi omil; uzoq muddat; o'rtacha = (lolit + hilit) / 2; ampl = hilit - o'rtacha; agar (tartib == 6) davr = 1500; boshqa davr = 3500; faktor = 6.28318530718 / davr; while (true) {fase = phactor * (millis () % davr); elong = o'rtacha + ampl * sin (faza); analogWrite (7, uzun); analogWrite (9, uzun); faza = faktor * ((millis () + davr / 4) % davr); elong = o'rtacha + ampl * sin (faza); analogWrite (3, uzun); analogWrite (8, uzun); faza = faktor * ((millis () + davr / 2) % davr); elong = o'rtacha + ampl * sin (faza); analogWrite (4, uzun); analogWrite (5, uzun); faza = faktor * ((millis () + 3 * davr / 4) % davr); elong = o'rtacha + ampl * sin (faza); analogWrite (6, uzun); } // Sham simlarini Arduino -ga ulab turib, // Men ularni aralashtirib yubordim va hech qachon tartibga keltirmadim. // Buyurtma to'lqin naqshlarini yaratish uchun muhim, // shuning uchun men bu kichik jadvalni men uchun yozdim: // // Sham# ko'prikda: 2 3 5 4 7 6 1 // Arduino -dagi ma'lumotlar pin: 3 4 5 6 7 8 9}} void loop () {// Har bir yorug'lik dasturi o'zining cheksiz tsikli bo'lgani uchun, // hamma looplarni begin () bo'limiga yozdim // va bu loop () bo'limi uchun hech narsa qoldirmadim. }
6 -qadam: PWM haqida
Ledlar 3 V kuchlanish bilan yonadi, faqat 1,5 V kuchlanish bilan ular umuman yonmaydi. LED chiroqlar, akkor chiroqlar singari, pasayish kuchlanishi bilan yaxshi o'chmaydi. Buning o'rniga ularni to'liq kuchlanish bilan yoqish kerak, keyin o'chirish kerak. Bu soniyada 50 marta sodir bo'lganda, ular 50 % yorqinlik bilan yaxshi porlaydilar. Agar ular faqat 5 ms va 15 ms o'chirilgan bo'lsa, ular 25 % nashrida porlashi mumkin. Ushbu texnologiya LED yoritgichini xiralashtiradigan narsadir. Ushbu usul puls kengligi modulyatsiyasi yoki PWM deb ataladi. Arduino kabi mikrokontrollerda odatda ma'lumotlar pinlari mavjud bo'lib, ular signallarni yoqish/o'chirish imkoniyatini beradi. Ba'zi ma'lumotlar pinlari PWM uchun imkoniyatlarga ega. Agar PWM o'rnatilgan pinlar etarli bo'lmasa, odatda "dasturiy ta'minot PWM pinlari" ni yaratish uchun maxsus dasturlash kutubxonalaridan foydalanish mumkin.
Men o'z loyihamda Arduino Mega2560 -dan foydalandim, u 3 - 9 -pimlarda PWM apparati bilan jihozlangan. Agar siz Arduino UNO dan foydalansangiz, sizda faqat oltita PWM pin bor. Bunday holda, agar sizga 7 -chi (yoki undan ham ko'proq) sham kerak bo'lsa, men Brett Xagmanning PWM kutubxonasini bu erda topishingiz mumkin.
Tavsiya:
Sham bilan ishlaydigan elektr sham: 8 qadam (rasmlar bilan)
Sham bilan ishlaydigan elektr sham: "Sendi" bo'roni haqidagi yangiliklarni ko'rganimdan va Nyu-York va Nyu-Jersidagi oilam va do'stlarim boshidan kechirgan sinovni eshitganimdan so'ng, men o'zimning favqulodda vaziyatlarga tayyorligim haqida o'ylashga majbur bo'ldim. San -Frantsisko - oxir -oqibat, juda tepada
Oson LED rangini o'zgartirish "sham": 5 qadam (rasmlar bilan)
Oson LED rangini o'zgartirish "Sham": Bu bolalar va kattalar uchun ajoyib rangni o'zgartiradigan oddiy yorug'lik. Xira yoritilgan xonada chiroyli ko'rinadi, dam olish uchun ajoyib va tunda juda yaxshi yorug'lik beradi
Matrix LED sham nuri: 10 qadam (rasmlar bilan)
Matrisli LED sham nuri: Salom, siz bu ko'rsatmalarni o'qiysiz, qanday qilib uzoq vaqt xizmat qiladigan LED-Matrix- chiroqni yasashni o'rganasiz, u juda zamonaviy ko'rinadi, chekmaydi;) va uni smartfonni zaryadlovchi bilan qayta yuklash mumkin. haqiqiy olovning juda yaxshi ifodasi
Miltillovchi LED sham: 10 qadam
Miltillovchi LED sham: Dollar do'koni " miltillovchi " LED sham, AVR ATtiny13 va ozgina kod qo'shing, shunda siz deyarli haqiqiy ko'rinadigan LED shamni olasiz
YAFLC (Yana miltillovchi LED sham): 8 qadam
YAFLC (Yana bir miltillovchi LED sham): Ko'rsatmalarda miltillovchi LED shamni yasash haqida ko'plab xabarlar mavjud. Bu mening versiyam, loyiha quyidagi komponentlarni talab qiladi: 1. Tiny45 AVR mikrokontroller (Tiny13 ham shunday qiladi) 2. 1W issiq oq (yoki sariq) LED3. Perspex trubkasi