- Um ein Nachtlicht, das sich immer mit Helligkeitsstufe 3 einschaltet, auf Stufe 1 herunterzuschalten, wurde eine ATtiny85-basierte PCB gebaut, die beim Einschalten dreimal stellvertretend die Taste drückt
- Da ein Kondensatornetzteil nur wenige mA liefern kann, fiel die Wahl statt auf einen ESP8266 oder Raspberry Pi Zero auf den ATtiny85, der bei 1 MHz weniger als 1 mA verbraucht und im Sleep-Modus auf μA-Niveau sinkt
- Die Schaltung wurde rund um einen HT7333, der 8,3 V auf 3,3 V senkt, und einen 2N3904, der die Taste gegen Masse kurzschließt, aufgebaut und mit EasyEDA und JLCPCB entworfen und gefertigt
- Der Chip wurde über die GPIOs eines Raspberry Pi 3 und avrdude programmiert; wenn Home Assistant das Nachtlicht einschaltet, wartet die Schaltung kurz und drückt dann dreimal die Taste, um automatisch auf minimale Helligkeit umzuschalten
- Design-Dateien und C-Code wurden unter der MIT-Lizenz veröffentlicht, sind aber nur für Geräte mit interner Spannung von 4–12 V und gegen Masse kurzgeschlossener Tasteneingabe geeignet; bei netzbetriebenen Geräten ohne Transformator ist besondere Vorsicht geboten
Drei tägliche Tastendrücke
- Home Assistant ist so konfiguriert, dass es über einen Zigbee-Wandstecker das Nachtlicht einschaltet, wenn das Smartphone in den Schlaf-Fokusmodus wechselt
- Das günstige Nachtlicht hat einen Schalter zur Auswahl, ob es automatisch angeht, sowie eine Taste zum Ändern der Helligkeitsstufe, startet aber bei jedem Einschalten mit Helligkeitsstufe 3
- Ein Tastendruck führt zu Stufe 4, ein weiterer zu Stufe 5 und der dritte zu Stufe 1
- Um die gewünschte niedrigste Helligkeit zu erreichen, musste jeden Abend dreimal die Taste gedrückt werden
- Nach dem Öffnen des Geräts war kein Chipname zu erkennen, und es gab auch kein Potenziometer zur Einstellung
- Auch eine online beschriebene Methode, bei der man die Taste etwa 10 Sekunden gedrückt hält, um die Standardhelligkeit im EEPROM zu ändern, funktionierte bei diesem Produkt nicht
Ein Mikrocontroller für die begrenzte Stromversorgung
- Ein Mikrocontroller, der die Tasteneingabe automatisiert, war die naheliegendste Lösung
- Das Nachtlicht senkt die Netzspannung statt mit einem Transformator über einen Kondensator ab, daher kann das Netzteil nur wenige mA liefern
- Der ESP8266 im Wemos D1 Mini benötigt beim Booten und Aktivieren der Funkfunktion mehrere hundert mA
- Der Raspberry Pi Zero ist ein vollständiger Linux-Computer, der ein Betriebssystem booten muss
- Beide Geräte hätten eine separate Stromversorgung oder einen großen Speicherkondensator samt zusätzlicher Schaltung benötigt, um den Einschaltmoment zu überstehen
- Die endgültige Wahl fiel auf den ATtiny85, der wie klassische Arduinos zur AVR-Familie gehört und sich mit der Arduino IDE programmieren lässt
- Bei 1 MHz Betrieb liegt die Stromaufnahme unter 1 mA
- Im Sleep-Modus sinkt sie auf ein μA-Niveau, ähnlich wie bei einer Quarzuhr
- Die LEDs des Nachtlichts verbrauchen tausendfach mehr Leistung als der ATtiny85
Eine Schaltung, die echte Tastendrücke nachbildet
- Die interne Versorgungsschiene des Nachtlichts liegt bei 8,3 V, während der ATtiny85 3,3 V benötigt; dafür wird ein HT7333-Spannungsregler verwendet
- Ein 2N3904-Transistor schließt die Tasten-Signalleitung gegen Masse kurz und bildet so das tatsächliche Drücken der Taste nach
- Die umgebenden Bauteile übernehmen Strombegrenzung, Schutz vor Fehleingaben und Stabilisierung der Versorgung
- Der 1-kΩ-Widerstand zwischen ATtiny85 und Transistor begrenzt den Steuerstrom in den Transistor
- Der 10-kΩ-Widerstand hält den Transistor während des Einschaltens ausgeschaltet und verhindert unbeabsichtigte Tasteneingaben
- Drei kleine Kondensatoren glätten die Versorgung für Spannungsregler und Chip
- Ein 3-Pin-Header wird mit Versorgung, Masse und Tasten-Signalleitung verbunden
- Die Schaltung wurde als separate Platine entworfen, um sie als universelles Gerät zu nutzen, das eine festgelegte Anzahl von Tastendrücken übernimmt, und um den PCB-Fertigungsprozess zu lernen
Schaltplan- und Platinenentwurf in EasyEDA
- In EasyEDA wurden zunächst die Bauteile und Verbindungen als Schaltplan erstellt
- Verbindungspunkte mit gleichem Namen wie
GNDoder3V3werden vom Router miteinander verbunden - Wenn die tatsächlich zu verwendenden Bauteile festgelegt werden, können sie für das PCB-Layout und die Stückliste genutzt werden
- Verbindungspunkte mit gleichem Namen wie
- Im PCB-Editor lassen sich Bauteilpositionen, Leiterbahnen, Platinenform und Aufdrucke direkt festlegen
- Auf die Platine wurden das Open-Source-Hardware-Logo und der Benutzername gedruckt
- Da die Schaltung einfach ist, wurde sie als einseitige Platine umgesetzt; komplexe Leiterbahnführung oder Längen- und Formkorrekturen waren nicht nötig
Fertigung bei JLCPCB und Bestückung
- Bei JLCPCB wurden die realen Bauteile und die Option zur Bestückung ausgewählt und die Platinen bestellt
- Die Mindestbestellmenge lag bei 5 Stück, benötigt wurde aber nur eine Platine, daher wurden die meisten Bauteile selbst gelötet
- Für sehr kleine Widerstände und Kondensatoren wurde wegen der geringen Zusatzkosten der Bestückungsservice von JLCPCB genutzt
- Vier Tage nach der Bestellung kamen die Platinen an
Programmierung des ATtiny85 und Vorabprüfung
- Ein leerer ATtiny85 hat keinen Bootloader und kann nicht wie ein Arduino direkt per USB angeschlossen werden; es wird ein separater Programmer benötigt
- Programmiert wurde er über die GPIOs eines Raspberry Pi 3 und avrdude
- Dazu wurden Pi-Header und Chip mit sechs Jumper-Kabeln verbunden und ein einzelner Befehl ausgeführt
- Statt ihn direkt ans Nachtlicht anzuschließen, wurde die Funktion zunächst mit einer LED am Ausgangspin geprüft
- Das endgültige Verhalten besteht darin, dreimal zu blinken und dann dauerhaft anzuhalten
- Im Testvideo blinkt sie viermal, weil die benötigte Anzahl nachträglich korrigiert wurde
Einbau und Sicherheit bei Netzspannung
- Die fertige Platine wurde ins Innere des Nachtlichts gelötet; wegen der sehr kleinen Bauteile und des knappen Raums war die Arbeit schwierig
- Ein großer Kondensator auf der vorhandenen Platine war mit umgekehrter Polarität eingebaut, was durch eine Multimeter-Prüfung bestätigt wurde
- Da das Nachtlicht keinen Transformator hat, ist nach dem Einbau der Zusatz-PCB die gesamte Schaltung mit der Netzspannung verbunden
- Der ATtiny85 muss geflasht werden, bevor er ins Gerät eingebaut wird
- Nach dem Einbau dürfen weder USB-Kabel noch Raspberry Pi wieder angeschlossen werden
Schlafenszeit-Automatisierung und finales Verhalten
- Wenn die Uhr dem Smartphone den Schlafzustand mitteilt, informiert das Smartphone Home Assistant, und Home Assistant schaltet das Nachtlicht über den Zigbee-Stecker ein
- Die eingeschaltete PCB wartet kurz, damit das Nachtlicht nicht fehlreagiert, und drückt dann dreimal die Taste, um auf Helligkeitsstufe 1 umzuschalten
- Hinter dem Diffusor sind Schatten der internen Verdrahtung zu sehen, an der Zimmerwand erscheinen sie jedoch nicht, sodass es in der Praxis kein Problem darstellt
Open-Source-Materialien und Einsatzbedingungen
- Unter tymscar/button-presser wurden die folgenden Materialien unter der MIT-Lizenz veröffentlicht
- Gerber-Dateien, mit denen dieselbe Platine gefertigt werden kann
- Stückliste und Schaltplan
- Kurzer C-Code, der auf dem ATtiny85 läuft
- Vor dem Einsatz müssen die beiden im README beschriebenen Multimeter-Prüfungen durchgeführt werden
- Diese Schaltung funktioniert nur in Geräten, die intern eine 4–12-V-Versorgungsschiene haben und bei denen das Tastensignal beim Drücken gegen Masse kurzgeschlossen wird
- Viele günstige Geräte erfüllen diese Bedingungen, aber nicht alle Produkte; bei netzbetriebenen Geräten sollten vor der Arbeit die Sicherheitshinweise geprüft werden
Noch keine Kommentare.