PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Langsame Infrarot Frequenz auswerten an Atmega



xxrider
03.10.2010, 21:39
Hallo,
Mich stört dass an meinem neuen Haus-Stromzähler kein Momentanverbrauch sichtbar ist, es ist ein ganz moderner, ohne Drehrad, nur digitalanzeige in kWh.
Dafür gibt er noch (unsichtbare) IR-IImpulse aus, deren Abstände proportional zur abgenommenen Leistung sind (1Imp- = 1Wh).
Nun möchte ich die Abstände der IR Impulse messen, mit welcher Hardware mache ich das am besten?
Gibt es einen IR Empfänger, der ziemlich direkt einen Atmega Eingang schalten kann (0-5V)?
Viele Grüße
xxrider

radbruch
03.10.2010, 21:48
Ist das ein moduliertes IR-Signal? Hast du dazu eine Beschreibung/ Datenblatt/Link/Zählertyp/weitere Infos?

xxrider
03.10.2010, 22:22
Ist das ein moduliertes IR-Signal? Hast du dazu eine Beschreibung/ Datenblatt/Link/Zählertyp/weitere Infos?

nein, es ist nichts moduliertes, es ist ganz einfach.
1 IR Impuls dauert 0,20 Sekunden und entspricht 1 Wattstunde.
Die Frequenz der Impulse entsprechen der Leistung. Also z. B. Abstand der Impulse 1 Sekunde entspricht 3600 Imp./h, sind also 3600Watt.

Besserwessi
03.10.2010, 22:47
Wenn da nichts weiter Moduliert ist, kann man einen einfachen Fototransistor, bevorzugt mit IR Filter nehmen. Dazu dann nur noch ein Widerstand. Ohne Modulation muß man aber Fremdlicht Abschirmen.

xxrider
04.10.2010, 06:19
kannst du mir nen link geben?
und wie beschalten, dass er auf 5 V geht?
Fremdlicht dürfte keine Problem sein, weil es im Keller ist.

Besserwessi
04.10.2010, 17:53
Fototransistoren mit IR Filter gibt es viele. Die unterscheiden sich auch kaum, und dann hauptsächlich im Öffnungswinkel und der Bauform. Da sollte fast jeder gehen. Mögliche Typen wären z.B. SFH 309 FA, sfh3100f .
Da reicht auch die Versorgungsspannung des Controllers. Einfach den Fototransistor von GND zum Eingang, und dann ein Pullup-Widerstand (ca. 10 K ... 200 K, abhängig von der Signalstärke) dazu.

xxrider
04.10.2010, 20:47
danke,
hab heute 2 gekauft (SFH 300 FA 3/4) und hoffe die gehen auch.
werde mich dann bald mal ranmachen und verschalten, ist ja gar nicht sooo schwer :)

Besserwessi
04.10.2010, 21:42
Die SFH300FA sollten gehen.

xxrider
05.10.2010, 18:45
habs jetzt probiert, leider ohne Erfolg.
Ich hab mich auch mit der Impulslänge vertan und nochmal ins Datenblett gesehen - es ist nur eine Impulslänge von 2ms, vielleicht schaltet der Transistor nicht schnell genug den pin auf 0.
Gibt es schnellere Fototransistoren?
Vielleicht liegt es ja auch an der Frequenz des IR Impulses, die ich leider nicht kenne, vielleicht ist der Fototransistor nicht empfindlich genug?

Besserwessi
05.10.2010, 20:16
Ein 2 ms Puls sollte auch noch gehen. So ganz viel Unterschied ist zwischen den Fototransistoren bei der Geschwindigkeit auch nicht. Die Geschwindigkeit hängt aber von der Schaltung drumrum ab, und die ist mit dem hochohmigen Pullup eher langsam. Wenn es sein muß, könnte man es da schneller machen mit einem externen Transimpedanzverstärker (z.B. mit Operationsverstärker aufgebaut).

Es könnte sein, das die Intensität nicht ausreicht. Auch hier könnte man mit einem externen Verstärker nachhelfen, oder ggf. auch schon einfach indem man den Komperatoreingang nutzt.

Bei den IR Wellenlägen gibt es nicht viel auswahl. Das wird irgendwas zwischen 840 nm und 950 nm sein - das paßt alles, die Fotoransistoren gehen von etwa 750 nm - 1000 nm.

Funktioniert den das Programm und die Schaltung wenigstens im Prinzip, also mit einer anderen IR LED oder ggf. auch einer Glühbrine aus kurzer Entfernung ?

Thomas$
05.10.2010, 20:24
post mal den code
und anderer test
led und fototransitor in reihe die led sollte schwach aufblitzen

Besserwessi
05.10.2010, 20:30
Für die LED wird der Strom vom Fototransistor vermutlich recht knapp werden, das müßte dann schon eine extra helle Type sein. Ich würde eher mal eine Glühlampe davor probieren. Eigentlich müßte es da noch reichen um die 100 Hz zu finden.

xxrider
05.10.2010, 21:14
hallo,
hier ist der code:



Stop Timer1

A = 0
Cls
Do

Locate 1 , 1
Lcd "Leistung in Watt"
Locate 2 , 1
Lcd "......Scan......"

Loop Until Pina.0 = 0

Start Timer1
Waitms 500

Do
If Pina.0 = 0 Then
Waitms 300
B = A
A = 0

B = 36000 / B
Cls
End If


Locate 1 , 1
Lcd "Momentanleistung"
Locate 2 , 1
Lcd " " ; B ; " Watt"


Loop


Isr_von_timer1:
Timer1 = 53036
A = A + 1
Return


das funktioniert im Prinzip schon.
mit einer Taschenlampe kann ich einen Impuls auslösen, nur nicht mit der Diode des Zählers.
Wie kann ich es am einfachsten schaffen?
wie funktioniert der Komparatoreingang (-das klingt mir am einfachsten) und wie müsste ich ihn beschalten?

Besserwessi
06.10.2010, 17:17
Das Programm könnte ein problem sein. In der Schleife wird die meiste Zeit, vermutlich deutlich mehr als 2 ms, mit der LCD-ausgange verbraicht. Wenn eine kurzer Puls in der Zeit kommt, wird er nicht erkannt. Es ist daher eher unwahrscheinlich das ein kurzer Puls erkannt wird.

Nur die Erkennung des ersten Pulses (vor der späteren Schleife) sollte gehen.

Der Komperatoreinagn geht so ähnlich wie der normale Einagng. Der 2. Eingang dient als Vergleichsschwelle und kann benutzt werden um die Empfindlichkeit einzustellen.

xxrider
06.10.2010, 18:26
ah, danke.
und wie bekomme ich die anzeige in den griff?
ich könnte vielleicht die Anzeige in die if-endif bedingung mit reinpacken.
dann wird nur beschrieben, wenn auch wirklich ein impuls gekommen ist, und erst wieder bei einem neuen Impuls überschrieben.
werde ich mal probieren.

Besserwessi
06.10.2010, 19:38
Die LCD Ausgabe mit in den IF Teil wäre möglich. Da hat man dann höchstens die Einschränkung das die Pulse nicht schneller als alle etwa 20-50 ms kommen dürfen - jenachdem wie lange die LCD-ausgabe dauert.

Die andere, aber kompliziertere Lösung wäre es die Zeitmessung ganz in einen interrupt zu verlegen. Dann würde auch ein Puls wärend der LCD-ausgabe erkannt.