Beleuchtete Geschenke - Gunook
Beleuchtete Geschenke - Gunook
Anonim
Beleuchtete Geschenke
Beleuchtete Geschenke

Zu Hause haben wir zwei beleuchtete Geschenke, die während der Weihnachtszeit verwendet werden. Dies sind einfache beleuchtete Geschenke mit einer 2-farbigen rot-grünen LED, die die Farbe zufällig ändert, die ein- und ausblendet. Das Gerät wird über eine 3-Volt-Knopfzelle mit Strom versorgt. Letzteres war der Grund für dieses Projekt, da der Akku bei längerem Einschalten der Geschenke sehr schnell leer ist.

Um den Verbrauch einer großen Menge an Knopfzellenbatterien zu vermeiden, habe ich meine eigene Version mit drei wiederaufladbaren AAA-Batterien entwickelt. Diese Version verwendet eine RGB-LED, sodass auch Blau möglich ist, aber das war nicht Teil des ursprünglichen Designs. Meine Version hat folgende Funktionen:

  • Control 2 präsentiert sich gleichzeitig mit einem PIC12F617-Mikrocontroller. Die Mikrocontroller-Software wurde in der Programmiersprache JAL geschrieben.
  • Schalten Sie das Geschenk mit einem Taster ein und aus. Die ursprüngliche Version verwendete zu diesem Zweck einen Schalter, aber ein Druckknopf war einfacher zu bedienen.
  • Ändern Sie zufällig die Farbe der Geschenke durch Ein- und Ausblenden der Farben Rot und Grün.
  • Schalten Sie die Geschenke aus, wenn die Batteriespannung unter 3,0 Volt fällt. Dadurch wird verhindert, dass die Akkus zu stark entladen werden.

Nach dem Einblenden einer Farbe bleibt die LED für eine Zeit zwischen 3 Sekunden und 20 Sekunden an. Da ich noch die unbenutzte blaue LED hatte, habe ich die Funktion hinzugefügt, dass beide Pakete blau werden, wenn die Einschaltzeit genau 10 Sekunden beträgt. Dies geschieht nicht sehr oft, da die Zufallszeit in Timer-Ticks von 40 Millisekunden generiert wird, wie später beschrieben wird.

Schritt 1: Einige Theorie zum Ein- und Ausblenden mit Pulsweitenmodulation

Der beste Weg, die Helligkeit einer LED zu ändern, besteht darin, nicht den Strom zu ändern, der durch die LED fließt, sondern indem Sie die Zeit ändern, in der die LED innerhalb eines bestimmten Zeitintervalls eingeschaltet ist. Diese Art, die Helligkeit einer LED zu steuern, wird als Pulsweitenmodulation (PWM) bezeichnet und im Internet mehrfach beschrieben, z. B. Wikipedia.

PIC und Arduino haben spezielle PWM-Hardware an Bord, die es einfach macht, dieses PWM-Signal zu erzeugen, aber sie haben oft einen Ausgang dafür und so können Sie nur eine LED ansteuern. Für diese Version musste ich 5 LEDs (2 rote, 2 grüne und 1 kombinierte blaue) steuern, so dass PWM in Software mit einem Timer durchgeführt werden musste, der sowohl die PWM-Frequenz als auch das PWM-Tastverhältnis generiert.

Der PIC12F617 verfügt über einen On-Board-Timer mit Auto-Reload-Funktionen. Dies bedeutet, dass, sobald Sie den Reload-Wert des Timers festgelegt haben, dieser Wert jedes Mal verwendet wird, wenn das Timeout verstrichen ist, und der Timer arbeitet daher eigenständig mit einer bestimmten Frequenz. Da das Timing für ein stabiles PWM-Signal entscheidend ist, arbeitet der Timer auf Interrupt-Basis und wird nicht von der Zeit beeinflusst, die das Hauptprogramm benötigt, um die zufällige Einschaltzeit der LEDs zu steuern und zu bestimmen.

Die PWM-Frequenz muss hoch genug sein, um kein Flimmern zu sehen, daher habe ich eine PWM-Frequenz von 100 Hz gewählt. Für den Ein- und Ausblendeffekt müssen wir das Tastverhältnis und damit die Helligkeit der LED ändern. Ich habe mich entschieden, eine Schrittweite von 5 zu verwenden, um die Helligkeit zu erhöhen oder zu verringern, um den Ein- und Ausblendeffekt zu erzielen, und da der Timer einen Bereich von 0 bis 255 für den Arbeitszyklus verwendet, muss der Timer mit 255/ 5 = 51-fache Normalfrequenz oder 5100 Hz. Dies führt zu einem Timer-Interrupt alle 196 us.

Schritt 2: Die mechanische Arbeit

Die mechanische Arbeit
Die mechanische Arbeit
Die mechanische Arbeit
Die mechanische Arbeit
Die mechanische Arbeit
Die mechanische Arbeit

Für die Herstellung der Geschenke habe ich milchweißen Acrylkunststoff verwendet und für den Rest des Set-Ups habe ich MDF verwendet. Um zu verhindern, dass Sie die Form der LED in der Verpackung sehen, wenn die LED eingeschaltet ist, habe ich eine Abdeckung auf die LEDs gelegt, die das Licht der LED streut. Diese Abdeckung stammt von einigen alten elektronischen Kerzen, die ich hatte, aber Sie können auch eine Abdeckung erstellen, indem Sie den gleichen Acrylkunststoff verwenden. Auf den Bildern sehen Sie, was ich als Ausrüstung und Material verwendet habe.

Schritt 3: Die Elektronik

Die Elektronik
Die Elektronik
Die Elektronik
Die Elektronik
Die Elektronik
Die Elektronik
Die Elektronik
Die Elektronik

Das schematische Diagramm zeigt die elektronischen Komponenten, die Sie benötigen. Wie bereits erwähnt, werden 5 LEDs unabhängig voneinander gesteuert, wobei die blaue LED kombiniert wird. Da der PIC nicht zwei LEDs an einem Port-Pin ansteuern kann, habe ich einen Transistor zur Steuerung der kombinierten blauen LEDs hinzugefügt. Die Elektronik wird mit 3 wiederaufladbaren AAA-Batterien betrieben und kann durch Drücken des Reset-Schalters ein- oder ausgeschaltet werden.

Für dieses Projekt benötigen Sie folgende elektronische Komponenten:

  • 1 PIC Mikrocontroller 12F617 mit Sockel
  • 2 Keramikkondensatoren: 2 * 100nF
  • Widerstände: 1 * 33k, 1 * 4k7, 2 * 68 Ohm, 4 * 22 Ohm
  • 2 RGB-LEDs, hohe Helligkeit
  • 1 BC557-Transistor oder gleichwertig
  • 1 Druckknopfschalter

Sie können die Schaltung auf einem Steckbrett aufbauen und benötigen nicht viel Platz, wie auf dem Bild zu sehen ist. Sie fragen sich vielleicht, warum die Widerstandswerte zur Steuerung des maximalen Stroms durch die LEDs so niedrig sind. Dies liegt an der geringen Versorgungsspannung von 3,6 Volt in Kombination mit dem Spannungsabfall, den jede LED hat, der von der Farbe pro LED abhängt, siehe auch Wikipedia. Die Widerstandswerte ergeben einen maximalen Strom von ca. 15 mA pro LED, wobei der maximale Strom des Gesamtsystems ca. 30 mA beträgt.

Schritt 4: Die Software

Die Software führt die folgenden Aufgaben aus:

Wenn das Gerät durch die Drucktaste zurückgesetzt wird, schaltet es das Gerät ein, wenn es ausgeschaltet war, oder schaltet es aus, wenn es eingeschaltet war. Aus bedeutet, den PIC12F617 in den Schlafmodus zu versetzen, in dem er kaum Strom verbraucht.

Generieren Sie das PWM-Signal, um die Helligkeit der LEDs zu steuern. Dies geschieht mit einem Timer und einer Interrupt-Service-Routine, die die Pins des PIC12F617 steuert, die die LEDs ein- und ausschalten.

Blenden Sie die LEDs ein und aus und lassen Sie sie für eine zufällige Zeit zwischen 3 und 20 Sekunden eingeschaltet. Wenn die Zufallszeit 10 Sekunden beträgt, leuchten beide LEDs 10 Sekunden lang blau, danach wird das normale Rot-Grün-Ein- und Ausblendmuster verwendet.

Während des Betriebs misst der PIC die Versorgungsspannung mit seinem integrierten Analog-Digital-Wandler (ADC). Wenn diese Spannung unter 3,0 V sinkt, werden die LEDs ausgeschaltet und der PIC wieder in den Schlafmodus versetzt. Der PIC könnte mit 3,0 V noch gut funktionieren, aber es ist nicht gut, wenn die Akkus vollständig entladen werden.

Wie bereits erwähnt, wird das PWM-Signal unter Verwendung eines Timers erzeugt, der eine Interrupt-Service-Routine verwendet, um ein stabiles PWM-Signal aufrechtzuerhalten. Das Ein- und Ausblenden der LEDs einschließlich der Einschaltdauer der LEDs wird vom Hauptprogramm gesteuert. Dieses Hauptprogramm verwendet einen Timer-Tick von 40 Millisekunden, der von demselben Timer abgeleitet wird, der das PWM-Signal erzeugt.

Da ich dieses Mal keine spezifischen JAL-Bibliotheken für dieses Projekt verwendet habe, musste ich einen Zufallsgenerator mit einem linearen Feedback-Schieberegister erstellen, um die zufällige Ein- und Ausschaltzeit der LEDs zu erzeugen.

Schritt 5: Das Endergebnis

Image
Image
Das Endergebnis
Das Endergebnis

Es gibt 2 Videos, die das Zwischenergebnis zeigen. Meine Frau muss die Würfel noch in echte Geschenke verwandeln. Ein Video zeigt eine Nahaufnahme des Ergebnisses, das andere Video zeigt es mit dem Originalgeschenk, das zu diesem Projekt führte.

Wie Sie vielleicht erwarten, wenn Sie denken, dass Sie fertig sind, werden neue Anforderungen angezeigt. Meine Frau fragte, ob die Helligkeit der LEDs auch nach dem Einblenden variieren kann. Das ist natürlich möglich, da ich nur etwa die Hälfte des Programmspeichers des PIC12F617 belegt habe.

Die JAL-Quelldatei und die Intel Hex-Datei zum Programmieren des PIC sind beigefügt. Wenn Sie daran interessiert sind, den PIC-Mikrocontroller mit JAL – einer Pascal-ähnlichen Programmiersprache – zu verwenden, besuchen Sie die JAL-Website.

Viel Spaß beim Erstellen dieses Instructable und freuen uns auf Ihre Reaktionen und Ergebnisse.