Forum: Mikrocontroller und Digitale Elektronik Atmega Netzfrequenz messen


von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte an einem Atmega alle 20 Millisekunden ein Register 
Inkrementieren nun habe ich mir gedacht, das ich dazu einfach die 
Netzfrequenz nutzen kann.

http://de.wikipedia.org/wiki/Netzfrequenz#Netzzeit

Ich habe dazu einfach mal einen Schaltplan entwickelt, und wollte fragen 
ob das so Funktioniert wie ich mir das gedacht habe, denn ich habe nur 
wenig erfahrung mit Optokopplern.

Softwaretechnisch ist das ja kein großes Problem, das läuft dann über 
einen Interrupt.

Gruß
jens

von Dennis S. (bzzzt)


Lesenswert?

Lass doch den Optokoppler weg und schließe den AVR-Pin mit einem 
100k-Widerstand direkt an die Sekundärseite des Trafos.

Falls du auf den Optokoppler bestehst: Der LED im Optokoppler fehlt ein 
Vorwiderstand. So brennt sie dir durch.

von g457 (Gast)


Lesenswert?

> ich möchte an einem Atmega alle 20 Millisekunden ein Register
> inkrementieren

Wieso nicht einfach per Timer? Spart externe Hardware und kommt frei 
Haus. Die kurzfristige Genauigkeit ist wesentlich besser, erst wenns 
richtig(tm) langfristig laufen soll wäre das anders.

> Schaltplan

..der PC817 wirds wohl nicht sehr lange machen..

von Spess53 (Gast)


Lesenswert?

Hi

>denn ich habe nur wenig erfahrung mit Optokopplern.

Merkt man. Der Optokoppler braucht am Eingang, wie jede Led einen 
Vorwiderstand. Außerdem muss eine Diode antiparallel zur LED geschaltet 
werden.

MfG Spess

von nicht "Gast" (Gast)


Lesenswert?

ach ich weiß nicht, 12V über nur einen Widerstand an den Controller? 
Und, haben die nicht interne pull ups?

Wenn dann schon lieber über einen Spannungsteiler, der das auf 5/3,3V 
runterbricht + Diode um die negative Spannung wegzufiltern.

Grüße,

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Danke für eure schnellen Antworten.

Ich habe den Schaltplan jetzt einmal Abgeändert und Die Diode D5 und den 
Widerstand R2 hinzugefügt.

Spess53 schrieb:
> Hi
>
>>denn ich habe nur wenig erfahrung mit Optokopplern.
>
> Merkt man. Der Optokoppler braucht am Eingang, wie jede Led einen
> Vorwiderstand. Außerdem muss eine Diode antiparallel zur LED geschaltet
> werden.
>
> MfG Spess

habe ich mal gemacht.

g457 schrieb:
> Wieso nicht einfach per Timer? Spart externe Hardware und kommt frei
> Haus. Die kurzfristige Genauigkeit ist wesentlich besser, erst wenns
> richtig(tm) langfristig laufen soll wäre das anders.

die kurzfristige genauigkeit ist nicht wichtig, brauche über längere 
Zeit eine relativ genaue Zeitbasis.

von Jens (Gast)


Lesenswert?

Upps, jetzt habe ich das Bild zweimal hochgeladen, sorry.

von Werner (Gast)


Lesenswert?

nicht "Gast" schrieb:
> ach ich weiß nicht, 12V über nur einen Widerstand an den Controller?

Dann guck dir mal das µC-Datenblatt und die App.Note AVR182 von Atmel an 
- speziell die Funktion der Dioden gegen VCC und Gnd.

von Peter D. (peda)


Lesenswert?

Jens schrieb:
> ich möchte an einem Atmega alle 20 Millisekunden ein Register
> Inkrementieren nun habe ich mir gedacht, das ich dazu einfach die
> Netzfrequenz nutzen kann.

Das ist alles andere als einfach. Es können durchaus Perioden ausfallen 
oder Störimpulse beim Schalten großer Lasten entstehen.

Du müßtest daher mit dem internen Timer eine Art Software-PLL 
programmieren, die dann fehlende Impulse einfügt bzw. Störimpulse zur 
falschen Zeit verwirft.

Oder Du baust einen 50Hz LC-Resonanzkreis hoher Güte vor den 
Optokoppler.


Erzähl dochmal, wozu Du das brauchst.
Die einfachste Lösung ist, einen der Timer des AVR zu nehmen.


Peter

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
Noch kein Account? Hier anmelden.