Innehållsförteckning:

Programmerbar LED: 6 steg (med bilder)
Programmerbar LED: 6 steg (med bilder)

Video: Programmerbar LED: 6 steg (med bilder)

Video: Programmerbar LED: 6 steg (med bilder)
Video: Возведение перегородок санузла из блоков. Все этапы. #4 2024, Juli
Anonim
Programmerbar LED
Programmerbar LED

Inspirerad av olika LED -kast, blinkande lysdioder och liknande instruktioner ville jag göra min version av en LED som styrs av en mikrokontroller. Tanken är att göra LED -blinkande sekvens omprogrammerbar. Denna omprogrammering kan göras med ljus och skugga, t.ex. du kan använda din ficklampa. Detta är min första instruktion, alla kommentarer eller korrigeringar är välkomna. Uppdatering 2008-08-12: Det finns nu ett kit tillgängligt i Tinker Store. Här är en video om omprogrammering. Ursäkta kvaliteten.

Steg 1: Hur det fungerar

En LED används som utgång. Som ingång använde jag en LDR, ett ljusberoende motstånd. Denna LDR ändrar sitt motstånd när den tar emot mer eller mindre ljus. Motståndet används sedan som analog ingång till mikroprocessorerna ADC (analog digital omvandlare).

Styrenheten har två driftsätt, ett för inspelning av en sekvens, det andra för uppspelning av den inspelade sekvensen. När styrenheten märker två förändringar av ljusstyrkan inom en halv sekund, (mörk, ljus, mörk eller tvärtom), växlar den till inspelningsläge. I omkodningsläge mäts ingången till LDR flera gånger i sekunden och lagras på chipet. Om minnet är slut går kontrollen tillbaka till uppspelningsläge och börjar spela den inspelade sekvensen. Eftersom minnet på denna lilla styrenhet är mycket begränsat, 64 byte (ja, byte!), Kan styrenheten spela in 400 bitar. Det är tillräckligt med utrymme i 10 sekunder med 40 prover per sekund.

Steg 2: Material och verktyg

Material och verktyg
Material och verktyg
Material och verktyg
Material och verktyg

Material- 2 x 1K motstånd- 1 x LDR (ljusberoende motstånd), t.ex. M9960- 1 x LED med låg ström, 1,7V, 2ma- 1 x Atmel ATtiny13v, 1KB flashminne, 64 Bytes RAM, 64 Bytes EEPROM, 0-4MHz@1,8-5,5V- 1 x CR2032, 3V, 220mAh Verktyg- lödkolv - lödtråd- brödbräda- AVR programmerare- 5V strömförsörjning- multimeterSoftware- Eclipse- CDT plugin- WinAVRCosts totalt sett bör vara under 5 $ utan verktyg. Jag använde ATtiny13v eftersom den här versionen av denna kontrollfamilj kan köras på 1,8V. Det gör det möjligt att köra kretsen med ett mycket litet batteri. För att få det att köra mycket länge bestämde jag mig för att använda en lågström -LED som når full ljusstyrka redan vid 2ma.

Steg 3: Scheman

Scheman
Scheman

Några kommentarer om schemat. Återställningsingången är inte ansluten. Detta är inte bästa praxis. Bättre vore att använda ett 10K -motstånd som uppdrag. Men det fungerar bra för mig utan och det sparar ett motstånd. För att hålla kretsen så enkel som möjligt använde jag den interna oscillatorn. Det betyder att vi sparar en kristall och två små kondensatorer. Den interna oscillatorn låter regulatorn köra på 1,2 MHz vilket är mer än tillräckligt med hastighet för vårt ändamål. Om du bestämmer dig för att använda en annan strömförsörjning än 5V eller för att använda en annan lysdiod måste du beräkna motståndet R1. Formeln är: R = (Strömförsörjning V - LED V) / 0,002A = 1650 ohm (Strömförsörjning = 5V, LED V = 1,7V). Med två lysdioder med låg ström istället för en ser formeln ut så här: R = (Strömförsörjning V - 2 * LED V) / 0,002A = 800 Ohm. Observera att du måste justera beräkningen om du väljer en annan typ av LED. Värdet på motståndet R2 beror på den använda LDR. 1KOhm fungerar för mig. Du kanske vill använda en potentiometer för att hitta det bästa värdet. Ciketten ska kunna upptäcka ljusförändringar i normalt dagsljus. För att spara ström är PB3 bara inställd på hög om en mätning görs. Uppdatering: schemat är vilseledande. Nedan finns en korrekt version. Tack, dave_chatting.

Steg 4: Montera på en prototypbräda

Montera på en prototypbräda
Montera på en prototypbräda
Montera på en prototypbräda
Montera på en prototypbräda

Om du gillar att testa din krets är en brödbräda väldigt praktisk. Du kan montera alla delar utan att behöva lödda något.

Steg 5: Programmera kretsen

Programmera kretsen
Programmera kretsen
Programmera kretsen
Programmera kretsen

Styrenheten kan programmeras på olika språk. Mest använda är Assembler, Basic och C. Jag använde C eftersom det matchar mina behov bäst. Jag var van vid C för tio år sedan och kunde återuppliva en del av kunskapen (ja, bara en del …). För att skriva ditt program rekommenderar jag Eclipse med CDT -plugin. Få eclipse här https://www.eclipse.org/ och plugin -programmet här https://www.eclipse.org/cdt/. För att kompilera C -språk till AVR -mikrokontroller behöver du en cross -compiler. Tur som vi har, det finns en hamn i den berömda GCC. Den heter WinAVR och finns här https://winavr.sourceforge.net/. En mycket bra handledning om hur man programmerar AVR-styrenheter med WinAVR finns här https://www.mikrocontroller.net/articles/AVR-GCC- Handledning. Tyvärr är det på tyska men du kan hitta tusentals självstudiesidor om ämnet på ditt språk om du söker efter dem. Efter att ha sammanställt din källa måste du överföra hex -filen till handkontrollen. Det kan göras genom att ansluta din dator till kretsen med hjälp av ISP (i systemprogrammerare) eller med dedikerade programmerare. Jag använde en dedikerad programmerare eftersom det gör kretsen lite enklare genom att spara några ledningar och en kontakt. Nackdelen är att du måste byta regulatorn mellan kretsen och programmeraren varje gång du vill uppdatera din programvara. Min programmerare kommer från https://www.myavr.de/ och använder USB för att ansluta till min bärbara dator. Det finns många andra runt och du kan till och med bygga det själv. För själva överföringen använde jag ett program som heter avrdude som är en del av WinAVR -distributionen. En kommandorad kan se ut så här:

avrdude -F -p t13 -c avr910 -P com4 -U blixt: w: flickled.hex: iBifogad kan du få källan och den sammanställda hex -filen.

Steg 6: Lödning

Lödning
Lödning

Om din krets fungerar på brödbrädan kan du lödda den.

Detta kan göras på ett kretskort (tryckt kretskort), på ett prototypkort eller till och med utan ett kort. Jag bestämde mig för att göra det utan kretsen består bara av några komponenter. Om du inte är bekant med lödning rekommenderar jag att du först söker efter en lödningshandledning. Mina lödkunskaper är lite rostiga men jag tror att du förstår. Jag hoppas att du tyckte om det. Alex

Rekommenderad: