PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LM2907 Fragen



paul-stanley
07.03.2008, 10:04
guten morgen zusammen,
ich möchte einen lichtsensor in meinen µ controller einlesen. leider liefert der regensensor nur eine frequenz. der frequenzbereich ist 50 hz - 1200 hz.
ich hab nun einen baustein gefunden der mir frequenz in spannung wandelt. allerdings habe ich probleme beim berechnen der widerstände und kondensatoren. eingespeist wird der lL 2907 mit konstant 12,5 V. am ausgang sollten dann 0 - 5 V kommen, da ich den wert im ADC port einlesen will.
könnte mir bitte jemand weiterhelfen bei der berechnung der bauteile ? vielleicht ist es auch möglich gleich in die schaltung einen spannungsteiler zu integrieren.



vielen dank im voraus.

gruss martin
http://paul-stanley.dyndns.org/test/lm2907.gif

python_rocks
07.03.2008, 11:11
ich möchte einen lichtsensor in meinen µ controller einlesen. leider liefert der regensensor nur eine frequenz.
Hallo Martin!

Welchen µC setzt du ein? Denn viele µC können Frequenzen messen, indem das Signal an einen Counter angeschlossen wird. Oder man kann das Signal auch an einen Hardware-Interrupt-Eingang anhängen und messen wie viel Zeit (Ticks) zwischen den Interrupts liegt.

mfg
Gerold
:-)

paul-stanley
07.03.2008, 11:24
hallo gerold,
ich habe einen atmel 256 (D072 von display300). das ist natürlich ne gute idee. ich weis nur nicht wie hoch der pegel vom ausgang ist. kann ihn daheim nicht messen, da kein oszi im haus.
aber so wie es aussieht, kann der ausgang über einen aktiven pull up direkt an einen eingang vom µ controller angeschlossen werden, da er ja scheinbar immer nur nach masse schaltet..oder sehe ich das falsch ?
hab mein projekt mit bascom geschrieben und bin alles andere als ein meister der programmierung. ist es aufwendig und schierig den wert aus der ahuptschleife raus alle 1 -2 sekunden zu kontrollieren ?

gruss martin

paul-stanley
07.03.2008, 11:27
hier das bild der ausgangsbeschaltung

http://paul-stanley.dyndns.org/test/test111.gif

Besserwessi
07.03.2008, 12:12
Man sollte wirklich die Frequenz direkt vom Controller messen. Wegen der Niedrigen Frequenz sollte der interne Pullup im Controller reichen. Sonst noch ein Widerstand gegen VCC vorsehen. Für maximale Auflösung sollte der (bzw, einer von mehreren) ICP Pins benutzt werden.
Mit BAscom kenne ich mit nicht so sehr aus, aber so kompliziert sollte das nicht sein. Da wird man bestimmt Lösungen zur Freqwunzmessung finden.

paul-stanley
07.03.2008, 12:17
ICP Pins ? ist das ein besonders schneller eingang ??

Besserwessi
07.03.2008, 12:33
Der ICP Pin erlaubt es in Hardware die Zeit für die Flanken zu messen. Bei der Flanke wird der Zählerstand in Spezielle Register kopiert und wenn gewünscht ein Interrupt ausgelöst.

paul-stanley
07.03.2008, 12:39
benötige keinen interrupt. denke es werden alle eingänge schnell genug sein um den wert zu ermitteln.
wie ich es programmierenmuss, hab ich auch schon gefunden. heute abend werd ich die sache testen und mein ergebnis posten.

gruss und vielen dank für die hilfe.

martin

python_rocks
07.03.2008, 12:52
Hallo Martin!

Es gibt unter Bascom mehrere Möglichkeiten. Eine ist PULSEIN als High-Level-Befehl. Dieser Befehl wartet bis entweder ein High oder ein Low an einem bestimmten Pin eintritt. Dann wird gewartet, bis noch einmal das gleiche Signal dort ankommt. Der Befehl gibt die µSekunden zurück, die zwischen den einzelnen Pulsen liegen.

Dieser Befehl lässt sich extrem einfach einsetzen. Dafür hat er einen Nachteil. Das Programm wartet an dieser Stelle bis die Pulsdauer fertig gemessen wurde. Und die maximale Auflösung ist eine µSekunde.

Wenn dir das aber schon genügt, dann ist das sicher die beste Wahl für dich. Leider streikt im Moment mein Hirn. Ich kann dir jetzt nicht den Messbereich in Hz ausrechnen.

Siehe: http://avrhelp.mcselec.com/index.html?pulsein.htm

mfg
Gerold
:-)

paul-stanley
07.03.2008, 13:22
wenn ich den counter definiere weis ich nicht was für ein eingang da abgefragt wird
Config Timer2 = Counter , Edge = Rising

ist das hardwaremässig festgelegt. ich möchte einen frei festlegbare eingang benutzen.

gruss martin

Ceos
07.03.2008, 13:47
der pin ist leider festgelegt, schau mal ins datenblatt

paul-stanley
07.03.2008, 13:49
laut datenblatt ist timer 3 port E.6

paul-stanley
07.03.2008, 13:49
:-) haben wir gerade gleichzeitig gepostet :-)

paul-stanley
07.03.2008, 14:33
so...die sache am port E.6 funktioniert super.
wenn ich den timer 3= 0 setze und anstatt 1000 ms nur 100 ms warte hab ich den bereich 5 - 120 hz abgedeckt. ist doch das gleiche wie 1000ms zu warten und 50 - 1200 hz ??? oder liege ich da falsch.

gruss martin