Nachdem meine Schwiegermutter immer vergesslicher wird und auch schon mal den Herd vergessen hat, hab' ich mich nach Herdsicherungen umgesehen:
amazon.de/Gorilla%C2%AE-stove-…-1&keywords=gorilla+stove zeigt ein Gerätchen, was nur piepst und weiter unten werden abschaltende Geräte aufgelistet. Preise ab 129€ aufwärts.
Gut, wenn ich die Vorgaben hab', kann ich das auch selber machen und hab' am Wochenende mal programmiert, gefräst und gelötet. Herausgekommen ist eine Totmannschaltung mit Restzeitanzeige und eine akustische 'bald ist der Strom weg'-Anzeige. Durch jumper kann eine Zeitvorwahl zwischen 10 und 25 Minuten (im Programm änderbar) eingestellt werden. Durch Drücken des Starttasters wird diese Zeit übernommen, am display in Minuten angezeigt und der Schütz für die Herdstromversorgung wird eingeschaltet. Es kann gekocht werden. 3 Minuten vor ablauf der Zeit fängt die Klingel zart das glöckeln an, ein Kling, 3 Sekunden Pause. (Das geht mit Wechselstromklingeln aus dem Baumarkt gut.) Wird die Starttaste gedrückt, wird das Klingeln gestoppt und die Zeitvorgabe läuft neu los. Drückt man die Stopptaste wird das Klingeln gestoppt aber der Schütz fällt auch ab und der Herd ist stromlos. Reagiert man nicht auf das Klingeln, wird dieses in der vorletzten Minute heftiger und in der letzten Minute penetrant. Reagiert man immer noch nicht, wird nach Ablauf der Zeit Klingeln und Herdstrom abgeschaltet, der mögliche Schaden wird dadurch in Grenzen gehalten.
Hier mal Programm und Bilder der Steuerung, der Hochstromteil (Schütz) besteht aus SSRs in einem separaten Gehäuse. Das Gehäuse der Steuerung wird aus einem Multiplexbrettchen herausgefräst (fehlt auch noch).
Alles anzeigen
Herdabschaltung-V0.2.pngHerdabschaltung-V0.2-board.pngPlatine-Unterseite.jpgPlatine-bestückt.jpgDraufsicht.jpg
Start- und Stopptaster sind Klingeltaster, die schön zu beschriften sind. Die Platine ist 100x114mm (BxH) groß.
Ok, der atmega168 ist überdimensioniert, aber ich hab' mir eingebildet, ich muss das in SMD machen und da war der der kleinste vorrätige.
(Eagle-Dateien auf Anfrage)
amazon.de/Gorilla%C2%AE-stove-…-1&keywords=gorilla+stove zeigt ein Gerätchen, was nur piepst und weiter unten werden abschaltende Geräte aufgelistet. Preise ab 129€ aufwärts.
Gut, wenn ich die Vorgaben hab', kann ich das auch selber machen und hab' am Wochenende mal programmiert, gefräst und gelötet. Herausgekommen ist eine Totmannschaltung mit Restzeitanzeige und eine akustische 'bald ist der Strom weg'-Anzeige. Durch jumper kann eine Zeitvorwahl zwischen 10 und 25 Minuten (im Programm änderbar) eingestellt werden. Durch Drücken des Starttasters wird diese Zeit übernommen, am display in Minuten angezeigt und der Schütz für die Herdstromversorgung wird eingeschaltet. Es kann gekocht werden. 3 Minuten vor ablauf der Zeit fängt die Klingel zart das glöckeln an, ein Kling, 3 Sekunden Pause. (Das geht mit Wechselstromklingeln aus dem Baumarkt gut.) Wird die Starttaste gedrückt, wird das Klingeln gestoppt und die Zeitvorgabe läuft neu los. Drückt man die Stopptaste wird das Klingeln gestoppt aber der Schütz fällt auch ab und der Herd ist stromlos. Reagiert man nicht auf das Klingeln, wird dieses in der vorletzten Minute heftiger und in der letzten Minute penetrant. Reagiert man immer noch nicht, wird nach Ablauf der Zeit Klingeln und Herdstrom abgeschaltet, der mögliche Schaden wird dadurch in Grenzen gehalten.
Hier mal Programm und Bilder der Steuerung, der Hochstromteil (Schütz) besteht aus SSRs in einem separaten Gehäuse. Das Gehäuse der Steuerung wird aus einem Multiplexbrettchen herausgefräst (fehlt auch noch).
BASCOM-Quellcode
- 'Herdabschaltung Totmannschaltung
- 'Anzeige mit Multiplex
- $regfile = "m168pdef.dat"
- $crystal = 8000000
- $hwstack = 64
- $swstack=32
- $framesize = 30
- 'ports
- Relais Alias Portc.2 'steuert den Schütz für die Herdstromversorgung
- Config Relais = Output
- Klingel Alias Portc.3 'Anschluss für Wechselstromklingel, ein Impuls gibt einen Glockenschlag
- Config Klingel = Output
- Set_2 Alias Pinc.4
- Config Set_2 = Input 'preset für die Laufzeit
- Portc.4 = 1
- Set_1 Alias Pinc.5
- Config Set_1 = Input 'preset für die Laufzeit
- Portc.5 = 1
- T_start Alias Pinc.0 'Starttasten gibt Strom für Herd frei gemäß preset-Zeit
- Config T_start = Input
- Portc.0 = 1
- T_stop Alias Pinc.1 'Stopptaste, stoppt Klingeln, schaltet Herdstrom ab
- Config T_stop = Input
- Portc.1 = 1
- Segmente Alias Portd
- Config Segmente = Output 'Kathoden 7-Segmentanzeigen
- Z_enable Alias Portb.0 'Anode Zehnerstelle 7-Segmentanzeige
- Config Z_enable = Output
- E_enable Alias Portb.1 'Anode Einerstelle 7-Segmentanzeige
- Config E_enable = Output
- Const Timer2reload = 39 '5mSec
- Config Timer2 = Timer , Prescale = 1024
- load timer2 , Timer2Reload
- on ovf2 Timer2_isr
- enable ovf2
- Start Timer2
- Enable Interrupts
- 'Variablen
- Dim Laufzeit As Word 'Laufzeit in Sekunden
- Dim Aktiv As Bit '=1 wenn Herd bedienbar
- Dim Alarm As Bit '=1 wenn geklingelt wird
- Dim Anzeige_enable As Bit '=1 wenn die Anzeige was zeigen soll
- Dim Alarm_frequenz As Byte , Alarm_frequenz1 As Byte 'Anzahl Sekunden pro Glockenschlag
- Dim Alarm_puls As Word , Alarm_puls1 As Word 'Pulslänge für Glockenschlag in 5mSec
- Dim Minuten As Word , E As Word , Z As Word , Dp As Byte 'für Anzeige
- Dim Einer As Byte , Zehner As Byte , Stelle As Bit
- Dim Flag As Bit
- Dim 1_sec As Byte
- 'Voreinstellungen
- Aktiv = 0
- Alarm_puls = 16
- Config Debounce = 50
- Do
- Flag = 0
- Bitwait Flag , Set
- Debounce T_start , 0 , Starten , Sub
- Debounce T_stop , 0 , Stoppen , Sub
- If Aktiv = 1 Then
- Gosub Anzeige 'Restzeit in Minuten ausgeben
- Select Case Laufzeit
- Case Is > 180 : Alarm = 0
- Case 121 To 180 : Alarm_frequenz = 3 : Alarm = 1 'Glockenschlag alle 3 Sekunden
- Case 61 To 120 : Alarm_frequenz = 2 : Alarm = 1 'Glockenschlag alle 2 Sekunden
- Case 1 To 60 : Alarm_frequenz = 1 : Alarm = 1 'Glockenschlag alle 1 Sekunde
- Case 0 : Gosub Stoppen
- End Select
- Else
- Gosub Stoppen
- End If
- Loop
- Anzeige:
- Minuten = Laufzeit / 60
- E = Minuten Mod 10 'Zahl in einzelne Stellen zerpflücken
- Z = Minuten / 10
- Einer = Lookup(e , Zeichentabelle )
- If Dp.0 = 1 Then Einer.7 = 1 Else Einer.7 = 0
- If Z = 0 Then Z = 10 'Zehner-Nuller unterdrücken
- Zehner = Lookup(z , Zeichentabelle )
- Return
- Starten:
- Disable Interrupts
- Laufzeit = 599 '10 Minuten, wenn kein Jumper gesteckt
- If Set_1 = 0 Then Laufzeit = 899 '15 Minuten, wenn nur Jumper 1 gesteckt
- If Set_2 = 0 Then Laufzeit = 1199 '20 Minuten, wenn nur Jumper 2 gesteckt
- If Set_1 = 0 And Set_2 = 0 Then Laufzeit = 1499 '25 Minuten, wenn beide Jumper gesteckt
- Aktiv = 1
- Alarm = 0
- Relais = 1 'Herdstrom einschalten
- Anzeige_enable = 1 'Anzeige einschalten
- Enable Interrupts
- Return
- Stoppen:
- Aktiv = 0
- Alarm = 0
- Relais = 0 'Herdstrom abschalten
- Anzeige_enable = 0 'Anzeige ausschalten
- Return
- Timer2_isr:
- Load Timer2 , Timer2reload 'timer2 5mSec
- Toggle Stelle
- If Stelle = 0 Then 'Zehnerstelle anzeigen
- E_enable = 0 'Einerstelle ausschalten
- Segmente = Zehner
- Z_enable = Anzeige_enable 'Zehnerstelle anschalten
- Else
- Z_enable = 0 'Zehnerstelle ausschalten
- Segmente = Einer
- E_enable = Anzeige_enable 'Einerstelle anschalten
- End If
- If Alarm_puls1 > 0 Then Decr Alarm_puls1 'Pulszeit läuft ab
- If Alarm_puls1 = 0 Then
- Klingel = 0 'Klingel stromlos
- End If
- If 1_sec > 0 Then Decr 1_sec
- If 1_sec = 0 Then '1 Sekunde vergangen
- 1_sec = 200
- Toggle Dp.0 'Dezimalpunkt blinkt
- If Laufzeit > 0 Then Decr Laufzeit 'Laufzeit sekundenweise runter zählen
- If Alarm = 1 Then
- If Alarm_frequenz1 > 0 Then Decr Alarm_frequenz1
- If Alarm_frequenz1 = 0 Then
- Klingel = 1 'Strom auf Klingel
- Alarm_puls1 = Alarm_puls 'Pulslänge einstellen
- Alarm_frequenz1 = Alarm_frequenz 'Neustart der Alarm_frequenz
- Else
- Klingel = 0
- End If
- End If
- End If
- Flag = 1
- Return
- Zeichentabelle:
- 'Segment dp,G,F,E,D,C,B,A invertiert
- Data &B1100_0000 '0
- Data &B1111_1001 '1
- Data &B1010_0100 '2
- Data &B1011_0000 '3
- Data &B1001_1001 '4
- Data &B1001_0010 '5
- Data &B1000_0010 '6
- Data &B1111_1000 '7
- Data &B1000_0000 '8
- Data &B1001_0000 '9
- Data &B1111_1111 'nix
Start- und Stopptaster sind Klingeltaster, die schön zu beschriften sind. Die Platine ist 100x114mm (BxH) groß.
Ok, der atmega168 ist überdimensioniert, aber ich hab' mir eingebildet, ich muss das in SMD machen und da war der der kleinste vorrätige.
(Eagle-Dateien auf Anfrage)
Raum für Notizen
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von tschoeatsch ()