home    Inhaltsverzeichnis
erste Version am 08.11.2020
letzte Änderung am 06.03.2021

Ausschalttimer Seite 3

mit Kondensator klappt alles

...auf jeden Fall schon mal dann, wenn Gehäuse-Oberteil, Relais und Leiterplatte auf meinem Schreibtisch liegen und vom Labornetzteil mit 12V versorgt werden.
Was für einen Unterschied so ein 22µF Elko doch machen kann.....
Zuerst hatte ich ja die Strippen in Verdacht, die direkt unter dem Quarz verliefen und die Drehgeber-Signale auf den ATmega328 geschaltet haben.
Zwar verlaufen die jetzt anders - aber trotzdem hat es an denen sehr wahrscheinlich nicht gelegen. Zeitweilig hatte ich sie nämlich komplett entfernt. Und weil die OLED-Anzeige auch ohne diese Strippen nach spätestens zwei Minuten durcheinander kam, habe ich noch einen kleinen Elko zwischen Masse und den Ausgangspin des 5V-Reglers gelegt. Schon gings :-)
Danach kam noch die Ansteuerung des Relais samt eines weiteren zweipoligen Molex-Steckers hinzu.
Damit ist die Leiterplatte jetzt fertig:
Testaufbau mit finaler Leiterpaltte

Hier noch die Firmware im aktuellen bzw. [hoffentlich] endgültigen Stand.

Nun klappt das in dieser Aufbau-Version bereits seit locker drei Stunden eben so gut, wie es mit dem ArduinoUNO geklappt hat.
Damit wäre der letzte Schritt jetzt der Einbau ins Gehäuse-Unterteil und damit der Betrieb über das 12V-Netzteil.

Weil ich mir nach diesem Erfolg (und der ganzen Rumtesterei) aber erstmal ein Bierchen verdient hatte, wird das heute nix mehr werden.
Mit Bier im Kopp betrachte ich es als keine gute Idee, den 230V-Teil zu verlöten.


habe fertig

Es ist vollbracht. Vom 20.08. bis zum 14.11. - fast drei Monate habe ich mit dem Ding rumgetrödelt. Eigentlich wäre das auch an drei Tagen schaffbar gewesen, wenn ich acht Stunden pro Tag konzentriert daran gearbeitet hätte. Aber es soll sich ja schließlich nicht wie Arbeit anfühlen, wenn es Hobby ist.

Heute dann noch etwa eine letzte Viertelstunde ...für die letzten acht Lötstellen ...und zuschrauben und fertig.

Foto vom geöffneten Ausschalttimer

Vor dem Öffnen des Gehäuses sollte man tunlichst den Netzstecker ziehen. Wie man unschwer erkennt, sind die zwei 230V-Kontakte am Relais nicht isoliert. Je nachdem, wie rum der Stecker in der Steckdose steckt, liegt da mit einer 50%-Wahrscheinlichkeit Phase an - auch wenn der Taster nicht betätigt wird. Allerdings betrachte ich das als kein wirkliches Problem, weil man schließlich grundsätzlich den Netzstecker ziehen soll, bevor man ein mit Netzspannung betriebenes Gerät öffnet.

Foto vom Ausschalttimer (noch im
        Setup-Modus)

Und welch Freude: weder die unmittelbare Nähe zur 230V-Kabelage noch die zum 12V-Netzteil bringen den ATmega328 mit seinen 16MHz durcheinander.

Eine winzige Firmware-Änderung könnte (irgendwann mal) vielleicht noch sein, dass unmittelbar vor dem Abschalten des Relais ein
    display.println("Power off");
ans OLED gesendet wird. Oder ein
    delay(3000);
unmittelbar dahinter. Oder -noch besser- beides.
Praktisch bleibt das OLED nach PowerOff nämlich noch zwei bis drei Sekunden an und zeigt den Wert der Countdown-Variable nach einem Nulldurchgang an.
Der angezeigte Wert auf dem OLED lautet 18:12:15.
Das entspricht 18*60*60+12*60+15=65.535 Sekunden.
Und die Zahl kennt man ja: 216-1 oder auch 20+21+...+214+215.

Hier noch der angekündigte Link auf Thingiverse für das Gehäuse.
Und hier nur das SCAD-File - falls Thingiverse demnächst endgültig kaputt oder gleich ganz offline ist.

Weil Thingiverse nach geschlagenen acht Tagen immer noch keine 3D-Vorschau anzeigt, muss man es wohl bereits jetzt als kaputt betrachten.
Daher habe ich mein 3D-Modell auch zu MyMiniFactory hochgeladen. Hier der Link zum Ausschalttimer.
Und zu Cults3D musste ich es nicht mal hochladen. Die spiegeln meine Thingiverse-Designs vollautomatisch in ihre Sammlung. Hier der entsprechende Link.


ein kleiner Upgrade

...weil der gammlige Drehgeber nach knapp vier Monaten den Geist aufgegeben hat.
Ersetzt habe ich ihn durch einen Drehgeber von Reichelt bzw. der Firma ALPS, der einzeln mehr kostet, als die 10 Stück vom Chinesen (konkret 4,45€ zu 4,06€/10).

Da das Gehäuse dafür ohnehin wieder geöffnet werden musste, kam auch gleich der angedachte Firmware-Upgrade zur v1.1 drauf.
Und die musste ich zweimal flashen, weil ich in der 1.0'er Firmware das gemacht hatte, was ich eigentlich nie mehr machen wollte. Da stand:
if(remaining_seconds<1)
  digitalWrite(RELAIS, LOW);            // ...und bei Ablauf der Wartezeit den [eigenen] Saft abdrehen"
und wenn man das dann erweitert nach:
if(remaining_seconds<1)                 // Test auf Abschaltbedingung
  display.clearDisplay();               // bei Ablauf der Wartezeit...
  display.setCursor(10, 10);
  display.println("Power Off");         // ...Abschalt-Meldung ausgeben
  display.display();
  digitalWrite(RELAIS, LOW);            // ...und den [eigenen] Saft abdrehen
  delay(10000);                         // warten, bis alle Kondensatoren leer sind
dann geht das natürlich schief - okay, nicht in Python...aber in C schon.
Weil mir das nicht das erste Mal so passiert ist, hatte ich mir eigentlich fest vorgenommen, auch einzelne Statements hinter einer if-Anweisung grundsätzlich in geschweifte Klammern zu setzen.
Merke: Pfusch rächt sich immer!

Leider passt der 3D-gedruckte Drehknopf nicht mehr auf den neuen Drehgeber, weil dieser 5mm länger als der vorige ist.
Dementsprechend gibt es jetzt also auch eine v1.1a der scad-Datei. Die v1.1 war schon vergeben und hatte Lüftungsschlitze im Oberteil nachgerüstet.
Neu gedruckt habe ich das geänderte Oberteil bisher jedoch nicht.

Zusammen mit dem Drehgeber habe ich mir übrigens auch ein sehr viel kompakteres AC/DC-Modul bestellt. Falls ich irgendwann mal einen weiteren Ausschalttimer aufbauen sollte, werde ich eine 12V-Version von dem Ding benutzen... und das Gehäuse auf halbe Größe eindampfen.