Tartalomjegyzék:
- 1. lépés: Impulzusszélesség -moduláció a szoftverben
- 2. lépés: A hardver és a szükséges összetevők
- 3. lépés: A fennmaradó szoftver és eredmény
Videó: Több elektronikus gyertya: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Elektronikus gyertyákat sokszor tettek közzé az Instructables -en, akkor miért pont ezt?
Itthon vannak ezek a kis félig átlátszó karácsonyi házak, amelyek LED-es betekintéssel és kis akkumulátorral rendelkeznek. Néhány házban gyertyahatású LED -ek vannak, néhányban pedig csak világítanak. A kis elemek viszonylag gyorsan lemerülnek, és mivel minden házban gyertyahatást akartam elérni, úgy döntöttem, hogy PIC -projektet készítek. Természetesen Arduino projektré is alakíthatja.
Tehát mitől különleges ez az elektronikus gyertya? A PIC és az Arduino mindegyikében megtalálható a Pulse Width Modulation (PWM) hardver, amellyel gyertyahatást lehet létrehozni egy LED segítségével, de az én esetemben 5 független elektronikus gyertyát szerettem volna egy vezérlővel használni, de ez nincs jelen, legalábbis nem hogy tudom. Az általam használt megoldás az volt, hogy ezt az öt független PWM jelet teljesen szoftverben állítsam elő.
1. lépés: Impulzusszélesség -moduláció a szoftverben
Az impulzusszélesség -modulációt többször leírták, pl. ebben az Arduino cikkben:
A PIC és az Arduino speciális PWM hardverekkel rendelkezik, amelyek megkönnyítik a PWM jel előállítását. Ha egy vagy több PWM jelet akarunk létrehozni a szoftverben, két időzítőre van szükségünk:
- Egy időzítő a PWM frekvencia előállítására
- Egy időzítő, amellyel a PWM munkaciklus generálható
Mindkét időzítő generál és megszakít, amikor befejeződött, és így a PWM jel kezelése teljesen megszakított hajtással történik. A PWM frekvenciához a PIC 0. időzítőjét használom, és hagyom, hogy túlcsorduljon. 8 MHz -es belső oszcillátorórával és 64 előre beállított skálával a képlet a következő: Fosc / 4 /256 /64 = 2.000.000 / 256 /64 = 122 Hz vagy 8, 2 ms. A frekvenciának elég magasnak kell lennie ahhoz, hogy az emberi szem ne tudja észlelni. Ehhez elegendő a 122 Hz -es frekvencia. Az időzítő megszakítási rutin egyetlen dolga, hogy lemásolja az új PWM ciklus működési ciklusát, és bekapcsolja az összes LED -et. Ezt mind az 5 LED -re függetlenül teszi.
A PWM munkaciklus kezelésére alkalmas időzítő értéke attól függ, hogyan végezzük el a gyertyahatást. Megközelítésemben ezt a hatást úgy szimulálom, hogy a működési ciklust 3 értékkel megnövelem a LED fényerejének növeléséhez, és 25 értékkel csökkentem a LED fényerejének csökkentéséhez. Ily módon gyertyaszerű hatást kap. Mivel minimum 3 értéket használok, a teljes munkaciklus egy bájttal történő vezérlésének lépései 255 /3 = 85. Ez azt jelenti, hogy a PWM munkaciklus -időzítőnek 85 -ször nagyobb gyakorisággal kell futnia, mint a PWM frekvencia időzítő, amely 85 * 122 = 10,370 Hz.
A PWM munkaciklushoz a PIC 2. időzítőjét használom. Ez egy időzítő automatikus újratöltéssel, és a következő képletet használja: Period = (Reload + 1) * 4 * Tosc * Timer2 prescale value. 191 újratöltéssel és 1 előskálával (191 + 1) * 4 * 1/8.000.000 * 1 = 96 us vagy 10.416 Hz periódust kapunk. A PWM munkaciklus megszakítja a rutinellenőrzést, ha a munkaciklus elmúlt, és kikapcsolja a LED -et, amelynél a munkaciklus befejeződött. Ha a munkaciklus nem teljesül, akkor a munkaciklus -számlálót 3 -mal csökkenti, és véget vet a rutinnak. Ezt minden LED -re függetlenül teszi. Az én esetemben ez a megszakítási rutin körülbelül 25 munkanapot vesz igénybe, és mivel ezt minden 96 -nak hívják, már a CPU 26% -át használják a PWM munkaciklus kezelésére a szoftverekben.
2. lépés: A hardver és a szükséges összetevők
A vázlatos diagram a végeredményt mutatja. Bár önállóan csak 5 LED -et irányítok, hozzáadtam egy 6. LED -et, amely együtt működik az 5 másik LED egyikével. Mivel a PIC nem tud két LED -et meghajtani egy porttűre, hozzáadtam egy tranzisztorot. Az elektronikát egy 6 voltos / 100 mA -es egyenáramú adapter táplálja, és egy alacsony cseppfeszültség -szabályozó segítségével stabil 5 V -ot állít elő.
A projekthez a következő összetevőkre van szüksége:
- 1 PIC mikrokontroller 12F615
- 2 kerámia kondenzátor: 2 * 100nF
- Ellenállások: 1 * 33k, 6 * 120 Ohm, 1 * 4k7
- 6 Narancssárga vagy sárga LED, nagy fényerő
- 1 BC557 tranzisztor vagy azzal egyenértékű
- 1 elektrolit kondenzátor 100 uF / 16 V
- 1 kis esésű feszültségszabályozó LP2950Z
Az áramkört kenyérsütő táblára építheti, és nem igényel sok helyet, amint az a képen is látható.
3. lépés: A fennmaradó szoftver és eredmény
A szoftver fennmaradó része a fő hurok. A fő hurok a működési ciklus véletlenszerű beállításával növeli vagy csökkenti a LED -ek fényerejét. Mivel csak 3 -as értékkel növekszünk, és 25 -tel csökkenünk, gondoskodnunk kell arról, hogy a csökkenések ne történjenek olyan gyakran, mint a növekmények.
Mivel nem használtam semmilyen könyvtárat, egy véletlenszerű generátort kellett készítenem egy lineáris visszacsatolási eltolásregiszter segítségével, lásd:
en.wikipedia.org/wiki/Linear-feedback_shif…
A gyertyahatást befolyásolja az, hogy milyen gyorsan változik a PWM üzemciklus, így a főhurok körülbelül 10 ms késleltetést használ. Ezt az időt úgy állíthatja be, hogy a gyertyahatást igényei szerint módosítsa.
A mellékelt videó bemutatja a végeredményt, ahol a LED fölött sapkát használtam a hatás javítására.
A JAL programozási nyelvet használtam ehhez a projekthez, és csatoltam a forrásfájlt.
Jó szórakozást, hogy ezt az utasítást, és várja a reakciókat és eredményeket.
Ajánlott:
LED gyertya papírlámpákhoz: 3 lépés
LED -es gyertya papírlámpákhoz: Ez a projekt bemutatja, hogyan lehet reális kinézetű gyertyahatást létrehozni, például papírlámpákban. NodeMCU kártyát (ESP8266) használ a NeoPixels, más néven WS2812 LED -ek meghajtására. Tekintse meg az eredmények rovatában található videókat összehasonlításhoz
Gyertyával működő elektromos gyertya: 8 lépés (képekkel)
Gyertyaüzemű elektromos gyertya: Miután megláttam a Sandy hurrikánról szóló híreket, és hallottam a megpróbáltatásokat, amelyeken New Yorkban és New Jersey-ben minden családom és barátom keresztülment, elgondolkodtam a saját vészhelyzeti készültségemen. Végül is San Francisco nagyon sok helyen ül
Egyszerű LED színváltó "gyertya": 5 lépés (képekkel)
Egyszerű LED színváltó "gyertya": Ez egy egyszerű színváltó lámpa, amely nagyszerű gyerekeknek és felnőtteknek. Gyönyörűen néz ki egy gyengén megvilágított szobában, kiváló az ünnepekre, és nagyon hűvös éjszakai fényt ad
Több saláta termesztése kevesebb helyen, vagy Saláta termesztése az űrben, (több vagy kevesebb): 10 lépés
Több saláta termesztése kevesebb helyen, vagy … Saláta termesztése az űrben, (több vagy kevesebb) .: Ez egy professzionális benyújtás a Growing Beyond Earth, Maker Contest pályázathoz, amelyet az Instructables -en keresztül nyújtottak be. Nem izgathatnám jobban, hogy űrnövénytermesztésre tervezek, és közzéteszem az első Instructable -t. Kezdésként a verseny arra kért minket, hogy
Több mint 4 motor használata - Több motorpajzs egymásra rakása: 3 lépés
Több mint 4 motor használata - Több motorpajzs egymásra rakása: Utasítható vibrotactile szenzoros helyettesítő és növelő eszköz (https: //www.instructables.com/id/Vibrotactile-Sens …) bemutatja az érzékelést lefordító eszköz felépítésének módját bemenet a vibrációs ingerekbe. Ezek a vibrációs ingerek