Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Tutki mitä sinulla on
- Vaihe 2: Jotkut juotokset
- Vaihe 3: Yhteydet
- Vaihe 4: Valo -ohjelmat
- Vaihe 5: Koodi
- Vaihe 6: Tietoja PWM: stä
Video: Vilkkuva kynttiläsilta: 6 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tämä opettavainen opas näyttää kuinka yksinkertaisesta staattista valoa sisältävästä kynttiläsillasta tulee mukava hehkuva tunnelmavalo, jossa on loputtomia vaihteluja välkkyvistä valoista, välkkymistä, aaltokuvioita ja muuta. Ostin After Sales Salesista kynttiläsillan 8 €: lla. Siinä on 7 led -valoa ja noin 33 V 3 W: n seinäadapteri. Se loistaa kirkkaalla ja lämpimällä valkoisella värillä ja on täydellinen tähän projektiin, jossa laitan Arduinon, jotta kynttilät välkkyvät. Suosituin Arduino on Arduino Uno. Tässä projektissa käytän Arduino Mega 2560 -laitetta.
Aion luopua 30 V: n virtalähteestä ja käytän virtalähteenä yksinkertaista 5 V: n virtalähdettä, joka on tarkoitettu matkapuhelimille.
Hyvä tietää sähköpankeista on, että niissä on sisäpiiri, joka muuttaa akun 3,7 V: sta 5 V. Koska prosessi käyttää jonkin verran virtaa, virtapankki sulkeutuu, jos sitä ei käytetä. Jos virtapankkia käytetään Arduino -pohjaisiin DIY -laitteisiin, gadget ei voi vain laittaa itseään virransäästötilaan ja aloittaa uudelleen muutaman minuutin kuluttua. Se sulkee sähköpankin. Tällä vilkkuvalla kynttiläsillalla ei ole lepotilaa. Se käyttää jatkuvasti virtaa ja pitää virtapankin aktiivisena, kunnes virtajohto irrotetaan.
Video näyttää kynttiläsillan staattisessa tilassa ja täydessä välkkymisessä. Täysi välkkyminen on todella ärsyttävää silmille, kun taas video tasoittaa sitä hieman. Kun laitteisto on korjattu, mukaan lukien kaapeleiden leikkaaminen, uusien liitosten juottaminen ja joidenkin komponenttien lisääminen, kaikki halutut valokuviot luodaan kirjoittamalla Arduino -koodi. Tähän ohjeeseen sisällytettävät mallit ovat:
- 4 erilaista välkkyvää valoa, jotka jäljittelevät todellisia kynttilöitä
- 2 eri vilkkua (satunnaisesti vilkkuvat muuten staattiset valot)
- 2 erilaista aaltomallia
- yksinkertainen staattinen valo
Vaihtamismallit tapahtuvat yhden käyttöliittymäelementin, painikkeen kautta. Mitä enemmän kuvioita haluaa ja mitä enemmän säätömahdollisuuksia haluaa, sitä enemmän painikkeita ja nuppeja on lisättävä. Mutta kauneus piilee yksinkertaisuudessa. Pidä valittavissa olevien kuvioiden määrä pienenä. Valitse parhaat asetukset koodauksen ja testauksen aikana, älä lisää laitteistoon paljon säätimiä.
Tarvikkeet
- 1 LED -kynttiläsilta, jossa on 7 lamppua. Varmista, että se on matalajännitteinen tasavirtamalli, joko paristoilla tai seinäkiinnitteisellä virtalähteellä, joka muuttaa tappavan 110 - 240 V: n vaihtovirran noin 6 - 30 V: n tasavirtaksi. Joten on täysin turvallista hakata kynttiläsilta.
- 1 Arduino Mega (mikä tahansa muu mikro -ohjain tekee, muista vain ohjelmoida se)
- 1 prototyyppinen leipälauta
- hyppyjohdot ja muut johdot
- juotos työkalu
- yleismittari
- 7 vastusta, 120 Ω
- 1 painike (näytän, kuinka voit käyttää sisäänrakennettua painiketta Arduinossa)
- Darlington -transistori -IC 7 transistorille, ULN2803AP tekee sen (jos käytät Arduino Unoa tai Meagaa, et todellakaan tarvitse tätä)
- 5 V: n virtapankki, joka on tarkoitettu matkapuhelimille
Vaihe 1: Tutki mitä sinulla on
Selvitä, mikä jännite kukin LED toimii ja kuinka paljon virtaa virtaa.
- Avaa kynttiläsillan pohja. Etsi kaksi johtoa, jotka menevät yhteen kynttilään.
- Irrota kaapeleista eriste, joka paljastaa kuparilangat katkaisematta kuparilankoja.
- Kytke valot päälle (rentoudu, se on vain muutama voltti) ja mittaa jännite paljastuneiden kuparijohtimien yli.
- Katkaise kaapeli yhdestä mittauspisteestä (tässä vaiheessa valot tietysti sammuvat), poista eristys (3-4 mm) molemmista päistä. Mittaa kulkeva virta. Liitä katkaisukaapeli uudelleen yleismittariin ja anna kaiken virran kulkea yleismittarisi läpi, joka kertoo nyt virran määrän.
Omat lukemat
Yhden kynttilän jännite (vaihe 3): 3,1 V
Huomaa, että kynttiläsillan virtalähde oli 33 V. Joten seitsemän kertaa 3,1 V on vain 21,7 V. Joissakin kynttilöissä on oltava ylimääräinen vastus. Jos olisin mitannut kynttilän jännitteen, sen täytyi olla noin 11 V.
Virta, joka kulkee kynttilän syttymisen aikana (vaihe 4): 19 mA
Aion käyttää kaikkea 5 V 2 A -akulla. Kynttilöille minun on pudotettava jännite 5 V: sta 3 V. Tarvitsen vastuksen, joka laskee jännitteen 2 V 19 mA: n virralla.
2 V / 0,019 A = 105 Ω
Tehon hajoaminen on:
2 V * 19 mA = 38 mW
Se on vähäpätöinen. Paljon enemmän voisi puhaltaa itse vastuksen. Silti ilman 105 Ω: n vastusta voin räjäyttää LED -valon. Minulla on 100 Ω ja 120 Ω vastukset. Käytän 120 Ω. Se antaa enemmän suojaa.
Kaikkien 7 kynttilän testaaminen 3 V: lla antoi kirkkaan valon, paitsi yksi kynttilä, jossa oli vain hyvin hämärä valo ja vain noin 0,8 mA. Tämä oli minun kynttiläni ylimääräisellä vastuksella. Kävi ilmi, että muissa kynttilöissä ei ollut lainkaan vastuksia. Kattokruunussa käytetyt LED -valot on tarkoitettu vain 3 V: lle! Ylimääräisen vastuksen kynttilä oli avattava lievällä väkivallalla, mutta mikään ei rikki. Vastus löytyi pienen LED -valon alta muovisen kynttilälampun sisältä. Minun piti purkaa se pois ja purkaa johdot uudelleen. Se oli hieman sotkuinen, koska juotosrauta lämmitti jonkin verran kuumaa liimaa, jota oli käytetty kokoonpanoon.
Joten nyt tiedän, että riippumatta käyttämästäni virtalähteestä, jännitteestä riippumatta, minun on pudotettava jännite 3 V: iin, jolloin 19 mA kulkee läpi.
Jos olisin perehtynyt LED -tekniikkaan paremmin, olisin tunnistanut käytetyn LED -tyypin ja olisin tiennyt, että se tarvitsee 3 V.
Vaihe 2: Jotkut juotokset
Tässä vaiheessa kytken kaikki positiiviset (+) johdot 5 kynttilästä yhteen johtoon. Sitten lisään jokaiseen kynttilään erillisen negatiivisen (-) langan. LED-valo syttyy vain, kun '+' ja '-' menevät oikealle. Koska sinulla on vain kaksi identtistä kaapelinpäätä kustakin kynttilästä, sinun on testattava, kumpi on "+" ja mikä on "-". Tätä varten tarvitset 3 V: n virtalähteen. Minulla oli pieni akku, joka sisälsi kaksi AAA -paristoa. 3 V: n kolikkoakku toimii erinomaisesti myös testaamiseen.
Kynttiläsilta tarvitsee 8 johtoa kulkemaan Arduinon ja sillan välillä. Jos löydät kaapelin, jossa on 8 eristettyä johtoa, se olisi hienoa. Yhdessä johdossa on oltava 120 mA, muissa vain enintään 20 mA. Päätin käyttää 4 kaksijohdinkaapelia, joka sattui olemaan.
Ensimmäinen kuva osoittaa, kuinka valmistin yhden yhteisen johdon kaikkien "+" -johtojen kytkemiseksi kynttilöistä. Irrota jokaisen kynttilän eristäminen yhteisestä langasta. Lisää kutistemateriaaliputki (kuvan keltainen nauha) jokaiseen liitokseen ja aseta se yhteisen kaapelin oikeaan kohtaan. Juotos '+' lanka kustakin kynttilästä liitokseen, peitä liitos kutisteputkella ja kutista se. Tietenkin yksinkertainen teippi on myös hyvä, kaikki peitetään lopulta.
Toisessa kuvassa on kunkin kynttilän tarvitsemat johdot. Yhteinen "+" -johto menee suoraan Arduinon 5 V: n napaan (tai ehkä leipälevyn kautta). Jokainen ``-'' johdin menee omaan transistorin IC-nastaansa (jälleen luultavasti leipälevyn kautta).
Arduinoa kutsutaan usein prototyyppitauluksi. Leipälauta on myös jotain, jota käytät prototyypeissä. Tässä ohjeessa kuvailen prototyyppiä. En kehitä sitä tyylikkääksi kiiltäväksi tuotteeksi, jossa kaikki on piilotettu mukaviin muovikoteloihin. Sen siirtäminen prototyypistä seuraavalle tasolle merkitsisi leipälevyn korvaamista painetulla piirilevyllä ja juotetuilla komponenteilla ja jopa Arduinon korvaamisen yksinkertaisella mikro -ohjainsirulla (itse asiassa tällainen siru on Arduinon aivot). Ja kaikki mahtuu muovikoteloon tai hakkeroidun kynttiläsillan sisään.
Vaihe 3: Yhteydet
Tietoja Arduinosista, otettu tältä sivulta:
- Maksimivirta tulo-/lähtötappia kohden: 40 mA
- Kaikkien tulo-/lähtöliittimien yhteenlaskettujen virtojen summa: 200 mA
Kynttiläni kuluttavat kukin 19 mA, kun ne saavat virtaa 3 V. Niitä on seitsemän, mikä tekee 133 mA. Joten voisin syöttää niihin virtaa suoraan lähtötappeista. Minulla on kuitenkin muutama ylimääräinen darlington -transistori -IC. Joten ajattelin, miksi ei. Piirini tekee asian oikein: datanastat ovat vain signaaleja varten, ei virtaa varten. Sen sijaan käytän Arduinon 5 V: n nastaa LED -valojen virransyöttöön. Kun testaan, minulla on kannettava tietokone kytketty Arduinoon. Kaikki saa virtaa kannettavan tietokoneen USB -liitännästä, joka antaa 5 V. Kynttiläni kuluttavat korkeintaan 133 mA. Arduino luultavasti paljon vähemmän. Kaikki toimii hyvin, kun se saa virtaa kannettavasta tietokoneesta, joten Arduinon USB -porttiin kytketyn 5 V: n akun käyttäminen on hienoa.
Datanastat D3 - D9 menevät IC ULN2803APGCN. LEDit toimivat 3 V: lla. Jokainen lamppu on kytketty 5 V: n lähteeseen ja edelleen 120 Ω: n vastukseen. Edelleen yhdelle IC: n kanavalle, joka lopulta yhdistää piirin maahan IC: n darlington -transistorin kautta.
Piiriin lisätään painike, joka mahdollistaa jonkin käyttäjän toiminnan. Kynttiläsillalla voi siis olla muutamia käyttäjän valittavia ohjelmia.
Piirin painike on kytketty RESET- ja GND -järjestelmiin. Tämä on juuri se, mitä sisäänrakennettu nollauspainike tekee. Koska en koteloi kaikkea muovikoteloon, käytän Arduinon nollauspainiketta ohjelman ohjaamiseen. Painikkeen lisääminen kuvan mukaan toimii täsmälleen kuten levyn nollauspainike. Ohjelma toimii muistamalla, mitä valo -ohjelmaa käytettiin edellisen kerran ohjelman aikana. Siten jokainen nollaus siirtyy seuraavaan valo -ohjelmaan.
Valokuvat osoittavat, miten uudet kaapelit tulevat ulos sillalta, kuinka asetin transistorin IC: n ja vastukset leipälevylle ja kuinka hyppyjohdot kytkeytyvät Arduino Megaan. Leikkasin 4 uros-uros-hyppyjohdinta 8 puolijohteeksi, jotka juotin 8 kynttiläsillasta tulevaan kaapeliin. Tällä tavalla voin vain kiinnittää kaapelit leipälautaan.
Vaihtoehto ilman transistoreita
Edellisessä vaiheessa valmistin kynttilöille yhteisen "+" -johdon ja erilliset "-" -johdot, jotka kulkevat transistorin IC: n läpi maahan. Kun yksi datanappi nousee korkealle, vastaava '-'-johdin maadoitetaan transistorinsa ja LED-valojen kautta.
''-''-johtojen liittäminen suoraan Arduinon datatappeihin toimisi myös, mutta muista aina, kuinka paljon datanastat kestävät! Tämä lähestymistapa kaipaisi muutosta ohjelmaan. Se tarvitsisi datanastat alhaiseksi kynttilöiden sytyttämiseksi. Jos haluat käyttää ohjelmaa sellaisenaan, sinun on vaihdettava kynttilöissä "+" ja "-". Käytä kynttilöille yhteistä "-" johtoa, joka menee GND: lle Arduinolla. Ja erilliset johdot kulkevat kynttilän+-johdon ja Arduinon datatapin välillä.
Vaihe 4: Valo -ohjelmat
Ohjelmani, jonka esitän seuraavassa vaiheessa, käy läpi 9 valo -ohjelmaa. Painikkeen painaminen sammuttaa valot hetkeksi, ja seuraava valo -ohjelma käynnistyy. Ohjelmat ovat seuraavat:
- Voimakas välkkyminen. Kynttilät välkkyvät satunnaisesti. Tämä näyttää erittäin ärsyttävältä, kun tuijotat heitä läheltä, mutta saattaa näyttää hyvältä kaukaa ja ehkä huurun ullakkoikkunan takana. Naapurisi saattaa kuitenkin soittaa palokunnan.
- Pehmeä välkkyminen. Näyttää erittäin hyvältä. Kuin oikeat kynttilät huoneessa ilman vedettä.
- Vaihtelevaa välkkymistä. Kynttilät vuorottelevat tasaisesti voimakkaan ja pehmeän välkkymisen välillä noin 30 sekunnin välein.
- Vaihtelevaa välkkymistä. Kuten #3, mutta jokainen kynttilä vaihtelee omaan tahtiinsa 30 sekunnista 60 sekuntiin.
- Nopea pilke. Kynttilät loistavat staattisesti himmennettynä ja vilkkuvat satunnaisesti. Keskimäärin yksi välähdys joka sekunti.
- Hidas pilke. Kuten numero 5, mutta paljon hitaammin.
- Nopea aalto keskimmäisestä kynttilästä alempaan.
- Hidas aalto keskimmäisestä kynttilästä alempaan.
- Staattinen kirkas valo. Minun piti sisällyttää tämä, en halunnut päästä eroon alkuperäisestä toiminnasta.
Vaihe 5: Koodi
/*
FLICKERING CANDLE BRIDGE */ // Ilmoita moodimuuttujan pitävän tilan // nollaustoiminnon avulla _attribute _ ((jakso (". Noinit"))) unsigned int mode; // Kun ohjelma käynnistyy nollauksen jälkeen, tätä muistikappaletta ei alusteta, vaan se säilyttää arvon //, joka sillä oli ennen nollausta. Ensimmäisellä kerralla // -ohjelma suoritetaan, sillä on satunnainen arvo. / * * Kynttiläluokassa on kaikki tarvittava * valon voimakkuuden laskemiseksi * välkkyvälle kynttilälle. */ luokan kynttilä {yksityinen: pitkä maxtime; pitkä raha -aika; pitkä maxliitti; pitkä minliitti; pitkä keskimäärin; pitkä alkuperäisaika; pitkä alkuperäisaika; pitkä origmaxlite; pitkä origminliitti; pitkä origmeanliitti; pitkä deltamaxtime; pitkä deltamintime -aika; pitkä deltamaksliitti; pitkä deltaminliitti; pitkä deltameanliitti; pitkä lforate; pitkä tasaus; pitkä alku; pitkä tavoite; kelluva phactor; pitkä tavoiteaika; pitkä aloitusaika; pitkä esitysaika; void newtarget (mitätön); pitkä tavoite (mitätön); julkinen: kynttilä (pitkä matto, pitkä mit, long mal, long mil, long mel, long eo); pitkä taso (mitätön); mitätön initlfo (pitkä deltamat, pitkä deltamiitti, pitkä deltamaali, pitkä deltamiili, pitkä deltameani, pitkä korko); void setlfo (mitätön); }; kynttilä:: kynttilä (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 () palauttaa kynttilän valotason juuri nyt. * Toiminto määrittelee uuden satunnaisen valotason ja * ajan, joka kuluu tämän tason saavuttamiseen. Muutos ei ole lineaarinen, vaan seuraa sigmoidikäyrää. Kun uuden * tason määrittäminen ei ole aika, toiminto palauttaa valon tason. */ pitkä kynttilä:: levelnow (void) {pitkä apu, nyt; uimuri t1, t2; nyt = millis (); if (nyt> = tavoiteaika) {help = target; newtarget (); palautusapu; } else {// help = target * (millis () - aloitusaika) / deltatime + start * (tavoiteaika - millis ()) / deltatime; t1 = kelluva (tavoiteaika - nyt) / deltatime; t2 = 1. - t1; // Tämä on sigmoidien laskentaohje = t1*t1*t1*start + t1*t1*t2*start*3 + t1*t2*t2*target*3 + t2*t2*t2*target; palautusapu; }} mitätön kynttilä:: newtarget (mitätön) {pitkä summa; summa = 0; (pitkä i = 0; i <tasapainotus; i ++) summa+= onetarget (); alku = tavoite; tavoite = summa / tasaus; aloitusaika = millis (); tavoiteaika = aloitusaika + satunnainen (mintimeime, maxtime); deltatime = targettime - aloitusaika; } pitkä kynttilä:: onetarget (void) {if (random (0, 10) lastcheck + 100) {lastcheck = now; / * * Alkuperäinen vilkkuva "koron millisekuntien jälkeen": * Aloita tarkistaminen nopeuden jälkeen / 2 millisekuntia * * Nopeuden / 2 millisekunnin aikana * tee * 50 %: n mahdollisuus välkkymiseen. * Jos nopeus on 10000 ms, kolikkoa käännetään 5000 ms: n aikana 50 kertaa. * 1/50 = 0,02 * Jos satunnainen (10000) aloitusaika + nopeus / 2) {jos (satunnainen (nopeus) tavoiteaika) palauttaa lowlite; return (aloita - lowlite) * (tavoiteaika - nyt) / (tavoiteaika - aloitusaika) + lowlite; } void twinkler:: twink (void) {starttime = millis (); tavoiteaika = satunnainen (mintimeime, maxtime) + aloitusaika; alku = satunnainen (minliitti, maxliitti); } void setup () {int led; // Lue maagisen tilan muuttuja, jonka pitäisi kertoa // mikä valo -ohjelma ajettiin viimeksi, lisää sitä // ja nollaa, jos ylivuoto. tila ++; tila %= 9; // Tämä huolehtii arvosta riippumatta // oli ensimmäinen kerta, kun Arduino // suoritti tämän ohjelman. / * * TÄRKEÄ HUOMAUTUS * ============== * * Tämän ohjelman tärkein tehtävä on lähettää PWM * -signaaleja LED -valoihin. Tässä asetan nastat 3 - 9 * -tilaan. Arduino Mega2560 -laitteessa nämä nastat antavat * hienosti PWM -signaaleja. Jos sinulla on toinen Arduino, tarkista *, mitä nastoja (ja kuinka monta) voit käyttää. Voit aina * kirjoittaa koodin uudelleen käyttääksesi PWM -ohjelmistoa, jos Arduino * ei pysty tarjoamaan tarpeeksi laitteistopohjaisia PWM -nastoja. * */ pinMode (3, LÄHTÖ); pinMode (4, LÄHTÖ); pinMode (5, LÄHTÖ); pinMode (6, LÄHTÖ); pinMode (7, LÄHTÖ); pinMode (8, LÄHTÖ); pinMode (9, LÄHTÖ); pinMode (LED_BUILTIN, OUTPUT); analogWrite (LED_BUILTIN, 0); // Sammuta vain ärsyttävä punainen ledi Arduino -kynttilän *tölkistä [7]; // valmistaudu käyttämään välkkiviä kynttilöitä riippumatta siitä, käytätkö niitä vai ei twinkler *twink [7]; // valmistaudu käyttämään tuikkivia kynttilöitä… if (tila == 8) {for (int i = 3; i <10; i ++) analogWrite (i, 255); kun taas (totta); // Joka kerta kun tämä ohjelma suoritetaan, se menee // tällaiseen loputtomaan silmukkaan, kunnes reset // -painiketta painetaan. } if (tila <2) // välkkyvä {pitkä maxtime_; pitkä minttu_; pitkä maxlite_; pitkä minlite_; pitkä keskimääräinen_; pitkä parillinen_; jos (tila == 0) {maxtime_ = 250; mintime_ 50; maxlite_ = 256; minlite_ = 0; keskimääräinen_luku_ = 128; parillinen_ = 1; } jos (tila == 1) {maxtime_ = 400; mintime_ 150; maxlite_ = 256; minlite_ = 100; keskimäärin_ = 200; parillinen_ = 1; } for (int i = 0; i <7; i ++) {can = uusi kynttilä (maxime_, mintime_, maxlite_, minlite_, meanlite_, even_); } while (true) // Loputon silmukka välkkyville kynttilöille {for (int i = 0; i levelnow ()); }} if (tila <4) // lfo lisätään välkkyvään {if (tila == 2) // sama lfo (30 s) kaikille kynttilöille {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 30000);}} if (tila == 3) // vaihtelevat lfo: s kynttilöille {for (int i = 0; i initlfo (75, 50, 0, 50, 36, 20000); voi [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); voi [4]-> initlfo (75, 40, 0, 50, 36, 40000); voi [5]-> initlfo (75, 30, 0, 50, 26, 45000); voi [6]-> initlfo (75, 20, 0, 50, 16, 50000); voi [7]-> initlfo (75, 10, 0, 50, 6, 55000);} kun (true) // Loputon silmukka välkkyville kynttilöille, joissa on lfo {pitkä viimeinen kello = 0; for (int i = 0; i levelnow ()); if (millis ()> viimeinen kello + 4000) {lastclock = millis (); for (int i = 0; i setlfo ();}}} if (tila <6) // vilkkuvat kynttilät {int speedo; jos (tila == 4) speedo = 6000; else speedo = 22000; for (int i = 0; i <7; i ++) twink = uusi twinkler (300, 295, 255, 250, speedo); while (true) {for (int i = 0; i levelnow ()); }} // Aallot. // Tämä osio alkaa hakasulkeilla vain // varmistaakseen, että muuttujien nimiä ei ole ristiriidassa. // Ei muuta tarvetta hakasulkeille, ei tarvetta tarkistaa // tilan arvoa.{int loliitti = 2; int hilite = 255; int tarkoittaa; int ampl; float fasedelta = 2,5; kelluva fase; int pitkä; kelluva phactor; pitkä aika; keskiarvo = (loliitti + hiliitti) / 2; ampl = hilite - keskiarvo; jos (tila == 6) jakso = 1500; muu ajanjakso = 3500; phactor = 6.28318530718 / jakso; kun taas (tosi) {fase = phactor * (millis () % jakso); elong = keskiarvo + ampl * sin (fase); analogWrite (7, pitkä); analogWrite (9, pitkä); fase = factor * ((millis () + jakso / 4) % jakso); elong = keskiarvo + ampl * sin (fase); analogWrite (3, pitkä); analogWrite (8, pitkä); fase = factor * ((millis () + jakso / 2) % jakso); elong = keskiarvo + ampl * sin (fase); analogWrite (4, pitkä); analogWrite (5, pitkä); fase = factor * ((millis () + 3 * jakso / 4) % jakso); elong = keskiarvo + ampl * sin (fase); analogWrite (6, pitkä); } // Kun kytkin kynttiläjohdot Arduinoon, // sekoitin ne, enkä koskaan saanut niitä järjestykseen. // Järjestys on tärkeä aaltokuvioiden luomisessa, // joten kirjoitin juuri tämän pienen taulukon minulle: // // Kynttilä# sillassa: 2 3 5 4 7 6 1 // Data pin Arduinossa: 3 4 5 6 7 8 9}} void loop () {// Koska jokainen valo -ohjelma on oma ääretön silmukka, // kirjoitin kaikki silmukat aloitus () -osioon // enkä jättänyt tälle silmukalle () osiolle mitään. }
Vaihe 6: Tietoja PWM: stä
LEDit loistavat kirkkaina, kun niitä käytetään 3 V. LED -valot eivät haalistu hienosti häipyvän jännitteen mukana, kuten hehkulamput. Sen sijaan ne on kytkettävä päälle täydellä jännitteellä ja sitten kytkettävä pois päältä. Kun tämä tapahtuu 50 kertaa sekunnissa, ne loistavat kauniisti 50 % kirkkaudella, enemmän tai vähemmän. Jos niiden sallitaan olla vain 5 ms ja pois 15 ms, ne saattavat loistaa 25 %: n kirkkaudella. Tämä tekniikka tekee LED -valosta himmennettävän. Tätä tekniikkaa kutsutaan pulssileveysmodulaatioksi tai PWM: ksi. Arduinon kaltaisessa mikrokontrollerissa on yleensä datanastat, jotka voivat lähettää päälle/pois -signaaleja. Jotkut datanastat ovat valmiita PWM -toimintoja varten. Mutta jos sisäänrakennetulla PWM: llä ei ole tarpeeksi nastoja, on yleensä mahdollista käyttää omia ohjelmointikirjastoja "ohjelmistopohjaisten PWM -nastojen" luomiseen.
Projektissani olen käyttänyt Arduino Mega2560 -laitetta, jonka nastoilla 3 - 9 on laitteisto -PWM. Jos käytät Arduino UNO: ta, sinulla on vain kuusi PWM -nastaa. Siinä tapauksessa, jos tarvitset seitsemännen (tai jopa enemmän) kynttilän, voin suositella Brett Hagmanin ohjelmiston PWM -kirjastoa, jonka löydät täältä.
Suositeltava:
Piirilevyn vilkkuva puun koristelu: 5 vaihetta (kuvilla)
Piirilevyn vilkkuva puun koristelu: Tässä opetusohjelmassa opit tekemään tehokkaasti elektroniikkaprojektin. Esimerkkinä teen piirilevyn, jossa vilkkuvat valot alusta loppuun. Kaikki elektroniikka toimii itse ilman koodausta. Sinun tarvitsee vain kytkeä
DIY -sarja Tuulimyllyn muotoinen punainen LED -vilkkuva valo: 6 vaihetta (kuvilla)
DIY -paketti Tuulimyllyn muotoinen punainen LED -vilkkuva valo: Kuvaus: Tämä on DIY MCU -suunnitteluohjelma, joka opettaa elektroniset tuulimyllypaketit juotoskäyttöön. Sarjan komponenttien merkintä oli
Hakkeroitu !: Vilkkuva hehkulamppu Halloweenille: 5 vaihetta (kuvilla)
Hakkeroitu !: Vilkkuva hehkulamppu Halloweenille: On aika pelotella ystäviäsi. Tässä projektissa näytän sinulle kuinka " hakkeroin " tavallinen led -lamppu. Näin se välkkyy kuin valot jokaisessa kauhuelokuvassa, kun jotain pahaa tapahtuu. Se on melko yksinkertainen rakenne, jos
Vilkkuva vilkkuva merkkivalo: 4 vaihetta
Valoaktivoidut vilkkuvat merkkivalot: Tässä ohjeessa näytän sinulle, kuinka koota vilkkuva LED -piiri, joka syttyy, kun heilutat kättäsi sen yli, vilkkuu sekunnin tai kaksi ja sammuu sitten. Sain vilkkuvan piirin kaavion steven123654: n ohjeesta
Vilkkuva/häipyvä/vilkkuva LED 555 -ajastimella: 7 vaihetta
Vilkkuva/häipyvä/vilkkuva LED -valo 555 -ajastimella: Tämä pieni piiri on yksinkertainen tapa tehdä häipyvä led ilman ohjelmointia siruja tai koodia. Vain muutama yksinkertainen komponentti ja olet valmis haalistumaan koko päivän. Lopputulos on jatkuva häipyminen ja häipyminen aivan kuten Mac valmiustilassa. Yrittää