Turinys:
- Prekės
- 1 žingsnis: ištirkite, ką gavote
- 2 žingsnis: šiek tiek litavimo
- 3 žingsnis: jungtys
- 4 žingsnis: šviesos programos
- 5 žingsnis: Kodas
- 6 žingsnis: Apie PWM
Video: Mirgantis žvakių tiltas: 6 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Šioje pamokoje parodyta, kaip paprastą žvakių tiltelį su statine šviesa paversti gražiai švytinčia nuotaikos šviesa su begaline mirgančių šviesų, mirksėjimo, bangų modelių ir kt. Aš nusipirkau iš „After Christmas Sales“žvakių tiltelį už 8 €. Jame yra 7 lemputės ir maždaug 33 V 3 W sieninis adapteris. Jis šviečia ryškia ir šilta balta spalva ir puikiai tiks šiam projektui, kuriame įdėsiu „Arduino“, kad žvakės mirgėtų. Populiariausias „Arduino“yra „Arduino Uno“. Šiame projekte naudosiu „Arduino Mega 2560“.
Aš atsisakysiu 30 V maitinimo šaltinio ir kaip maitinimo šaltinį naudosiu paprastą 5 V maitinimo bloką, skirtą mobiliesiems telefonams.
Geras dalykas, kurį reikia žinoti apie maitinimo bankus, yra tai, kad jie turi vidinę grandinę, kuri transformuoja bateriją nuo 3,7 V iki 5 V. Kadangi procesas naudoja tam tikrą energiją, maitinimo blokas pats išsijungia, jei jis nenaudojamas. Jei maitinimo bankas naudojamas „Arduino“pagrindu sukurtiems „pasidaryk pats“įtaisams, įtaisas negali tiesiog užmigti energijos taupymo režimu ir po kelių minučių vėl pradėti. Tai išjungs maitinimo banką. Šis mirgantis žvakių tiltas neturi miego režimo. Jis naudoja nuolatinę energiją, išlaikydamas maitinimo bloką aktyvų, kol ištraukiamas maitinimo kabelis.
Vaizdo įraše rodomas žvakių tiltas statiniu režimu ir visiškai mirksi. Visas mirgėjimas tikrai erzina akis, o vaizdo įrašas jį šiek tiek išlygina. Ištaisius aparatūrą, įskaitant kabelių pjovimą, naujų jungčių litavimą ir kai kurių komponentų pridėjimą, visi norimi šviesos modeliai sukuriami rašant „Arduino“kodą. Į šią instrukciją įtraukiu modelius:
- 4 skirtingos mirgančios lemputės, imituojančios tikras žvakes
- 2 skirtingi mirksėjimai (atsitiktinis mirksėjimas kitaip statinėmis lemputėmis)
- 2 skirtingi bangų modeliai
- paprasta statinė šviesa
Perjungimo modeliai vyksta paspaudus mygtuką - vieną vartotojo sąsajos elementą. Kuo daugiau modelių norima ir kuo daugiau norima reguliuoti, tuo daugiau mygtukų ir rankenėlių reikia pridėti. Tačiau grožis slypi paprastume. Sumažinkite pasirenkamų modelių skaičių. Kodavimo ir testavimo metu pasirinkite geriausius nustatymus, o ne pridėdami prie aparatūros daug valdiklių.
Prekės
- 1 LED žvakių tiltas su 7 lemputėmis. Įsitikinkite, kad tai žemos įtampos nuolatinės srovės modelis su baterijomis arba su sieniniu maitinimo šaltiniu, kuris mirtiną 110–240 V kintamąją transformuoja į maždaug 6–30 V nuolatinę srovę. Taigi visiškai saugu nulaužti žvakių tiltą.
- 1 „Arduino Mega“(tinka bet kuris kitas mikrovaldiklis, tik įsitikinkite, kad galite jį užprogramuoti)
- 1 duonos lentos prototipas
- trumpieji laidai ir kita viela
- litavimo įrankis
- multimetras
- 7 rezistoriai, 120 Ω
- 1 mygtukas (parodysiu, kaip galite naudoti įmontuotą mygtuką „Arduino“)
- Darlingtono tranzistoriaus IC, skirtas 7 tranzistoriams, tinka ULN2803AP (jei naudojate „Arduino Uno“arba „Meaga“, jums to tikrai nereikia)
- 5 V maitinimo bankas, skirtas mobiliesiems telefonams
1 žingsnis: ištirkite, ką gavote
Sužinokite, kokia įtampa veikia kiekvienas šviesos diodas ir kiek srovės teka.
- Atidarykite žvakių tilto apačią. Raskite du laidus, einančius prie vienos žvakės.
- Nupjaukite tam tikrą kabelių izoliaciją, atskleisdami varinius laidus, nenupjovę varinių laidų.
- Įjunkite šviesas (atsipalaiduokite, tai tik keli voltai) ir išmatuokite įtampą per atskleistus varinius laidus.
- Nupjaukite kabelį viename iš matavimo taškų (šiuo metu, žinoma, lemputės užgęsta), nuimkite izoliaciją (3–4 mm) iš abiejų galų. Išmatuokite praeinančią srovę. Ką darote, tai iš naujo prijunkite perpjautą kabelį prie savo multimetro, leisdami visai srovei tekėti per jūsų multimetrą, kuris dabar nurodo srovės kiekį.
Mano skaitymai
Įtampa virš vienos žvakės (3 žingsnis): 3,1 V
Atkreipkite dėmesį, kad maitinimo šaltinis prie žvakių tilto buvo 33 V. Taigi septynis kartus 3,1 V yra tik 21,7 V. Kai kuriose žvakėse turi būti papildomas rezistorius. Jei būčiau matavęs tą žvakės įtampą, ji turėjo būti maždaug 11 V.
Srovė, tekanti degant žvakėms (4 žingsnis): 19 mA
Aš maitinu viską su 5 V 2 A baterija. Žvakėms reikia sumažinti įtampą nuo 5 V iki 3 V. Man reikia rezistoriaus, kuris sumažins 2 V įtampą esant 19 mA srovei.
2 V / 0,019 A = 105 Ω
Galios išsklaidymas yra:
2 V * 19 mA = 38 mW
Tai nereikšminga. Daug daugiau gali išpūsti patį rezistorių. Tačiau be 105 Ω rezistoriaus aš galėčiau užsidegti šviesos diodą. Turiu 100 Ω ir 120 Ω rezistorius. Aš einu su 120 Ω. Tai suteikia daugiau apsaugos.
Išbandžius visas 7 žvakes 3 V įtampa, buvo gauta ryški šviesa, išskyrus vieną žvakę, kurioje buvo tik labai silpna šviesa, praėjo tik apie 0,8 mA. Tai buvo mano žvakė su papildomu rezistoriumi. Paaiškėjo, kad kitos žvakės apskritai neturėjo rezistorių. Šviestuvuose naudojami LED žibintai yra skirti tik 3 V įtampai! Žvakę su papildomu rezistoriumi reikėjo atidaryti naudojant švelnų smurtą, tačiau niekas nesulaužė. Rezistorius buvo rastas po mažu šviesos diodu plastikinės žvakės lemputės viduje. Aš turėjau jį išlydyti ir ištirpinti laidus. Tai buvo šiek tiek netvarkinga, nes lituoklis sušildė karštus klijus, kurie buvo naudojami surinkimui.
Taigi dabar žinau, kad nepriklausomai nuo naudojamo energijos šaltinio, kad ir kokia būtų įtampa, turiu sumažinti įtampą iki 3 V, leidžiančią praeiti 19 mA.
Jei būčiau labiau susipažinęs su LED technologija, būčiau atpažinęs naudojamo LED tipą ir žinojęs, kad jam reikia 3 V.
2 žingsnis: šiek tiek litavimo
Šiame žingsnyje aš prijungiu visus teigiamus (+) laidus nuo 5 žvakių prie vieno laido. Tada prie kiekvienos žvakės pridedu atskirą neigiamą (-) laidą. LED lemputė užsidega tik tada, kai „+“ir „-“eina į dešinę. Kadangi iš kiekvienos žvakės turite tik du vienodus kabelių galus, turite išbandyti, kuris iš jų yra „+“, o kuris-„-“. Tam jums reikia 3 V maitinimo šaltinio. Turėjau nedidelį baterijų paketą, kuriame buvo dvi AAA baterijos. 3 V monetų baterija taip pat puikiai tinka bandymams.
Žvakių tiltui reikia 8 kabelių, kad galėtų važiuoti tarp „Arduino“ir tilto. Jei rasite kabelį su 8 izoliuotais laidais, tai būtų puiku. Vienas laidas turi išlaikyti 120 mA, likusieji - ne daugiau kaip 20 mA. Aš nusprendžiau naudoti 4 dvigubo laido kabelius, kuriuos atsitiktinai turėjau.
Pirmasis vaizdas rodo, kaip aš paruošiau vieną bendrą laidą, kad galėčiau prijungti visus „+“laidus nuo žvakių. Kiekvienai žvakei nuimkite tam tikros bendros vielos izoliaciją. Prie kiekvienos jungties pridėkite susitraukiančio izoliacinio vamzdžio gabalėlį (geltona juostelė paveikslėlyje) ir padėkite jį tinkamoje bendro kabelio vietoje. Lituokite „+“laidą nuo kiekvienos žvakės iki jungties, uždenkite jungtį susitraukiančiu vamzdeliu ir sutraukite. Žinoma, paprasta lipni juosta taip pat tinka, viskas bus padengta.
Antrame paveikslėlyje pavaizduoti „-“laidai, kurių reikia kiekvienai žvakei. Įprastas „+“laidas eina tiesiai į „Arduino“5 V kaištį (arba galbūt per duonos lentą). Kiekvienas „-“laidas eina į savo tranzistoriaus IC kaištį (vėlgi, tikriausiai per duonos lentą).
„Arduino“dažnai vadinamas prototipų lenta. Duonos lenta taip pat yra kažkas, ką naudojate prototipuose. Tai, ką aš aprašau šioje instrukcijoje, yra prototipas. Aš to nepadarysiu į prašmatnų blizgantį gaminį, kuriame viskas būtų paslėpta gražiose plastikinėse dėžutėse. Perkėlimas iš prototipo į kitą lygį reikštų pakeisti duonos plokštę spausdintine plokšte ir lituotais komponentais ir netgi pakeisti „Arduino“paprastu mikrovaldiklio lustu (iš tikrųjų toks lustas yra „Arduino“smegenys). Ir kad viskas tilptų į plastikinį dėklą arba nulaužto žvakių tilto viduje.
3 žingsnis: jungtys
Apie „Arduinos“, paimta iš šio puslapio:
- Bendra maksimali srovė vienam įvesties/išvesties kaiščiui: 40 mA
- Srovių iš visų įvesties/išvesties kaiščių suma: 200 mA
Mano žvakės sunaudoja po 19 mA, kai jie maitinami 3 V. Jų yra septyni, tai yra 133 mA. Taigi galėčiau juos maitinti tiesiai iš išvesties kaiščių. Tačiau turiu keletą atsarginių darlingtono tranzistorių IC. Taigi pagalvojau, kodėl gi ne. Mano grandinė veikia teisingai: duomenų kaiščiai skirti tik signalams, o ne maitinimui. Vietoj to aš naudoju 5 V kaištį „Arduino“, kad galėčiau maitinti šviesos diodus. Atliekant bandymą, nešiojamasis kompiuteris prijungtas prie „Arduino“. Viskas maitinama iš nešiojamojo kompiuterio USB, o tai suteikia 5 V. „Arduino Mega“turi savo saugiklį, kuris 500 mA srove apsaugo kompiuterį. Mano žvakės sunaudoja ne daugiau kaip 133 mA. Arduino tikriausiai daug mažiau. Viskas veikia gerai, kai maitinamas nešiojamu kompiuteriu, todėl naudoti 5 V bateriją, prijungtą prie „Arduino“USB prievado, yra puiku.
Duomenų kaiščiai D3 - D9 eina į IC ULN2803APGCN. Šviesos diodai veikia esant 3 V. Kiekviena lemputė prijungta prie 5 V šaltinio ir toliau prie 120 Ω rezistoriaus. Toliau prie vieno IC kanalo, kuris pagaliau jungia grandinę su žeme per darlingtono tranzistorių IC.
Prie grandinės pridedamas mygtukas, leidžiantis atlikti tam tikrus vartotojo veiksmus. Taigi žvakių tiltas gali turėti kelias vartotojo pasirinktas programas.
Mygtukas grandinėje yra prijungtas prie RESET ir GND. Būtent tai daro įmontuotas atstatymo mygtukas. Kadangi ne viską supakuoju į plastikinį dėklą, programai valdyti naudoju „Arduino“nustatymo iš naujo mygtuką. Mygtuko pridėjimas pagal paveikslėlį veiks lygiai taip pat, kaip ir plokštės nustatymo iš naujo mygtukas. Programa veikia prisimenant, kokia šviesos programa buvo naudojama paskutinį kartą. Taigi kiekvienas atstatymas pereis prie kitos šviesos programos.
Nuotraukose parodyta, kaip nauji kabeliai išeina iš tilto, kaip aš uždėjau tranzistorių IC ir rezistorius ant lentos ir kaip jungiamieji laidai jungiasi prie „Arduino Mega“. Aš perkirtau 4 megztinius vyriškus-vyriškus laidus į 8 puslaidininkius, kuriuos lituodavau prie 8 kabelių, išeinančių iš žvakių tilto. Tokiu būdu galiu tiesiog įkišti kabelius į duonos lentą.
Alternatyva be tranzistorių
Ankstesniame žingsnyje aš paruošiau bendrą „+“laidą žvakėms ir atskirus „-“laidus, einančius per tranzistorių IC į žemę. Kai vienas duomenų kaištis pakyla aukštai, atitinkamas laidas „-“įžeminamas per jo tranzistorių ir šviesos diodus.
Taip pat veiktų „-“laidų prijungimas tiesiai prie „Arduino“duomenų kaiščių, tačiau visada atkreipkite dėmesį į tai, kiek srovės duomenų kaiščiai gali atlaikyti! Šį metodą reikėtų pakeisti mano programoje. Norint įjungti žvakes, duomenų smeigtukai turėtų būti žemi. Jei norite naudoti mano programą tokią, kokia ji yra, žvakėse turite perjungti „+“ir „-“. Turėkite bendrą žvakių laidą „-“, kuris eina į Arduino GND. Ir atskiri laidai eina tarp žvakės „+“laido ir „Arduino“duomenų kaiščio.
4 žingsnis: šviesos programos
Mano programa, kurią pristatysiu kitame žingsnyje, eina per 9 šviesos programas. Paspaudus mygtuką, sekundei užges šviesos, tada prasidės tokia šviesos programa. Programos yra tokios:
- Stiprus mirgėjimas. Žvakės mirksi atsitiktinai. Tai atrodo labai erzina, kai žiūri į juos iš arti, bet gali atrodyti gerai iš tolo ir galbūt už šalto palėpės lango. Tačiau jūsų kaimynas gali iškviesti ugniagesius.
- Minkštas mirgėjimas. Labai gerai atrodo. Kaip tikros žvakės kambaryje be skersvėjo.
- Kintantis mirgėjimas. Žvakės sklandžiai kaitaliojasi tarp stipraus ir švelnaus mirgėjimo maždaug 30 s intervalu.
- Kintantis mirgėjimas. Kaip ir Nr. 3, tačiau kiekviena žvakė savo tempu svyruoja nuo 30 iki 60 s.
- Greitas mirksėjimas. Žvakės šviečia statiškai pritemdytu lygiu ir atsitiktinai mirksi. Vidutiniškai kas sekundę sumirksi.
- Lėtas mirksėjimas. Kaip ir 5, bet daug lėčiau.
- Greita banga nuo vidurinės viršutinės žvakės iki apatinės.
- Lėta banga nuo žvakės vidurio iki apatinės.
- Statiška ryški šviesa. Turėjau tai įtraukti, nenorėjau atsikratyti pradinės funkcijos.
5 žingsnis: Kodas
/*
FLICKERING CANDLE TILTAS */ // Deklaruokite režimo kintamąjį, kad jis išlaikytų būseną // per atstatymo operaciją _attribute _ ((skyrius (". Apieit"))) nepasirašytas int režimas; // Kai programa paleidžiama po atstatymo, ši atminties dalis nėra inicijuojama, bet turi vertę //, kurią ji turėjo prieš atstatymą. Pirmą kartą paleidus // programą, ji turi atsitiktinę reikšmę. / * * Žvakių klasėje yra viskas, ko reikia *, norint apskaičiuoti mirgančios žvakės šviesos lygį. */ klasės žvakė {privati: ilgas maxtime; ilgas mėtų laikas; ilgas maxlitas; ilgas minlitas; ilgas vidutinis; ilgas pradinis laikas; ilgas kilmės laikas; ilgas origmaxlitas; ilgas origminlitas; ilgas origmeanlitas; ilgas deltamaxtime; ilgas dienos laikas; ilgas deltamakslitas; ilgas deltaminlitas; ilgas deltameanlitas; ilgas lforatas; ilgas išlyginimas; ilga pradžia; ilgas taikinys; plūdinis faktorius; ilgas taikymo laikas; ilgas pradžios laikas; ilgas trynimo laikas; void newtarget (void); ilgas onetarget (niekinis); viešas: žvakė (ilgas kilimėlis, ilgas mitas, ilgas mal, ilgas mil, ilgas mel, ilgas eo); ilgas lygis (tuštuma); void initlfo (ilgas deltamatas, ilgas deltamitas, ilgas deltamas, ilgas deltamilis, ilgas deltameanas, ilgas kursas); void setlfo (niekinis); }; žvakė:: žvakė (long mat, long mit, long mal, long mil, long mel, long eo): maxtime (mat), mintime (mit), maxlite (mal), minlite (mil), meanlite (mel), evenout (eo), origmaxtime (mat), origmintime (mit), origmaxlite (mal), origminlite (mil), origmeanlite (mel) {target = meanlite; newtarget (); } / * * levelnow () grąžina žvakės šviesos lygį šiuo metu. * Funkcija rūpinasi naujo atsitiktinio apšvietimo lygio nustatymu ir * laiku, per kurį reikia pasiekti šį lygį. Pokytis nėra tiesinis, * bet seka sigmoidinę kreivę. Kai ne laikas nustatyti naują * lygį, funkcija tiesiog grąžina šviesos lygį. */ ilga žvakė:: levelnow (void) {ilga pagalba, dabar; plūdė t1, t2; dabar = milis (); if (dabar> = tikslinis laikas) {help = target; newtarget (); pagalba grąžinti; } else {// help = target * (milis () - pradžios laikas) / deltatime + start * (targettime - millis ()) / deltatime; t1 = plūdė (tikslinis laikas - dabar) / deltatime; t2 = 1. - t1; // Tai yra sigmoidinio skaičiavimo pagalba = t1*t1*t1*start + t1*t1*t2*start*3 + t1*t2*t2*target*3 + t2*t2*t2*target; pagalba grąžinti; }} niekinė žvakė:: newtarget (void) {ilga suma; suma = 0; (ilgas i = 0; i <lyginis; i ++) suma+= onetarget (); pradžia = tikslas; tikslas = suma / lygumas; pradžios laikas = milis (); targettime = pradžios laikas + atsitiktinis (mintime, maxtime); deltatime = targettime - pradžios laikas; } ilga žvakė:: onetarget (void) {if (atsitiktinis (0, 10) paskutinis patikrinimas + 100) {lastcheck = dabar; / * * Žvilgsnio „po greičio milisekundžių“pradžia: * Pradėkite tikrinti po 2 /2 milisekundžių * Per 2 /2 milisekundžių laikotarpį * padidinkite tikimybę, kad mirksės 50 %. * Jei rodiklis yra 10000 ms, per 5000 ms moneta * apverčiama 50 kartų. * 1/50 = 0,02 * Jei atsitiktinis (10000) pradžios laikas + rodiklis / 2) {jei (atsitiktinis (norma) tikslinis laikas) grąžina žemą; return (pradžia - „lowlite“) * (targettime - dabar) / (targettime - starttime) + lowlite; } void twinkler:: twink (void) {pradžios laikas = milis (); targettime = atsitiktinis (minime, maxtime) + starttime; pradžia = atsitiktinis (minlitas, makslitas); } void setup () {int led; // Perskaitykite stebuklingo režimo kintamąjį, kuris turėtų pasakyti // kokia šviesos programa buvo paleista paskutinį kartą, padidinkite ją // ir iš naujo nustatykite į nulį, jei perpildysite. režimas ++; režimas %= 9; // Tai rūpinasi bet kokia verte // pirmą kartą „Arduino“// paleido šią programą. / * * SVARBI PASTABA * ============== * * Svarbiausias dalykas, kurį ši programa daro, yra perduoti PWM * signalus į LED lemputes. Čia aš nustatiau kaiščius nuo 3 iki 9 į * išvesties režimą. „Arduino Mega2560“šie kaiščiai gražiai perduoda * gražius PWM signalus. Jei turite kitą „Arduino“, patikrinkite *, kuriuos kaiščius (ir kiek) galite naudoti. Visada galite * perrašyti kodą, kad galėtumėte naudoti programinę įrangą PWM, jei jūsų „Arduino“* negali pateikti pakankamai aparatinės įrangos PWM kaiščių. * */ pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT); pinMode (6, OUTPUT); pinMode (7, OUTPUT); pinMode (8, OUTPUT); pinMode (9, OUTPUT); pinMode (LED_BUILTIN, OUTPUT); analogWrite (LED_BUILTIN, 0); // Tiesiog išjunkite erzinantį raudoną šviesos diodą ant „Arduino“žvakės *skardinės [7]; // pasiruoškite naudoti mirgančias žvakes, nesvarbu, ar jas naudojate, ar ne twinkler *twink [7]; // pasiruoškite naudoti žibančias žvakes… if (mode == 8) {for (int i = 3; i <10; i ++) analogWrite (i, 255); o (tiesa); // Kiekvieną kartą, kai ši programa paleidžiama, ji pereina į // tokią begalinę kilpą, kol paspaudžiamas iš naujo // mygtukas. } if (režimas <2) // mirgėjimas {ilgas maxtime_; ilgas mėtų laikas_; ilgas maxlite_; ilgas minlite_; ilgas vidutinis_; ilgas net_; jei (režimas == 0) {maxtime_ = 250; mintime_ = 50; maxlite_ = 256; minlite_ = 0; vidurkis_ = 128; lyginis_ = 1; } if (režimas == 1) {maxtime_ = 400; mėtos_ = 150; maxlite_ = 256; minlite_ = 100; vidurkis_ = 200; lyginis_ = 1; } for (int i = 0; i <7; i ++) {can = nauja žvakė (maxtime_, mintime_, maxlite_, minlite_, meanlite_, even_); } while (true) // Begalinė mirgančių žvakių kilpa {for (int i = 0; i levelnow ()); }} if (režimas <4) // lfo pridėtas prie mirgėjimo {if (mode == 2) // tas pats lfo (30 s) visoms žvakėms {for (int i = 0; i initlfo (75, 50, 0), 50, 36, 30000);}} if (režimas == 3) // kintantis lfo: s žvakėms {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 20000); gali [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); gali [4]-> initlfo (75, 40, 0, 50, 36, 40000); gali [5]-> initlfo (75, 30, 0, 50, 26, 45000); gali [6]-> initlfo (75, 20, 0, 50, 16, 50000); gali [7]-> initlfo (75, 10, 0, 50, 6, 55000);} nors (tiesa) // Nesibaigianti kilpa žybsinčioms žvakėms su lfo {ilgas paskutinis laikrodis = 0; skirtas (int i = 0; i levelnow ()); if (milis ()> paskutinis laikrodis + 4000) {lastclock = millis (); for (int i = 0; i setlfo ();}}} if (režimas <6) // mirksinčios žvakės {int speedo; if (mode == 4) speedo = 6000; else speedo = 22000; for (int i = 0; i <7; i ++) twink = naujas mirksintis (300, 295, 255, 250, speedo); tuo tarpu (tiesa) {for (int i = 0; i levelnow ()); }} // Bangos. // Šis skyrius prasideda garbanotais skliaustais tik //, siekiant užtikrinti, kad nebūtų prieštaringų kintamųjų pavadinimų. // Nereikia kitų skliaustų, nereikia tikrinti // režimo vertės.{int lolitas = 2; int hilite = 255; int mean; int ampl; plūdė fasedelta = 2,5; plūdinė fase; int elong; plūdinis faktorius; ilgas laikotarpis; vidurkis = (lolitas + hilitas) / 2; ampl = hilite - vidurkis; jei (režimas == 6) periodas = 1500; kitas laikotarpis = 3500; faktorius = 6.28318530718 / periodas; nors (tiesa) {fase = factor * (milis () % laikotarpis); elong = vidurkis + ampl * sin (fase); analogWrite (7, pailgas); analogWrite (9, ilgas); fase = faktorius * ((milis () + periodas / 4) % laikotarpis); elong = vidurkis + ampl * sin (fase); analogWrite (3, ilgas); analogWrite (8, pailgas); fase = faktorius * ((milis () + periodas / 2) % laikotarpis); elong = vidurkis + ampl * sin (fase); analogWrite (4, pailgas); analogWrite (5, ilgas); fase = faktorius * ((milis () + 3 * laikotarpis / 4) % laikotarpis); elong = vidurkis + ampl * sin (fase); analogWrite (6, pailgas); } // Prijungdamas žvakių laidus prie „Arduino“, // aš juos sumaišiau ir niekada nesutvarkiau. // Tvarka yra svarbi kuriant bangų modelius, // aš ką tik parašiau šią mažą lentelę: // // Žvakė# tilte: 2 3 5 4 7 6 1 // Duomenų kaištis „Arduino“: 3 4 5 6 7 8 9}} void loop () {// Kadangi kiekviena šviesioji programa yra sava begalinė kilpa, // visas kilpas parašiau skyriuje begin () // ir nieko nepalikau šiai ciklo () sekcijai. }
6 žingsnis: Apie PWM
Šviesos diodai šviečia ryškiai, kai jie maitinami 3 V. Naudojant tik 1,5 V, jie visai nešviečia. Šviesos diodų lemputės neblunka gerai, kai kinta įtampa, kaip tai daro kaitrinės lempos. Vietoj to jie turi būti įjungti visa įtampa, tada išjungti. Kai tai atsitinka 50 kartų per sekundę, jie gražiai šviečia 50 % ryškumu, daugiau ar mažiau. Jei jiems leidžiama veikti tik 5 ms ir išjungta 15 ms, jie gali spindėti 25 % ryškumu. Dėl šios technikos LED šviesa yra pritemdoma. Šis metodas vadinamas impulsų pločio moduliacija arba PWM. Tokiame mikrovaldiklyje kaip „Arduino“paprastai yra duomenų kaiščiai, kurie gali siųsti įjungimo/išjungimo signalus. Kai kurie duomenų kaiščiai turi integruotas PWM galimybes. Bet jei nėra pakankamai kaiščių su įmontuotu PWM, paprastai galima naudoti tam skirtas programavimo bibliotekas „programinės įrangos PWM kaiščiams“sukurti.
Savo projekte naudojau „Arduino Mega2560“, kurio 3–9 smeigtukai turi aparatinę PWM. Jei naudojate „Arduino UNO“, turite tik šešis PWM kaiščius. Tokiu atveju, jei jums reikia 7 -os (ar net daugiau) žvakės, galiu rekomenduoti Brett Hagman programinės įrangos PWM biblioteką, kurią rasite čia.
Rekomenduojamas:
Elektrinė žvakių žvakė: 8 žingsniai (su nuotraukomis)
Elektrinė žvakių varoma žvakė: pamačius naujienų pranešimus apie uraganą „Sandy“ir išgirdus išbandymą, kurį patyrė visa mano šeima ir draugai Niujorke ir Naujajame Džersyje, tai privertė mane galvoti apie savo pasirengimą ekstremalioms situacijoms. Galų gale San Franciskas sėdi ant kai kurių
Pirmasis pasaulyje šviesolaidinis žvakių laikrodis: 14 žingsnių (su nuotraukomis)
Pirmasis pasaulyje šviesolaidinis žvakių laikrodis: nusprendžiau padovanoti žmonai dovaną ir norėjau sugalvoti originalią idėją. Man patiko judančios skulptūros idėja ir po ilgų svarstymų sugalvojau mechaninio laikrodžio koncepciją, kuri mirgėjo ir mirgėjo naudojant kristalus, žvakes ir
Pėdų žvakių matuoklio konvertavimas fotografavimui: 5 žingsniai (su nuotraukomis)
Pėdų ir žvakių matuoklio konvertavimas fotografavimui: jei jums patinka mano darbas, balsuokite už šį nurodymą „Padarykite tai tikru iššūkiu“iki 2012 m. Birželio 4 d. Ačiū! Tiems iš fotografų mėgėjų, kuriems patinka filmuoti, kartais senos kameros neturi tinkamo šviesos matuoklio
OLED žvakių šviesos grandinė su fotoresistencija intensyvumo kontrolei (TfCD): 4 žingsniai (su nuotraukomis)
OLED žvakių šviesos grandinė su fotoresistencija intensyvumo kontrolei (TfCD): Šioje instrukcijoje parodysime, kaip sukurti grandinę, kurioje (O) šviesos diodai mirksi kaip žvakė ir reaguoja į aplinkos intensyvumą. Esant mažesniam šviesos intensyvumui, reikia mažesnio šviesos srauto iš šviesos šaltinių. Su šia aplikacija
Paprastas „Wi -Fi“ryšys su „BLE“(„Bluetooth Low Energy“) tiltas: 9 žingsniai (su nuotraukomis)
Paprastas „WiFi“prie BLE („Bluetooth Low Energy“) tiltas: atnaujinimas 2017 m. Gruodžio 4 d. - peržiūrėti „Feather nRF52“eskizai ir derinimo patarimai. Pridėta tilto, sumontuoto dėžutėje, nuotraukos. Šis paprastas projektas suteikia „WiFi“prieigą prie bet kurio „Bluetooth Low Energy“(BLE) modulio, įgyvendinančio „Nordic“UART su „TX Notify“. T