Inhaltsverzeichnis:

Programmierbare LED: 6 Schritte (mit Bildern)
Programmierbare LED: 6 Schritte (mit Bildern)

Video: Programmierbare LED: 6 Schritte (mit Bildern)

Video: Programmierbare LED: 6 Schritte (mit Bildern)
Video: LED Beleuchtung im Wohnraum, das müsst ihr beachten - RGB und RGB W 2024, November
Anonim
Programmierbare LED
Programmierbare LED

Inspiriert von verschiedenen LED-Throwies, blinkenden LEDs und ähnlichen instructables wollte ich meine Version einer LED machen, die von einem Mikrocontroller gesteuert wird. Die Idee ist, die LED-Blinksequenz umprogrammierbar zu machen. Diese Umprogrammierung kann mit Licht und Schatten erfolgen, z. B. Sie könnten Ihre Taschenlampe verwenden. Dies ist mein erstes instructable, Kommentare oder Korrekturen sind willkommen. Update 12.08.2008: Es gibt jetzt ein Kit im Tinker Store. Hier ist ein Video der Neuprogrammierung. Entschuldigung für die Qualität.

Schritt 1: Wie es funktioniert

Als Ausgang dient eine LED. Als Eingang habe ich einen LDR verwendet, einen lichtabhängigen Widerstand. Dieser LDR ändert seinen Widerstand, wenn er mehr oder weniger Licht empfängt. Der Widerstand wird dann als analoger Eingang für den ADC (Analog-Digital-Wandler) des Mikroprozessors verwendet.

Der Controller verfügt über zwei Betriebsmodi, einen zum Aufzeichnen einer Sequenz, den anderen zum Abspielen der aufgezeichneten Sequenz. Sobald der Controller innerhalb einer halben Sekunde zwei Helligkeitsänderungen (dunkel, hell, dunkel oder umgekehrt) wahrnimmt, wechselt er in den Aufnahmemodus. Im Aufnahmemodus wird der Eingang des LDR mehrmals pro Sekunde gemessen und auf dem Chip gespeichert. Ist der Speicher erschöpft, schaltet der Controller zurück in den Wiedergabemodus und beginnt mit der Wiedergabe der aufgenommenen Sequenz. Da der Speicher dieses winzigen Controllers mit 64 Byte (ja, Bytes!) sehr begrenzt ist, kann der Controller 400 Bit aufzeichnen. Das ist Platz genug für 10 Sekunden mit 40 Samples pro Sekunde.

Schritt 2: Materialien und Werkzeuge

Materialien und Werkzeuge
Materialien und Werkzeuge
Materialien und Werkzeuge
Materialien und Werkzeuge

Materialien- 2 x 1K Widerstand- 1 x LDR (Light Dependent Resistor), z. B. M9960- 1 x Niederstrom-LED, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1KB Flash RAM, 64 Bytes RAM, 64 Bytes EEPROM, [email protected] 1 x CR2032, 3V, 220mAhTools- Lötkolben - Lötdraht - Steckbrett - AVR-Programmierer - 5V Netzteil - MultimeterSoftware - Eclipse - CDT-Plugin - WinAVRKosten sollten ohne die Tools insgesamt unter 5 $ liegen. Ich habe den ATtiny13v verwendet, weil diese Version dieser Controller-Familie mit 1,8 V betrieben werden kann. Dadurch ist es möglich, die Schaltung mit einer sehr kleinen Batterie zu betreiben. Um es sehr lange laufen zu lassen, habe ich mich für eine Schwachstrom-LED entschieden, die bereits bei 2mA die volle Helligkeit erreicht.

Schritt 3: Schaltpläne

Schema
Schema

Einige Anmerkungen zum Schaltplan. Der Reset-Eingang ist nicht angeschlossen. Dies ist nicht die beste Vorgehensweise. Besser wäre es, einen 10K-Widerstand als Pull-Up zu verwenden. Aber ohne funktioniert es bei mir gut und es spart einen Widerstand. Um die Schaltung so einfach wie möglich zu halten, habe ich den internen Oszillator verwendet. Das heißt, wir sparen einen Quarz und zwei kleine Kondensatoren. Der interne Oszillator lässt den Controller mit 1,2MHz laufen, was für unseren Zweck mehr als genug Geschwindigkeit ist. Wenn Sie sich entscheiden, eine andere Stromversorgung als 5V zu verwenden oder andere LEDs zu verwenden, müssen Sie den Widerstand R1 berechnen. Die Formel lautet: R = (Stromversorgung V - LED V) / 0,002A = 1650 Ohm (Stromversorgung = 5V, LED V = 1,7V). Bei Verwendung von zwei Niederstrom-LEDs anstelle von einer sieht die Formel wie folgt aus: R = (Stromversorgung V - 2 * LED V) / 0,002 A = 800 Ohm. Bitte beachten Sie, dass Sie die Berechnung anpassen müssen, wenn Sie einen anderen LED-Typ wählen. Der Wert des Widerstands R2 hängt vom verwendeten LDR ab. 1KOhm funktioniert bei mir. Vielleicht möchten Sie ein Potentiometer verwenden, um den besten Wert zu finden. Die Schaltung sollte in der Lage sein, Lichtveränderungen bei normalem Tageslicht zu erkennen. Um Strom zu sparen, wird PB3 nur dann auf hoch gesetzt, wenn eine Messung durchgeführt wird. Update: Der Schaltplan war irreführend. Unten ist eine korrekte Version. Danke, dave_chatting.

Schritt 4: Auf einer Prototypenplatine montieren

Auf einer Prototypenplatine montieren
Auf einer Prototypenplatine montieren
Auf einer Prototypenplatine montieren
Auf einer Prototypenplatine montieren

Wenn Sie Ihre Schaltung testen möchten, ist ein Steckbrett sehr praktisch. Sie können alle Teile zusammenbauen, ohne etwas löten zu müssen.

Schritt 5: Programmieren Sie die Schaltung

Programmieren Sie die Schaltung
Programmieren Sie die Schaltung
Programmieren Sie die Schaltung
Programmieren Sie die Schaltung

Der Controller kann in verschiedenen Sprachen programmiert werden. Am häufigsten werden Assembler, Basic und C verwendet. Ich habe C verwendet, da es meinen Anforderungen am besten entspricht. Ich war vor zehn Jahren an C gewöhnt und konnte einen Teil des Wissens wieder aufleben lassen (naja, nur einiges …). Um Ihr Programm zu schreiben, empfehle ich Eclipse mit dem CDT-Plugin. Holen Sie sich Eclipse hier https://www.eclipse.org/ und das Plugin hier https://www.eclipse.org/cdt/. Um die C-Sprache in AVR-Mikrocontroller zu kompilieren, benötigen Sie einen Cross-Compiler. Zum Glück gibt es einen Hafen des berühmten GCC. Es heißt WinAVR und ist hier https://winavr.sourceforge.net/ zu finden. Ein sehr gutes Tutorial zum Programmieren von AVR-Controllern mit WinAVR finden Sie hier https://www.mikrocontroller.net/articles/AVR-GCC- Lernprogramm. Tut mir leid, es ist auf Deutsch, aber Sie können Tausende von Tutorial-Seiten zu diesem Thema in Ihrer Sprache finden, wenn Sie danach suchen. Nachdem Sie Ihren Quellcode kompiliert haben, müssen Sie die Hex-Datei auf die Steuerung übertragen. Dies kann durch Anschließen Ihres PCs an die Schaltung über ISP (im Systemprogrammierer) oder über dedizierte Programmierer erfolgen. Ich habe einen dedizierten Programmierer verwendet, da er die Schaltung etwas einfacher macht, indem einige Drähte und ein Stecker eingespart werden. Der Nachteil ist, dass Sie jedes Mal, wenn Sie Ihre Software aktualisieren möchten, den Controller zwischen der Schaltung und dem Programmierer austauschen müssen. Mein Programmierer kommt von https://www.myavr.de/ und verwendet USB zum Anschluss an mein Notebook. Es gibt viele andere und Sie können es sogar selbst bauen. Für die Übertragung selbst habe ich ein Programm namens avrdude verwendet, das Teil der WinAVR-Distribution ist. Eine Beispiel-Befehlszeile kann wie folgt aussehen:

avrdude -F -p t13 -c avr910 -P com4 -U flash:w:flickled.hex:iAnbei erhalten Sie den Quellcode und die kompilierte Hex-Datei.

Schritt 6: Löten

Löten
Löten

Wenn Ihre Schaltung auf dem Steckbrett funktioniert, können Sie es löten.

Dies kann auf einer Leiterplatte (Printed Cicuit Board), auf einer Prototypenplatine oder sogar ohne Platine erfolgen. Ich habe mich dafür entschieden, darauf zu verzichten, da die Schaltung nur aus wenigen Komponenten besteht. Wenn Sie mit Löten nicht vertraut sind, empfehle ich Ihnen, zuerst nach einem Löt-Tutorial zu suchen. Meine Lötfähigkeiten sind ein bisschen eingerostet, aber ich denke, Sie verstehen die Idee. Ich hoffe, dass es Ihnen gefallen hat. Alex

Empfohlen: