Hallo Bastler, da ich zum Suchen oder Google zum Finden für mein Problem offensichtlich zu doof ist, schreibe ich hier mal eine Frage rein: Ich generiere aus der 230V Netzspannung ein Rechtecksignal, welches ich für ein paar Basteleien verwende (Frequenzmessung, Phasenanschnitt, etc.). Verwendet wird ein LM358 OPV, der als Komparator die gepulste Gleichspannung eines Netztrafos mit Masse vergleicht (Phasenversatz wird mit Spannungsteilern ausgeglichen). Dieses Verfahren funktioniert recht gut, bis... bis zum jetzt folgenden Satz: leider versauen mir Störungen (Einschalten von Waschmaschine, Ventilator, etc.) immer wieder dieses TTL-Signal. Während das Signal 0V besitzt, kommen kleine Peaks auf 5V und während der 5V kleine Peaks auf 0V. Ich habe schon mit Kondensatoren versucht, das Signal etwas Träger zu bekommen, allerdings bringt das nur geringen Erfolg. So sieht das Signal ungefähr aus: ____|__----|--____|__----|--____|__ 0V 5V 0V 5V 0V Gibt es Bauteile, die diese Störungen rausfiltern, bzw. OPV die Träger sind, als der LM358, damit nicht kleinste Störungen den OPV durchschalten? Da ich die TTL-Spannung meist mit einem µC verwende, würde mir auch ein Tipp genügen, wie ich diese kleinen Peaks irgendwie entprellen(?) kann. Ich arbeite immer mit 50Hz. Meine Idee, einen Timer loslaufen zu lassen, wenn eine "falling Edge" einen Interrupt angesprungen hat, habe ich schnell wieder verworfen, da ich teilweise nur noch auf die Peaks getriggert habe. :-/ Hat hier vielleicht jemand eine resistentere Schaltung auf Lager? Wenn man bei Google "ZeroCrossing Detection" eingibt, dann bekommt man zwar etliche Schaltpläne, aber keiner filtert diese Störungen korrekt. Besten Dank! mfg, Carsten
Eine Möglichkeit wäre ein Tiefpass der die Spikes aus dem TTL Signal filtert. Du solltest dir anschauen warum diese Spikes entstehen. Ein schmitttrigger ist wahrscheinlich besser. CU Wolfram
Hi Wolfram... Die Spikes entstehen hauptsächlich aufgrund von Lasteinschaltungen und Phasenanschnitten (oft auch auf anderen Phasen, sodass die Störungen zudem schön über die Zeitachse verteilt liegen und mehrere Spikes auf das TTL-Signal draufspielen). Einen Tiefpass habe ich ja schon versucht: ich habe einen 470 Ohm Widerstand in der Zuleitung zum µC zusammen mit einem 0,1µF Elko gegen Masse drangehängt, dadurch wurden die Störungen gedämpft, aber die Spikes sind teilweise bis +5V im 0V-Bereich, und das kann der kleine Elko nicht ausgleichen. Größere Kondensatoren verwischen die Flanken des TTL-Signals zu stark. Ach ja: Verschiebe ich denn mit dem Schmitt-Trigger das TTL-Signal nicht horizontal auf der x-Achse? Die ZC-Eigenschaft des normalen Komparators war z.T. sehr angenehm für einige Schaltungen? Ich werde das heute Abend mal versuchen. -In des LM358 auf Masse, +In an Schleifer z.B. eines 100k Potis, welches als Spannungsteiler zwischen Ausgang des LM358 und Wechselspannung hängt. So richtig, oder? Mir ist da auch noch eine Idee gekommen: Ich hatte aus dem Printtrafo nur eine Hälfte der Sinusspannung verwendet. Wenn ich diese Spannung über Dioden auf die andere (negierte) Hälfte addiere, so müssten doch die Störungen, die ich im 0V Teil des TTL-Signals erhalten habe, verschwinden, oder? Ich werd mal ein bisschen Basteln... Danke schonmal soweit! :D ...Carsten
Normalerweise (z.B. beim Atmel AVR) brauchst du den OP garnicht. Leg einfach die 230V über einen GROSSEN Widerstand (besser du schaltest wg. der Spannung mehrere in Reihe) an einen Pin (siehe dazu auch Application Note AVR 182 von Atmel, www.atmel.com). Die Pins sind über Dioden vor Überspannung geschütztz und außerdem haben sie eine Schnitt-Trigger Funktion. Zum Filtern könntest du die Methode verwenden, dass du pro Halbwelle mehrmals den Pegel prüfst und die Flanke nur als gültig auswertest wenn du immer den gleichen Logikpegel gemessen hast. So kannst du Spikes die ja nur kurz sind von Halbwellen unterscheiden. Viel Glück Remo
Hmm, ich werde immer kribbelig, wenn ich 230V an einen Chip anlege, an dem z.B. auch Tasten, LEDs und vor allem PCs per RS232 hängen... ich werde erst mal die Möglichkeit von Wolfram ausprobieren und dann mal (falls dieses dann nicht klappen sollte) die Spannung direkt an den Atmel hängen... :D
Carsten, die Idee mit der zweiten Haelfte der Sinuskurve kannst du gleich wieder vergessen. Beide Wicklungen schwingen ja in die gleiche Richtung. Invertierst du eine und addierst sie zur anderen ist das Ergebnis konstant 0. Die Differenzbildung funzt nur dann wenn zuerst das Differenzsignal gebildet wird und erst danach der Fehler gleichmaessig auf beide Signale induziert wird. Dein 470/100nF Teifpass hat bei ca. 21 kHz ein Daempfung von 6dB. Damit bekommst du deine Stoerung nicht weg. Was du brauchst ist ein wirklich steiler Tiefpass mit einer Grenzfrequenz von 50Hz -> grosser Widerstand + grosser Kondensator. Dahinter dann der Schmitt-Trigger (sollte der uC keinen solchen schon im Eingang haben). Auf jeden Fall bekommst du eine Phasenverschiebung. Der Tiefpass bringt sein mit und ein Schmitt-Trigger ebenfalls.
Gibt es denn bei dieser Problematik nicht bereits ein funktionierendes Schaltungchen? Das ist doch sicher kein so ausgefallenes Problem. Da wird doch wohl eine praktikable Lösung irgendwo im Internet, oder in irgendeiner Schublade liegen? g
Ich kenne keinen, der ernsthaft versucht, aus dem Netzstrom irgendeine Art von Referenz zu bauen. Nimm nen 1 Mhz Quarz und teile den runter, bis du auf 50 Hz kommst.
Nicht direkt an den Controller, sondern ueber einen Widerstand. Der Controller bekommt keine 230V.
[Nicht direkt an den Controller, sondern ueber einen Widerstand. Der
Controller bekommt keine 230V.]
>DAS< ist mir klar, nur ist keine galvanische Trennung mehr vorhanden!
Ich benötige für meine Projekte halt eine Netzsynchronisation, wenn ich
in meine Anwendungen einen Phasenanschnitt einbauen möchte
(Lüfterdrehzahl von 230V Lüftern, Lampen, etc.)
Zudem funktioniert eine Messung der Netzfrequenz doch nicht ohne
Netzsync, oder g
Hi Carsten Versuchs doch mal mit einem switched capacitor filter. Die Dinger sind extrem steil und einfach in der Handhabung. Vielleicht kannst Du Dir ja damit ein Tiefpassfilter bauen, welches nur das Nutzsignal durch lässt. Du kriegst sie von Linear, Maxim und National. Google Dich mal durch. Gruss Andy
Sicher kann man an Deinem analogen Frontend noch vieles anders/besser machen. Per Software ist folgendes Verfahren sehr robust, Stichwort PLL - geht in etwa so (eine einfache Variante): Du nimmst Dir einen Timer, dessen Frequenz Du zwischen zwei Frequenzen im laufenden Betrieb umschalten kannst, z.B. f1=99.9 Hz, f2=100.1 Hz. Dieser Timer löst alle 0.01 s einen Interrupt aus. In der Int-Routine liest Du das Sinus-ähnliche Signal ein, x=0 : "kleiner als Schwellwert", x=1 "größer als Schwellwert". Alternierend reagierst Du jetzt. Bei den "geraden" Interrupts schaltest Du bei x=0 auf die hohe Frequenz, bei x=1 auf die kleinere. Bei den "ungeraden" Interrupts gerade umgekehrt. Nach nur wenigen Int's bist Du automatisch perfekt mit dem Signal synchronisiert. Gruß, Andreas
Dieses PLL-Verfahren könnte ich ja theoretisch mit der Idee von Remo umsetzen, oder? Ich gebe dem Atmel über entsprechende Widerstände die 230V Sinuskurve und lese dann mit den µC eigenen Funktionen, ob die internen Routinen synchron laufen. Hmm, dass bedeutet, ich muss mich nochmal extrem mit Assembler auseinandersetzen... danke für die weitere Option. Werde mal rumbasteln. cu, Carsten :D
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.