Kazalo:

Programabilna LED: 6 korakov (s slikami)
Programabilna LED: 6 korakov (s slikami)

Video: Programabilna LED: 6 korakov (s slikami)

Video: Programabilna LED: 6 korakov (s slikami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Julij
Anonim
Programabilna LED
Programabilna LED

Navdihnjen z različnimi LED Throwies, utripajočimi LED in podobnimi navodili sem želel narediti svojo različico LED, ki jo nadzira mikrokrmilnik. Ideja je, da se utripajoče zaporedje LED ponovno programira. To reprogramiranje lahko izvedemo s svetlobo in senco, npr. lahko uporabite svetilko. To je moj prvi pouk, kakršni koli komentarji ali popravki so dobrodošli. Posodobitev 2008-08-12: Zdaj je v trgovini Tinker Store na voljo komplet. Tukaj je video posnetek njegovega ponovnega programiranja. Oprostite za kakovost.

1. korak: Kako deluje

Kot izhod se uporablja LED. Kot vhod sem uporabil LDR, od svetlobe odvisen upor. Ta LDR spremeni svoj upor, ko prejme več ali manj svetlobe. Upor se nato uporablja kot analogni vhod mikroprocesorja ADC (analogni digitalni pretvornik).

Krmilnik ima dva načina delovanja, enega za snemanje zaporedja, drugega za predvajanje posnetega zaporedja. Ko regulator v pol sekunde opazi dve spremembi svetlosti (temno, svetlo, temno ali obratno), se preklopi v način snemanja. V načinu ponovnega snemanja se vhod LDR izmeri večkrat na sekundo in se shrani na čip. Če je pomnilnika izčrpan, se krmilnik vrne v način predvajanja in začne predvajati posneto zaporedje. Ker je pomnilnik tega drobnega krmilnika zelo omejen, 64 bajtov (ja, bajtov!), Lahko krmilnik posname 400 bitov. To je dovolj prostora za 10 sekund s 40 vzorci na sekundo.

2. korak: Materiali in orodja

Materiali in orodja
Materiali in orodja
Materiali in orodja
Materiali in orodja

Materiali- 2 x 1K upor- 1 x LDR (od svetlobe odvisen upor), npr. M9960- 1 x Nizkonapetostna LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB bliskovnega pomnilnika, 64 bajtov RAM, 64 bajtov EEPROM, [email protected] 1 x CR2032, 3V, 220mAh Orodja- spajkalnik - spajkalna žica- matična plošča- AVR programer- 5V napajalnik- multimeter Programska oprema- Eclipse- CDT vtičnik- WinAVR Stroški brez orodja morajo biti na splošno pod 5 USD. Uporabil sem ATtiny13v, ker lahko ta različica te družine krmilnikov deluje pri 1,8 V. To omogoča delovanje vezja z zelo majhno baterijo. Da bi deloval zelo dolgo, sem se odločil za uporabo nizkotokovne LED, ki doseže polno svetlost že pri 2 ma.

3. korak: Sheme

Sheme
Sheme

Nekaj pripomb na shemo. Vhod za ponastavitev ni povezan. To ni najboljša praksa. Bolje bi bilo, če bi za dvig uporabili 10K upor. Ampak brezhibno deluje zame in prihrani upor. Da bi bilo vezje čim bolj preprosto, sem uporabil notranji oscilator. To pomeni, da prihranimo kristal in dva majhna kondenzatorja. Notranji oscilator omogoča, da krmilnik deluje pri 1,2 MHz, kar je za naše potrebe več kot dovolj hitrosti. Če se odločite za drugo napajanje od 5V ali za uporabo drugih LED, morate izračunati upor R1. Formula je: R = (Napajanje V - LED V) / 0,002A = 1650 Ohm (Napajanje = 5 V, LED V = 1,7 V). Z uporabo dveh LED z nizkim tokom namesto ene je formula videti tako: R = (Napajanje V - 2 * LED V) / 0,002A = 800 Ohm. Prosimo, upoštevajte, da morate prilagoditi izračun, če izberete drugo vrsto LED. Vrednost upora R2 je odvisna od uporabljenega LDR. 1KOhm mi deluje. Za iskanje najboljše vrednosti boste morda želeli uporabiti potenciometer. Cicuit bi moral biti sposoben zaznati spremembe svetlobe pri normalni dnevni svetlobi. Za varčevanje z energijo je PB3 nastavljen na visoko le, če se opravi meritev. Posodobitev: shema je bila zavajajoča. Spodaj je pravilna različica. Hvala, dave_chatting.

4. korak: Sestavite na prototipni plošči

Sestavite na prototipni plošči
Sestavite na prototipni plošči
Sestavite na prototipni plošči
Sestavite na prototipni plošči

Če želite preizkusiti svoje vezje, je ploščica zelo priročna. Vse dele lahko sestavite, ne da bi morali kaj spajkati.

5. korak: Programirajte vezje

Programirajte vezje
Programirajte vezje
Programirajte vezje
Programirajte vezje

Krmilnik lahko programirate v različnih jezikih. Najbolj uporabljeni so Assembler, Basic in C. Uporabil sem C, ker najbolje ustreza mojim potrebam. Pred desetimi leti sem bil vajen C -ja in sem lahko oživil nekaj znanja (no, le nekaj…). Za pisanje programa priporočam Eclipse z vtičnikom CDT. Pridobite eclipse tukaj https://www.eclipse.org/ in vtičnik tukaj https://www.eclipse.org/cdt/. Za sestavljanje jezika C v mikrokontrolerje AVR boste potrebovali navzkrižni prevajalnik. Na našo srečo obstaja pristanišče znane GCC. Imenuje se WinAVR in ga najdete tukaj https://winavr.sourceforge.net/. Zelo dobra vadnica o programiranju krmilnikov AVR z WinAVR je tukaj https://www.mikrocontroller.net/articles/AVR-GCC- Vadnica. Žal je v nemščini, če pa jih iščete, lahko najdete na tisoče strani z vajami na to temo v vašem jeziku. Po zbiranju vira morate šestnajstiško datoteko prenesti v krmilnik. To lahko storite tako, da računalnik povežete z vezjem prek ponudnika internetnih storitev (v sistemskem programerju) ali z uporabo namenskih programerjev. Uporabil sem namenskega programerja, saj olajša vezje, saj prihrani nekaj žic in vtiča. Pomanjkljivost je, da morate krmilnik zamenjati med vezjem in programerjem vsakič, ko želite posodobiti programsko opremo. Moj programer prihaja z https://www.myavr.de/ in uporablja USB za povezavo z mojim prenosnikom. V okolici je še veliko drugih, ki jih lahko celo zgradite sami. Za sam prenos sem uporabil program z imenom avrdude, ki je del distribucije WinAVR. Primer ukazne vrstice je lahko videti tako:

avrdude -F -p t13 -c avr910 -P com4 -U bliskavica: w: flickled.hex: iV priponki boste morda dobili vir in prevedeno šestnajstiško datoteko.

Korak 6: Spajkanje

Spajkanje
Spajkanje

Če vaše vezje deluje na plošči, ga lahko spajkate.

To lahko storite na tiskanem vezju (tiskana plošča), na prototipni plošči ali celo brez plošče. Odločil sem se, da bom to storil brez, saj je vezje sestavljeno le iz nekaj komponent. Če spajkanja ne poznate, vam priporočam, da najprej poiščete vadbo za spajkanje. Moje sposobnosti spajkanja so nekoliko zarjavele, vendar mislim, da razumete. Upam, da ste uživali. Alex

Priporočena: