Innehållsförteckning:
- Steg 1: Hur det fungerar
- Steg 2: Material och verktyg
- Steg 3: Scheman
- Steg 4: Montera på en prototypbräda
- Steg 5: Programmera kretsen
- Steg 6: Lödning
Video: Programmerbar LED: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
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- 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
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
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
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
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:
Helt upplyst - Programmerbar RGB LED -akrylskylt: 3 steg (med bilder)
Helt upplyst - Programmerbar RGB LED -akrylskylt: Har lekt med laserskäraren/graveraren och blev verkligen förälskad i att gravera in för att rensa akryl och lysa en ljuskälla från kanten. Tjockleken på den akryl som används är a.25 " ark, som skär riktigt rent av l
Programmerbar RGB LED -sequencer (med Arduino och Adafruit Trellis): 7 steg (med bilder)
Programmerbar RGB LED -sequencer (med Arduino och Adafruit Trellis): Mina söner ville att färg -LED -remsor skulle lysa upp deras skrivbord, och jag ville inte använda en konserverad RGB -stripkontroll, eftersom jag visste att de skulle bli uttråkad av de fasta mönstren dessa kontroller har. Jag trodde också att det skulle vara ett utmärkt tillfälle att skapa
Programmerbar klocka med fyrteckenvisning: 5 steg (med bilder)
Programmerbar klocka med display med fyra tecken: Du kommer att prata om staden när du bär detta vidriga, överdimensionerade, helt opraktiska armbandsur. Visa ditt favorit foul -språk, sångtexter, primtal, etc. Inspirerad av Microreader -satsen bestämde jag mig för att göra en jätteklocka med
Buggy - en konstig programmerbar LED -varelse: 12 steg (med bilder)
Buggy - en skapande programmerbar LED -varelse: Buggy är ett programmerbart LED -hantverksprojekt som använder ett hemlagat, ensidigt kretskort och en programmerbar AVR Attiny44v mikrokontroller. Buggy har två tvåfärgade LED-ögon och kan känna av synligt och IR-ljus och avge ljud med en piezohögtalare. Inte
Programmerbar LED -fläkt "A Light Breeze": 5 steg (med bilder)
Programmerbar LED -fläkt "En lätt bris": Detta är ett ganska enkelt projekt för att göra en programmerbar LED -fläkt med programmerbara LED -remsor och en sparsam fläkt. Sammantaget tog det mig cirka 2 timmar att få allt fäst, lödt och testat. Men jag gör det här en bra bit, så det är