Turinys:

Programuojamas LED: 6 žingsniai (su paveikslėliais)
Programuojamas LED: 6 žingsniai (su paveikslėliais)

Video: Programuojamas LED: 6 žingsniai (su paveikslėliais)

Video: Programuojamas LED: 6 žingsniai (su paveikslėliais)
Video: 6 žingsniai, kaip įsirengti Iwagumi stiliaus akvariumą 2024, Liepa
Anonim
Programuojamas LED
Programuojamas LED

Įkvėptas įvairių šviesos diodų lempučių, mirksinčių šviesos diodų ir panašių nurodymų, norėjau sukurti savo LED valdomą mikrovaldiklio versiją. Idėja yra padaryti, kad LED mirksėjimo seka būtų perprogramuojama. Šį perprogramavimą galima atlikti naudojant šviesą ir šešėlį, pvz. galite naudoti savo žibintuvėlį. Tai mano pirmasis pamokomas dalykas, bet kokie komentarai ar pataisymai yra laukiami. Atsiprašau už kokybę.

1 žingsnis: kaip tai veikia

Šviesos diodas naudojamas kaip išėjimas. Kaip įvestį naudojau nuo šviesos priklausantį rezistorių LDR. Šis LDR keičia savo rezistorių, kai gauna daugiau ar mažiau šviesos. Tada rezistorius naudojamas kaip analoginis įėjimas į mikroprocesorius ADC (analoginis skaitmeninis keitiklis).

Valdiklis turi du veikimo režimus: vienas skirtas sekos įrašymui, kitas - įrašytos sekos atkūrimui. Kai valdiklis per pusę sekundės pastebi du ryškumo pokyčius (tamsus, ryškus, tamsus arba atvirkščiai), jis perjungia įrašymo režimą. Atkūrimo režimu LDR įvestis matuojama kelis kartus per sekundę ir saugoma luste. Jei atmintis išeikvota, valdiklis grįžta į atkūrimo režimą ir pradeda leisti įrašytą seką. Kadangi šio mažo valdiklio atmintis yra labai ribota, 64 baitai (taip, baitai!), Valdiklis gali įrašyti 400 bitų. Tai yra pakankamai vietos 10 sekundžių, kai imama 40 mėginių per sekundę.

2 žingsnis: medžiagos ir įrankiai

Medžiagos ir įrankiai
Medžiagos ir įrankiai
Medžiagos ir įrankiai
Medžiagos ir įrankiai

Medžiagos- 2 x 1K rezistorius- 1 x LDR (nuo šviesos priklausomas rezistorius), pvz. M9960- 1 x silpnos srovės šviesos diodas, 1,7 V, 2 mA- 1 x „Atmel ATtiny13v“, 1 KB „flash“RAM, 64 baitų RAM, 64 baitai EEPROM, [email protected] 1 x CR2032, 3V, 220mAh įrankiai- lituoklis - litavimo viela- duonos lenta- AVR programuotojas- 5 V maitinimo šaltinis- multimetras Programinė įranga- „Eclipse“- CDT papildinys- „WinAVR“Iš viso be įrankių išlaidos turėtų būti mažesnės nei 5 USD. Aš naudojau „ATtiny13v“, nes ši šios valdiklių šeimos versija gali veikti 1,8 V. Tai leidžia paleisti grandinę su labai maža baterija. Kad jis veiktų labai ilgai, nusprendžiau naudoti silpnos srovės šviesos diodą, kuris pasiekia visą ryškumą jau esant 2ma.

3 žingsnis: schemos

Schemos
Schemos

Kai kurios schemos pastabos. Atstatymo įvestis nėra prijungta. Tai nėra geriausia praktika. Geriau būtų naudoti 10K rezistorių. Bet man tai gerai veikia be ir taupo rezistorių. Kad grandinė būtų kuo paprastesnė, aš naudoju vidinį osciliatorių. Tai reiškia, kad taupome kristalą ir du mažus kondensatorius. Vidinis osciliatorius leidžia valdikliui veikti 1,2 MHz dažniu, o tai yra daugiau nei pakankamai mūsų tikslui. Jei nuspręsite naudoti kitą maitinimo šaltinį nei 5 V arba naudoti kitus šviesos diodus, turite apskaičiuoti rezistorių R1. Formulė yra tokia: R = (maitinimo šaltinis V - LED V) / 0,002A = 1650 omų (maitinimo šaltinis = 5V, šviesos diodas V = 1,7V). Naudojant ne vieną, o du mažos srovės šviesos diodus, formulė atrodo taip: R = (maitinimo šaltinis V - 2 * LED V) / 0,002A = 800 omų. Atminkite, kad pasirinkę kito tipo šviesos diodus turite koreguoti skaičiavimus. Rezistoriaus R2 vertė priklauso nuo naudojamo LDR. 1Kohm man tinka. Norėdami rasti geriausią vertę, galbūt norėsite naudoti potenciometrą. Cicuit turėtų sugebėti aptikti šviesos pokyčius įprastoje dienos šviesoje. Taupant energiją, PB3 yra nustatytas tik į aukštą, jei matuojama. Atnaujinimas: schema buvo klaidinanti. Žemiau yra teisinga versija. Ačiū, dave_chatting.

4 žingsnis: Surinkite ant prototipo lentos

Surinkite ant prototipo lentos
Surinkite ant prototipo lentos
Surinkite ant prototipo lentos
Surinkite ant prototipo lentos

Jei norite išbandyti savo grandinę, duonos lenta yra labai patogu. Galite surinkti visas dalis, nieko nelituodami.

5 žingsnis: užprogramuokite grandinę

Užprogramuokite grandinę
Užprogramuokite grandinę
Užprogramuokite grandinę
Užprogramuokite grandinę

Valdiklį galima užprogramuoti įvairiomis kalbomis. Dažniausiai naudojami „Assembler“, „Basic“ir C. Aš naudoju C, nes tai geriausiai atitinka mano poreikius. Prieš dešimt metų buvau pripratęs prie C ir galėjau atgaivinti kai kurias žinias (na, tik kai kurias …). Norėdami parašyti savo programą, rekomenduoju „Eclipse“su CDT papildiniu. Gaukite užtemimą čia https://www.eclipse.org/ ir papildinį čia https://www.eclipse.org/cdt/. Norėdami surinkti C kalbą į AVR mikrovaldiklius, jums reikės kryžminio kompiliatoriaus. Kaip mums pasisekė, yra garsiojo PĮBT uostas. Tai vadinama „WinAVR“ir ją rasite čia https://winavr.sourceforge.net/. Labai gera pamoka, kaip programuoti AVR valdiklius naudojant „WinAVR“, yra čia https://www.mikrocontroller.net/articles/AVR-GCC- Pamoka. Atsiprašome, tai vokiečių kalba, bet jūs galite rasti tūkstančius mokomųjų puslapių šia tema savo kalba, jei jų ieškosite. Surinkę šaltinį, turite perkelti šešioliktainį failą į valdiklį. Tai galima padaryti prijungus kompiuterį prie grandinės naudojant ISP (sistemos programuotojas) arba naudojant specialius programuotojus. Aš naudojau specialų programuotoją, nes tai šiek tiek palengvina grandinę, taupant kai kuriuos laidus ir kištuką. Trūkumas yra tas, kad kiekvieną kartą, kai norite atnaujinti programinę įrangą, turite pakeisti valdiklį tarp grandinės ir programuotojo. Mano programuotojas yra iš https://www.myavr.de/ ir naudoja USB jungtį prie mano nešiojamojo kompiuterio. Aplink yra daug kitų, ir jūs netgi galite tai sukurti patys. Perkėlimui naudojau programą pavadinimu avrdude, kuri yra „WinAVR“platinimo dalis. Komandinės eilutės pavyzdys gali atrodyti taip:

avrdude -F -p t13 -c avr910 -P com4 -U flash: w: flickled.hex: iPridėję galite gauti šaltinį ir sukompiliuotą šešioliktainį failą.

6 žingsnis: litavimas

Litavimas
Litavimas

Jei jūsų grandinė veikia ant duonos lentos, galite ją lituoti.

Tai galima padaryti ant PCB (spausdintos cicuit plokštės), ant prototipo plokštės arba net be plokštės. Aš nusprendžiau tai padaryti be, nes grandinę sudaro tik keli komponentai. Jei nesate susipažinę su litavimu, rekomenduoju pirmiausia ieškoti litavimo pamokos. Mano litavimo įgūdžiai yra šiek tiek aprūdiję, bet manau, kad supratote. Tikiuosi, kad patiko. Aleksas

Rekomenduojamas: