Hallo zusammen! Insbesondere an einer Stelle meines Schaltplans hänge ich (rot markiert). Das Ziel: MC (ATtiny) steuert die Ein-/Auszeit für das SSR und somit für eine 230 V Last. Die Stromversorgung des MC erfolgt nur bei geschlossenem Relais, welches wiederum über einen ESP8266 angesteuert wird (Einbindung der Gesamtschaltung in Home Assistant). Durch mehrfaches Drücken von Button SW1A werden die Ein-/Auszeiten geändert. Da ich das auch über den Home Assistant steuern möchte, ist Pin 6 des MC auch mit dem ESP verbunden. Somit wäre durch mehrfaches (digitales) Ansteuern des Pins durch den ESP ein Durchschalten der Modi möglich. Ich hoffe, dass ich bis hierhin alles korrekt geplant habe - Anmerkungen gerne erwünscht! Mein Problem ist nun der rote Bereich, an dem die 3,3 V des ESP auf die 5 V des MC treffen. Normalerweise dürften nicht beide Spannungen zur selben Zeit anliegen, weil ich nur entweder den Button drücke oder digital die Stufe wechsle. Da aber bekanntermaßen der Teufel ein Eichhörnchen ist und ich nicht sicherstellen kann, dass meine Freundin als Eichhörnchen (nicht als Teufel!) gleichzeitig etwas schaltet, möchte ich hier auf Nummer sicher gehen. Stellt die dargestellte Lösung überhaupt sicher, dass sich die beiden Spannungen nicht in die Quere kommen? Andernfalls dachte ich an einen Opto-Koppler, der durch die 3,3 V geschaltet wird und dadurch 5 V durchschaltet. Ich freue mich auf eure Rückmeldungen und Anregungen!
:
Verschoben durch Moderator
So ganz verstanden habe ich dein Problem nicht. Grundsätzlich trennen die Dioden das, ja. Aber: - Wenn dein Relais offen ist, dann hat der Tiny45 kein VCC und vom ESP könnten trotzdem 3.3V (-U_Diode) auf den Pin gehen. Das mag der nicht. - Es ist fraglich, ob der Tiny45 mit 5V VCC die 3.3V-0.7V als HIGH erkennt. Evtl. muss man hier den internen Komparator verwenden. Warum muss eigentlich die VCC des Tiny abgeschaltet werden?
Nachtrag: Warum wird der Tiny45 mit 5V versorgt? Der läuft auch mit 3.3V und dann wäre mein zweiter Punkt oben kein Problem.
HildeK schrieb: > Warum muss eigentlich die VCC des Tiny abgeschaltet werden? Und wozu überhaupt der extra ATtiny. Einen Timer sollte der Bolide ESP wohl gerade noch schaffen.
Stefan H. schrieb: > Somit wäre durch mehrfaches > (digitales) Ansteuern des Pins durch den ESP ein Durchschalten der Modi > möglich. Wie soll dann der Bediener wissen, welcher Modus gerade aktiv ist?
Und der RST vom ESP ist ein Eingang, kein Ausgang. Damit kannste keinen Transi ansteuern. Und PWR_FLAG ist auf AC_L und AC_N vorhanden -> satter Kurzschluss!
HildeK schrieb: > Warum muss eigentlich die VCC des Tiny abgeschaltet werden? Peter D. schrieb: > Und wozu überhaupt der extra ATtiny. Einen Timer sollte der Bolide ESP > wohl gerade noch schaffen. Aus Sicherheitsgründen. Gesteuer werden soll z. B. eine Heizdecke. Da soll, wie bei käuflich zu erwerbenden Decken auch, eine Abschaltautomatik enthalten sein. Ggf. auch ein Wasserkocher, so dass morgens Teewasser verfügbar ist (da würde noch ein Thermostat-Schalter dazukommen). Ich wollte das analog einer bestehenden "Smart"-Schaltung machen (Sonoff S20 mit Heizdeckensteuerung des Herstellers dahinter). Mein Gedanke war: Doppelte Sicherheit. HildeK schrieb: > Warum wird der Tiny45 mit 5V versorgt? Der läuft auch mit 3.3V und dann > wäre mein zweiter Punkt oben kein Problem. Hm, das hatte ich bisher so noch nicht gelesen, aber beim Blick in ein weiteres Datenblatt kann ich das bestätigen (Quelle: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf):
1 | Operating Voltage |
2 | – 1.8 - 5.5V for ATtiny25V/45V/85V |
3 | – 2.7 - 5.5V for ATtiny25/45/85 |
Damit würde die Problematik der Erkennung zumindest wegfallen, bliebe jedoch noch diese hier: HildeK schrieb: > - Wenn dein Relais offen ist, dann hat der Tiny45 kein VCC und vom ESP > könnten trotzdem 3.3V (-U_Diode) auf den Pin gehen. Das mag der nicht. Wie könnte ich hier denn Abhilfe schaffen? Auch hier fiele mir spontant nur ein Opto-Koppler ein, der durch Anliegen von VCC am MC durchschaltet. Peter D. schrieb: > Wie soll dann der Bediener wissen, welcher Modus gerade aktiv ist? Guter Punkt! Ohne eine digitale Schnittstelle (z. B. I2C) geht das aufgrund der wenigen verfügbaren Pins eines ESP-01-Boards nicht. Muss ich mir nochmal Gedanken machen - oder hast du hier einen guten Tipp?
Helmut -. schrieb: > Und der RST vom ESP ist ein Eingang, kein Ausgang. Damit kannste keinen > Transi ansteuern. Das war natürlich Quatsch - danke. Mit Pin 8 (RXD = GPIO3) sollte es wieder funktionieren. Ich müsste es mal testen, aber GPIO2 muss, glaube ich, auch getauscht werden, z. B. gegen TXD (=GPIO1), da GPIO2 beim Booten nicht LOW sein darf. Helmut -. schrieb: > Und PWR_FLAG ist auf AC_L und AC_N vorhanden -> satter Kurzschluss! Ich bin neu bei KiCAD (seit gestern). Ich habe nur so die Möglichkeit gefunden, die Fehler beim ERC zu eliminieren. Diese Fehlermeldung erhalte ich beim Entfernen der PWR_FLAG von AC_N:
1 | Pin ist mit anderen Pins verbunden, wird jedoch von keinem angesteuert: Pin 1 (Passiv) von Bauteil RV1 wird nicht angesteuert. |
Stefan H. schrieb: > oder hast du hier einen guten Tipp? Ja, der ESP macht den Timer und die Tastenabfrage. Wenn der 2. MC zusätzliche Sicherheit machen soll, dann macht das der AVR. Nachdem Einschaltpuls des ESP liefert der AVR eine begrenzte Zeit Low. Das SSR schaltet also nur ein, wenn der ESP high und der AVR low an die LED liefern. Somit schaltet der AVR aus, wenn der ESP es mal vergessen hat. Statt des AVR könnte man aber auch einen Monoflop (74HC123) nehmen.
Peter D. schrieb: > Ja, der ESP macht den Timer und die Tastenabfrage. Ich muss prüfen, ob der Timer auch im Offline-Zustand (keine WiFi-Verbindung mit dem HA-Server) mit ESPHome umsetzbar ist. Andernfalls wäre das natürlich ein No-Go. Peter D. schrieb: > Wenn der 2. MC zusätzliche Sicherheit machen soll, dann macht das der > AVR. Nachdem Einschaltpuls des ESP liefert der AVR eine begrenzte Zeit > Low. Das SSR schaltet also nur ein, wenn der ESP high und der AVR low an > die LED liefern. Die Idee finde ich gut und habe die mal nach meinem Verständis skizziert. Wäre das so korrekt, insbesondere der Pull-Up bei der SSR-Diode? Peter D. schrieb: > Somit schaltet der AVR aus, wenn der ESP es mal vergessen hat. Statt des > AVR könnte man aber auch einen Monoflop (74HC123) nehmen. Das muss ich mir mal anlesen, habe ich noch nie gehört. Im Wiki steht hierzu das:
1 | Für lange Zeiten >1s sollte man besser eine digitale Lösung anstreben, denn sonst werden die Widerstände und Kondensatoren zu groß. |
Hat dieser Satz für dieses Projekt eine Relevanz? Geht das auch mit einem NE555?
:
Bearbeitet durch User
Stefan H. schrieb: > Geht das auch mit > einem NE555? Bei 3,3V? Das sollte mit einem 7555 (also die CMOS Variante) noch gehen, aber wird genauso wie beim 74HC123 ungenau, wenn es um lange Zeiten geht. Als Failsafe ist ein Monoflop aber zuverlässiger als ein MC. Wenn du in deine 'Einschaltpuls für Tiny' Leitung einen 10k - 47k Widerstand einfügst, gibts keine Probleme, egal, welcher der beiden ein oder ausgeschaltet ist. Den Pulldown lässt du weg.
Stefan H. schrieb: > insbesondere der Pull-Up bei der SSR-Diode? Der wirkt ja nur während der Resetphase des Tiny. Und da ist der Tiny-Eingang hochohmig und kann keinen Strom treiben. Ich halte ihn für überflüssig. Du musst auf jeden Fall die Initialisierung des Tinyportpins in der richtigen Reihenfolge machen. Zuerst Input (default), dann Pullup ein, dann auf Output umschalten. Dann bleibt der Pin auf HIGH und danach kannst du mit LOW die SSR-Diode scharf schalten. Was ich aber auf jeden Fall beschalten würde ist der Reseteingang vom Tiny. Der hat zwar intern einen PU, aber du hast oben von 'Sicherheit' geredet; ein Resetpin ist i.A. einer der kritischsten Pins/Netze in einer Schaltung - der kann viel bewirken 😀. Beim ESP kenne ich mich nicht aus; generell gilt aber da das selbe. Stefan H. schrieb: > Im Wiki steht hierzu das:Für lange Zeiten >1s sollte man besser eine > digitale Lösung anstreben, denn sonst werden die Widerstände und > Kondensatoren zu groß. > Hat dieser Satz für dieses Projekt eine Relevanz? Welche Zeiten sind denn angedacht (oder habe ich es überlesen)? Jedenfalls mache ich keine Zeitkonstanten mehr in analog, wenn man den einstelligen Sekundenbereich überschreitet. Nicht nur die BE werden größer, auch Probleme mit der Langzeitkonstanz, mit Leckströmen bei Elkos usw. sind da vorprogrammiert.
Matthias S. schrieb: > Wenn du in deine 'Einschaltpuls für Tiny' Leitung einen 10k - 47k > Widerstand einfügst, gibts keine Probleme, egal, welcher der beiden ein > oder ausgeschaltet ist. Den Pulldown lässt du weg. Erledigt. Hier muss ich aber zugeben, dass ich das nicht verstehe. Wie wird denn der Standardzustand der Einschaltpuls-Leitung (= LOW) definiert, wenn ich keinen Pull-Down einfüge bzw. warum wird das durch den 47k Widerstand gelöst? Matthias S. schrieb: > Als Failsafe ist ein Monoflop aber zuverlässiger als ein MC. Da das die Hauptaufgabe ist, wähle ich lieber den Monoflop, muss ich aber erst noch "lernen". Matthias S. schrieb: > Bei 3,3V? Das sollte mit einem 7555 (also die CMOS Variante) noch gehen, > aber wird genauso wie beim 74HC123 ungenau, wenn es um lange Zeiten > geht. Was sind denn "lange" Zeiten? Ich plane mit max. 90 Minuten Dauerlaufzeit, anschließend ist Schluss. Wenn der ESP dann wieder den Monoflop anschiebt, okay, sonst nicht. Und wie ungenau ist "ungenau" (ein paar Sekunden sind in diesem Anwendungsfall egal)? Ich habe die Funktion des (retriggerbaren) Monoflop so verstanden, dass ich regelmäßig einen neuen Impuls geben muss, damit er wieder von vorne anläuft und nicht ausschaltet. Das wird über die Kapazität eines Kondensators erreicht. Von welchen Zeiten ist denn bei "regelmäßig" auszugehen - jede Sekunde, jede Minute, ...? Das kann ich noch nicht ganz nachvollziehen.
HildeK schrieb: > Stefan H. schrieb: >> insbesondere der Pull-Up bei der SSR-Diode? > Der wirkt ja nur während der Resetphase des Tiny. Und da ist der > Tiny-Eingang hochohmig und kann keinen Strom treiben. Ich halte ihn für > überflüssig. Das macht Sinn - wenn ich vom Tiny LOW ausgebe, will ich ja auch LOW... HildeK schrieb: > Du musst auf jeden Fall die Initialisierung des Tinyportpins in der > richtigen Reihenfolge machen. Zuerst Input (default), dann Pullup ein, > dann auf Output umschalten. Dann bleibt der Pin auf HIGH und danach > kannst du mit LOW die SSR-Diode scharf schalten. Warum nicht direkt INPUT_PULLUP? Einfach nur interessehalber, auch wenn der Monoflop evtl. interessanter weil sicherer ist (bzw. nach bisherigen Aussagen zu sein scheint, kann ich noch nicht ganz bewerten). HildeK schrieb: > Was ich aber auf jeden Fall beschalten würde ist der Reseteingang vom > Tiny. Der hat zwar intern einen PU, aber du hast oben von 'Sicherheit' > geredet; ein Resetpin ist i.A. einer der kritischsten Pins/Netze in > einer Schaltung - der kann viel bewirken 😀. > Beim ESP kenne ich mich nicht aus; generell gilt aber da das selbe. Nur wie? Den könnte ich ja nur vom ESP aus beschalten, den ESP-RST selbst jedoch nicht?! HildeK schrieb: > Welche Zeiten sind denn angedacht (oder habe ich es überlesen)? > Jedenfalls mache ich keine Zeitkonstanten mehr in analog, wenn man den > einstelligen Sekundenbereich überschreitet. Nicht nur die BE werden > größer, auch Probleme mit der Langzeitkonstanz, mit Leckströmen bei > Elkos usw. sind da vorprogrammiert. Interpretiere ich das richtig dahingehend, dass bei einer angedachten Laufzeit der Schaltung von max. 90 Minuten die Lösung mit dem Monoflop doch nicht so das Wahre ist?
:
Bearbeitet durch User
Mir fällt aber gerade auf, dass der Monoflop ja nur die Abschaltautomatik lösen würde, nicht jedoch die Steuerung der Betriebsmodi (= verschiedene Heizstufen durch verschieden lange Schaltzeiten des SSR, quasi seeehr langsames PWM im ein- bis zweistelligen Sekundentakt). Annahme (exemplarisch): Heizstufe 1 = 15 Sekunden 230 V, 15 Sekunden 0 V Heizstufe 2 = 15 / 10 Heizstufe 3 = 15 / 5 Heizstufe 4 = 15 / 0 - Einschaltimpuls von ESP an MF - MF läuft für x Sekunden, abhängig von Heizstufe - Erneuter Einschaltimpuls nach x Sekunden, abhängig von Heizstufe - Wiederholung der Impulse bis zum Erreichen der gewünschten Einschaltdauer - Abschalten in jedem Falle nach 90 Minuten, außer es kommt dort nochmal ein neuer Impuls Insbesondere bei der Kombination von zwei verschiedenen Timern (Heizstufe + Abschaltautomatik) zweifle ich an der Umsetzung mittels ESPHome... das muss ich prüfen. Oder habe ich da irgendetwas übersehen?!
Es gibt 2 Möglichkeiten: Der ESP liefert einen Herzschlag, z.B. 10Hz, das kann man mit einem Monoflop überwachen. Oder der AVR überwacht die gesamte Zeit von 90min und schaltet danach ab, egal, was passiert. Der AVR könnte dann auch ein Reset an den ESP schicken, um ihn zu reaktivieren.
Peter D. schrieb: > Der AVR könnte dann auch ein Reset an den ESP > schicken, um ihn zu reaktivieren. Andersrum, oder? :-)
Stefan H. schrieb: > Andersrum, oder? :-) Die paar Timerzeilen in C sollte man auf dem AVR absturzsicher hinkriegen. Was da auf dem ESP läuft, ist deutlich komplexer und daher ein Absturz deutlich wahrscheinlicher.
Stefan H. schrieb: > Was sind denn "lange" Zeiten? 90 Minuten sind in jedem Fall lang. Man kann mit CMOS schon lange Monoflops bauen, aber über 5 - 10 Minuten sind immer 'lang'. Aber so ein 'Monkey lives' Signal vom ESP kann ja das Mono immer wieder retriggern und damit wach halten. Fällt das Signal aus, weil der ESP Schluckauf hat, fällt das Monoflop nach ein paar Minuten ab. Übrigens sind weder 7555 noch 74HC123 bei 3,3V so richtig geeignet. Am besten sind da CMOS Chips wie der CD4098, CD4528 oder CD4538. Die arbeiten von 3-15V ohne Knurren. Dabei ist der 4538 der für lange Zeiten empfohlene.
Matthias S. schrieb: > 74HC123 bei 3,3V so richtig geeignet. Das Datenblatt ist da anderer Meinung: "Wide supply voltage range from 2.0V to 6.0V" Für lange Zeiten gibt es noch den Timer 4536 mit Vorteiler 2^24. Der kann aber bei 3,3V die LED nicht direkt treiben. https://www.onsemi.com/pub/Collateral/MC14536B-D.PDF
Stefan H. schrieb: > Warum nicht direkt INPUT_PULLUP? Das meinte ich doch. Wenn man weg von Arduino in C programmiert, dann geht das halt nur sequentiell - zuerst Input (default nach dem Reset), dann Pullup. Muss der Arduino aus INPUT_PULLUP auch so machen. Stefan H. schrieb: > Nur wie? Den könnte ich ja nur vom ESP aus beschalten, den ESP-RST > selbst jedoch nicht?! Einfach einen R nach VCC (5k-10k) und einen C nach GND (10n-100n). Das müsste am ESP genau so gehen; ich kenne den aber nicht. Somit ist der Resetpin einigermaßen niederohmig nach HIGH gezogen und der Kondensator schluckt eventuell eingestreute Störungen. Einfach offen lassen ist eindeutig die schlechtere Methode. Stefan H. schrieb: > Interpretiere ich das richtig dahingehend, dass bei einer angedachten > Laufzeit der Schaltung von max. 90 Minuten die Lösung mit dem Monoflop > doch nicht so das Wahre ist? Korrekt, das wirst du mit einem Monoflop nicht lösen können. Alternativ mit einem Zählerbaustein , wie den 4536, schon. Ich würde einen Tiny trotzdem vorziehen, da tut es der kleinste; schon wegen der Gehäusegröße :-).
Peter D. schrieb: > Die paar Timerzeilen in C sollte man auf dem AVR absturzsicher > hinkriegen. Was da auf dem ESP läuft, ist deutlich komplexer und daher > ein Absturz deutlich wahrscheinlicher. Das stimmt. Nur erschließt sich mir nicht, was du mit Peter D. schrieb: > Der AVR könnte dann auch ein Reset an den ESP > schicken, um ihn zu reaktivieren. meinst. Warum sollte der AVR den ESP reaktivieren? Der ESP läuft dauerhaft und der AVR schaltet nach 90 Minuten ab. Peter D. schrieb: > Für lange Zeiten gibt es noch den Timer 4536 mit Vorteiler 2^24. Der > kann aber bei 3,3V die LED nicht direkt treiben. Dazu belege ich mich gerade. Matthias S. schrieb: > Fällt das Signal aus, weil der ESP Schluckauf > hat, fällt das Monoflop nach ein paar Minuten ab. An sich finde ich das schon eine interessante Lösung, vorausgesetzt ESPHome macht das mit - das teste ich jetzt gleich mal. Eine Sicherungsmöglichkeit wäre doch, über den ESP mittels NPN-BFJ den AVR zu betreiben. Fällt das Signal aus, hat der AVR keinen Saft und ist aus. Wobei das ja grundsätzlich wieder dasselbe wie mit dem Relais wäre: Kontrolle der Spannungsversorgung des Tiny. HildeK schrieb: > Korrekt, das wirst du mit einem Monoflop nicht lösen können. Alternativ > mit einem Zählerbaustein , wie den 4536, schon. Ich würde einen Tiny > trotzdem vorziehen, Warum würdest du denn den AVR dem 4536 vorziehen? Generell fände ich es ja schon interessant, mich mal mit etwas Neuem zu beschäftigen (hier: CD4536), es scheint mir jedoch ziemlich komplex zu sein... Hauptmerkmal muss die Sicherheit sein. Wenn nun also der 4536 nicht retriggert wird, fällt er aus. Wenn der AVR keinen Saft mehr bekommt, fällt er auch aus. Ist das nicht gleichwertig?
Stefan H. schrieb: > Warum würdest du denn den AVR dem 4536 vorziehen? Bestenfalls Softwareaufwand, die HW ist in einem z.B. DIL8/SOIC8 zu Hause, minimale externe Beschaltung. Und je nach Interesse könnte man auch einen Handshake mit dem ESP unterbringen, Motto: keep alive ... Meist fällt einem noch was ein, was auch ganz nett wäre in dem Zusammenhang.
Ich habe eure Anmerkungen jetzt mal übernommen und - mit dem AVR als Timer - umgesetzt. Im reinen 3V3-System funktioniert alles wie erwartet. Nun kommt allerdings noch das "schwierige" 230 VAC System. Mein SSR schaltet max. 2 A, es sollte also für meinen ersten gewünschten Anwendungsfall dieser Steuerung funktionieren. Die bisherige Heizdeckensteuerung hat, abgesehen von den verbauten leistungsarmen Widerständen, zwei BT131-Triacs und zwei Entstörkondensatoren, vor allem einen Mikrocontroller (umbeschriftet und ohne Transformator, Linearregler etc.) und einen großen ca. 16x4,5mm Widerstand (27 Ohm) verbaut. Ich habe hier eine Heizdecke, die (gemessen) 0,5 A bei 230 V zieht, also ca. 115 W. Ich kenne nur den bereits geregelten Strom, nicht jedoch was die Heizdecke ohne ihre Standard-Steuerung ziehen würde. Ich wüsste nun nicht, wie ich auf dieser Grundlage die notwendige Strombegrenzung für meine Schaltung dimensionieren sollte - ist das so überhaupt möglich? Wenn nein, wie bekomme ich die notwendige Widerstandsdimensionierung errechnet? Mir fiele nur U=RxI ein, das würde zu R=440 Ohm führen. Die Verlustleistung wäre P=I^2xR, also 110 W. Das bekomme ich doch niemals mit einem Widerstand gelöst?! Die Elemente auf der Load-Seite des SSRs würden dann nach meinem Verständnis vereinfacht wie im angehängten Schaltbild aussehen (mit Ausnahme der hinzugefügten Sicherung), außer dass der Schalter eben nur max. 2 A abkann. Das Schaltbild entspräche meiner Steuerung, nicht der Standard-Steuerung der Decke.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.