Inhoudsopgave:

Programmeerbare LED: 6 stappen (met afbeeldingen)
Programmeerbare LED: 6 stappen (met afbeeldingen)

Video: Programmeerbare LED: 6 stappen (met afbeeldingen)

Video: Programmeerbare LED: 6 stappen (met afbeeldingen)
Video: KLEDINGKAST ZELF MAKEN: In #7 Stappen Zelf Een Kledingkast Maken? [MDF/STEIGERHOUT/MEUBELPANELEN] 2024, November
Anonim
Programmeerbare LED
Programmeerbare LED

Geïnspireerd door verschillende LED Throwies, knipperende LED's en soortgelijke instructables, wilde ik mijn versie van een LED doen die wordt bestuurd door een microcontroller. Het idee is om de LED-knippervolgorde herprogrammeerbaar te maken. Deze herprogrammering kan met licht en schaduw, b.v. je zou je zaklamp kunnen gebruiken. Dit is mijn eerste instructable, alle opmerkingen of correcties zijn welkom. Update 2008-08-12: Er is nu een kit beschikbaar in de Tinker Store. Hier is een video van het herprogrammeren ervan. Sorry voor de kwaliteit.

Stap 1: Hoe het werkt

Als uitgang wordt een LED gebruikt. Als input heb ik een LDR gebruikt, een lichtafhankelijke weerstand. Deze LDR verandert zijn weerstand naarmate hij meer of minder licht ontvangt. De weerstand wordt dan gebruikt als analoge ingang naar de microprocessors ADC (analoog digitaal omzetter).

De controller heeft twee werkingsmodi, een voor het opnemen van een sequentie en de andere voor het afspelen van de opgenomen sequentie. Zodra de controller binnen een halve seconde twee veranderingen van helderheid opmerkt (donker, helder, donker of andersom), schakelt hij over naar de opnamemodus. In de opnamemodus wordt de invoer van de LDR meerdere keren per seconde gemeten en opgeslagen op de chip. Als het geheugen vol is, schakelt de controller terug naar de afspeelmodus en begint de opgenomen reeks af te spelen. Omdat het geheugen van deze kleine controller zeer beperkt is, 64 bytes (ja, bytes!), kan de controller 400 bits opnemen. Dat is ruimte genoeg voor 10 seconden met 40 samples per seconde.

Stap 2: Materialen en gereedschappen

Materialen en gereedschappen
Materialen en gereedschappen
Materialen en gereedschappen
Materialen en gereedschappen

Materialen- 2 x 1K weerstand- 1 x LDR (Light Dependent Resistor), b.v. M9960- 1 x Low-current LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB flash RAM, 64 Bytes RAM, 64 Bytes EEPROM, [email protected] 1 x CR2032, 3V, 220mAhTools- soldeerbout - soldeerdraad- breadboard- AVR-programmeur- 5V-voeding- multimeterSoftware- Eclipse- CDT-plug-in- WinAVRKosten zouden in totaal minder dan $ 5 moeten zijn zonder de tools. Ik heb de ATtiny13v gebruikt omdat deze versie van deze controllerfamilie op 1.8V kan draaien. Dat maakt het mogelijk om het circuit te laten lopen met een zeer kleine batterij. Om het heel lang te laten werken, heb ik besloten om een LED met lage stroomsterkte te gebruiken die al bij 2 ma de volledige helderheid bereikt.

Stap 3: Schema's

Schema's
Schema's

Enkele opmerkingen bij het schema. De reset-ingang is niet aangesloten. Dit is geen beste praktijk. Beter zou zijn om een weerstand van 10K te gebruiken als pull-up. Maar het werkt prima voor mij zonder en het bespaart een weerstand. Om de schakeling zo eenvoudig mogelijk te houden, heb ik de interne oscillator gebruikt. Dat betekent dat we een kristal en twee kleine condensatoren besparen. De interne oscillator laat de controller draaien op 1,2 MHz, wat meer dan genoeg snelheid is voor ons doel. Als u besluit een andere voeding dan 5V te gebruiken of andere LED's te gebruiken, moet u de weerstand R1 berekenen. De formule is: R = (Voeding V - LED V) / 0,002A = 1650 Ohm (Voeding = 5V, LED V = 1,7V). Bij gebruik van twee zwakstroom-LED's in plaats van één ziet de formule er als volgt uit: R = (Voeding V - 2 * LED V) / 0,002A = 800 Ohm. Houd er rekening mee dat u de berekening moet aanpassen als u een ander type LED kiest. De waarde van de weerstand R2 is afhankelijk van de gebruikte LDR. 1KOhm werkt voor mij. Misschien wilt u een potentiometer gebruiken om de beste waarde te vinden. Het circuit moet lichtveranderingen bij normaal daglicht kunnen detecteren. Om stroom te besparen wordt PB3 alleen op hoog gezet als er een meting wordt gedaan. Update: het schema was misleidend. Hieronder een correcte versie. Bedankt, dave_chatten.

Stap 4: Monteer op een prototypebord

Monteren op een prototypebord
Monteren op een prototypebord
Monteren op een prototypebord
Monteren op een prototypebord

Als je graag je circuit test, is een breadboard erg handig. U kunt alle onderdelen in elkaar zetten zonder dat u iets hoeft te solderen.

Stap 5: Programmeer het circuit

Programmeer het circuit
Programmeer het circuit
Programmeer het circuit
Programmeer het circuit

De controller kan in verschillende talen worden geprogrammeerd. De meest gebruikte zijn Assembler, Basic en C. Ik heb C gebruikt omdat deze het beste aansluit bij mijn behoeften. Ik was tien jaar geleden gewend aan C en kon een deel van de kennis doen herleven (nou ja, slechts een deel …). Om je programma te schrijven, raad ik Eclipse aan met de CDT-plug-in. Download eclipse hier https://www.eclipse.org/ en de plug-in hier https://www.eclipse.org/cdt/. Voor het compileren van C-taal naar AVR-microcontrollers hebt u een cross-compiler nodig. Gelukkig als we zijn, bestaat er een haven van de beroemde GCC. Het heet WinAVR en is hier te vinden https://winavr.sourceforge.net/. Een zeer goede tutorial over het programmeren van AVR-controllers met WinAVR is hier https://www.mikrocontroller.net/articles/AVR-GCC- Zelfstudie. Sorry, het is in het Duits, maar je kunt duizenden zelfstudiepagina's over dat onderwerp in jouw taal vinden, als je ernaar zoekt. Nadat je je bron hebt gecompileerd, moet je het hex-bestand naar de controller overbrengen. Dat kan worden gedaan door uw pc op het circuit aan te sluiten met behulp van ISP (in systeemprogrammeur) of door speciale programmeurs te gebruiken. Ik heb een speciale programmeur gebruikt omdat het het circuit iets eenvoudiger maakt door wat draden en een stekker te besparen. Het nadeel is dat je elke keer dat je je software wilt updaten de controller tussen de schakeling en de programmer moet wisselen. Mijn programmeur komt van https://www.myavr.de/ en gebruikt USB om verbinding te maken met mijn notebook. Er zijn er nog veel meer en je kunt het zelfs zelf bouwen. Voor de overdracht zelf heb ik een programma met de naam avrdude gebruikt dat deel uitmaakt van de WinAVR-distributie. Een voorbeeldopdrachtregel kan er als volgt uitzien:

avrdude -F -p t13 -c avr910 -P com4 -U flash:w:flickled.hex:iBijgevoegd kunt u de broncode en het gecompileerde hex-bestand krijgen.

Stap 6: Solderen

Solderen
Solderen

Als je circuit op het breadboard werkt, kun je het solderen.

Dit kan op een PCB (printed cicuit board), op een prototype board of zelfs zonder board. Ik besloot het zonder te doen, omdat het circuit maar uit een paar componenten bestaat. Als je niet bekend bent met solderen, raad ik je aan om eerst een soldeerhandleiding op te zoeken. Mijn soldeervaardigheden zijn een beetje roestig, maar ik denk dat je het idee begrijpt. Ik hoop dat je het leuk vond. Alex

Aanbevolen: