Wie genau sind denn die zwei Widerstände? Wie genau ist 1.0 / 561.0? Da sollte der Compiler eine Konstante bilden, bevor das mit vout multipliziert wird.
230v / 560k = 0,5 mA -> 0.1 W
Such mal, ob du was über die zulässige Spannung an deinem 560K Widerstand findest, und wenn du was von 100V findest, lass die Finger davon. (Generell, Wörtlich sowieso)
Bei der Schaltung verbietet es sich, mit dem Finger zu fühlen ob der Widerstand warm wird, aber wenn der Fehler bei höherer Spannung höher wird, könnte eine Temperaturabhängigkeit vorhanden sein.
Miss mal mit dem DMM, wie die Einstellung am Regeltrafo sich auf die Spannung an A0 auswirkt, und bedenke, dass das Messgerät nur die Hälfte von 0,7 (Halbwelle und eff.-Wert ) vom Spitzenwert anzeigen sollte, den der Arduino liefert.
wenn ich mein Fluke 289 auf LoZ einstelle wird der Regeltrenntrafo leicht belastet und dann stimmt auch die Spannung.
Dann kann ich mal Leiterplatine Ätzen und meine 3 Phasenüberwachung kann in betrieb gehen.
@michael_x Widerstände sind 0,1% und sind für 350Vac freigegeben nachher sind 2 in Serie 1,12MOhm und warm wird nichts hab da schon vorher mit der der Wärmebildkamera geschaut, dass wäre ja auch mein erster Gedanke gewesen.
Die Unterschiede zwischen N, PE und Arduino GND kennst du sicher, wenn du dich nicht mehr hinter einem Trenntrafo versteckst. Lass dich nicht von der Elektriker-Gilde hier erwischen.
Niemals anfassen und nur mit galvanisch getrennten Programmiergerät drauf zugreifen.
da es nachher in einen 2DIN Hutschienengehäuse ist, kann das auch keiner anfassen
Du machst mehrere Fehler.
Wieso teilst Du die Spannung von max 230V eff ( 325V Spitze) auf 0,58V Spitze runter? Bei 2,5 Referenzspannung sind das gerade mal 237 ADC, das heißt nichtmal 1 ADC pro Volt.
Dein Spannungsteiler hat nur max 0,5 mA Querstrom. Damit die Spannung nicht einbricht, darf nur 0,05mA gezogen werden um den 0,1µF Kondensator auf Endspannung und für den internen Sample and Hold Kondensators des A/D Wandlers zu laden. Da ist aber mehr Strom nötig.
Bei jeder Spannungsänderung braucht es relativ viel Zeit damit der 0,1µF Kondensator auf Endwert geladen wird.
Wieso machst Du 100 Messungen und nimmst die höchste? Wenn der erste Meßwert zu hoch ist, weil die Spannung runtergeregelt wird, wird sich das system erst entladen muß, hast Du einen falsche Spannung. Wennschon 100 Messungen und den letzten Meßwert nehmen.
1024 wäre richtig.
Du schließt wahrscheinlich den Neutralleiter des Regeltrenntrafo über GND der 5V auf Erde. Das bringt Probleme.
Lösungsversuch: Nimm einen 230V-12V Transformator (ich meine da einen transformator nicht ein Netzteil) und schließe den Spannungsteiler an die 12V an. Bemesse den Spannungsteiler daß 5mA Querstrom fließt. Die 0,7V der Gleichrichterdiode wird Dir zwar einen kleinen Fehler einfügen aber der ist für die meisten Spannungsmessungen herausrechenbar.
Bereits in der Schule wurde mir eingepleut Schaltungen Idiotensicher zu machen, Das heißt die Schaltung muß auch in der schlimmsten denkbaren Falschhandhabung sicher Funktionieren / Sicher sein. Das ist Deine Idee: Keiner Anfassen und mit isolierten Programmiergerät reines Wunschdenken und einfach fahrlässig.
Da die Widerstände von 560k Ohm auf 2,2MOhm vergrößert werden sind meine Erörteungen noch mehr gültig.
und da kommt auch nachher keiner ohne weiteres zum Programmierport.
Nach deiner Meinung wäre dann jeder Shelly fahrlässig aber man kann auch die Dinger im eingebauten Zustand flashen nur sollte man ein galvanisch getrennten Programmierer dazu verwenden
Der wird nicht bestückt, war aber in meinen ursprünglichen Design drinnen damit die Spannung geglättet wird, brauch ich aber in dem Fall nicht.
Da ich durch die 100 Durchgänge / 20ms gesamt immer die maximal Spannung pro Periode hab. Peaks werden auch noch behandelt wenn die Spannung länger wie 1 Sekunde über 265Vac / unter 190Vac oder die Differenz der 3 Phasen mehr als 20Volt beträgt wird auf Notstrom umgeschaltet.
Hab jetzt interne REF Spannung mit 1,1V aktiv
Spannungsteiler auf R1=1,12Mohm und R2= 2,2k
ergibt einen DC PEAK von
238mV bei 100Vac
462mV bei 200Vac
531mV bei 230Vac
923mV bei 400Vac
Nein, Du mißt durch den 0,1µF Kondensator nicht den Momentanwert der sinusförmigen Spannung sonder irgend eine geglättete Spannung. Der Kondensator wird wegen der Gleichrichterdiode nur geladen und bei einer niedrigeren Spannung nicht entladen. Der Kondensator wird einzig duch den Stromverbrauch des AD/Wandlers und des kleineren Widerstandes des Spannungsteilers entladen.
Wenn Du von zB von 200v auf 300V regelst, dann mißt Du am Anfang zu wenig, weil der 0,1µF und der interne Sample and Hold Kondensator im A/D Wandler des Atmega328 noch aufgeladen werden müssen und dies in einem Meßzyklus nicht passiert. Nach x Meßzyklen ist dann der besagte Kondensator auf Endwert geladen und die Messung stimmt.
Wenn Du aber von 300V auf 200V regelst mißt Du mit der ersten Messung noch die 300V und somit auch nach den anderen 99 Messungen wird nur die erste Messung als Messwert übergeben.
Ein Meßzyklus des A/D Wandler braucht Zeit. Mit 100 mal
delayMicroseconds(200);
bekommst Du nicht eine Periode (Vollwelle) sondern mehrere.
Wenn Du den Momentanwert der Wechselspannung messen willst, dann entfernen den Kondensator und nimm einen Impedanzwandler.
Hoffe Du das war jetzt verständlicher als das erste mal als ich das geschrieben habe.
@michael_x sind die 120µs Erfahrungswerte oder kann man das auch genau berechnen?
Im Datenblatt wird ja von 13 -260µs geschrieben, konnte da aber nichts genaueres finden.
Ist jetzt bei meinen Anwendungsfall nicht wirklich relevant da ja Anzugs und Abfall verzögert wird.
Platine und Gehäuse ist fertig Software wird noch optimiert