Forum: Mikrocontroller und Digitale Elektronik Frequenz mit AtMega8 auf Spannung umwanden.


von P. I. (pimi)


Lesenswert?

Liebe Forum User,
Ich möchte mit AtMega 8 Frequenz ca. 0 bis 10 Hz auf Spannung (0 bis 5V) 
umwandeln.
Vielleicht weiß jemand wie ich das in C programmieren kann.

Vielen Dank im Voraus
Mit freundlichen Grüßen
pimi

von STK500-Besitzer (Gast)


Lesenswert?

Man messe die Frequenz z.B. mit der InputCapture-Einheit und gebe einen 
proportionalen Impuls als PWM aus. Dieses PWM-Signal kann man dann noch 
mit einem RC-Glied "gleichrichten".

von Otto (Gast)


Lesenswert?

Die Frequenz messen, eine PWM zwischen 0 und 100% ausgeben und mit 
Tiefpass (R/C) glätten.

Otto

von P. I. (pimi)


Angehängte Dateien:

Lesenswert?

Danke für den Rat.
Konkret gesagt ich möchte eine Frequenz von einem Windsensor auslesen 
und damit eine Markise ansteuern.
Ich will das für den AtMega8 (In der C-Sprache) programmieren.
Grundkenntnisse in C sind bei mir vorhanden, jedoch mit 
Kontrollerprogrammierung habe ich wenig Erfahrung.
Ich benutze die Software - Sisy AVR
Im Anhang versuche ich mein Programm zu beschreiben.
Ich weiß nicht wie man den Timer deklariert, initialisiert, startet oder 
abfragt, außerdem will ich auf eine steigende Flanke am Pin B1 reagieren 
und Variable s inkrementieren. Im Quellcode habe ich alles Unbekannte 
rot geschrieben.
Ein Programmablaufplan ist auch dabei. Ich hoffe, dass ich keinen 
Denkfehler gemacht habe.
Wenn jemand Zeit und Lust dazu hat bitte ich um Vervollständigen des 
Programms.
Über eine möglichst schnelle Antwort wäre ich sehr dankbar.

von Uhu U. (uhu)


Lesenswert?

Peter I. wrote:

> Wenn jemand Zeit und Lust dazu hat bitte ich um Vervollständigen des
> Programms.
> Über eine möglichst schnelle Antwort wäre ich sehr dankbar.

Scherzkeks.

von Sinusgeek (Gast)


Lesenswert?

> Ich weiß nicht wie man den Timer deklariert, initialisiert, startet oder
> abfragt,

Dann lies das Datenblatt des Mega8, mach' Dich mit seiner Architektur 
vertraut und steuere die internen Peripherie-Komponenten über die dafür 
vorgesehenen I/O-Register.

> Grundkenntnisse in C sind bei mir vorhanden, jedoch mit
> Kontrollerprogrammierung habe ich wenig Erfahrung.

Falls Du diese Grundkenntnisse nur vom PC hast, werden die Dir auf einem 
AVR ohne Kenntnis der AVR-Architektur nicht allzuviel nützen. Der 
Programmierstil, der auf dem PC richtig sein kann, muss auf dem AVR noch 
lange nicht richtig sein, da die Ressourcen im Vergleich zum PC recht 
knapp sind und das unbekümmerte Verwenden von ungünstigen Operatoren, 
Datentypen und Standardbibliotheken schnell den Ressourcenrahmen 
sprengt.

~

von Jürgen B. (hicom)


Lesenswert?

..nimm 'ne LOGO

von STK500-Besitzer (Gast)


Lesenswert?

>Dateianhang: Programm_Markise.doc (81 KB, 25 Downloads)

Schon mal Mist. Man sollte keine .doc-Dateien verbreiten, sondern 
Quellcode, Bilder (unter Beachtung der Bildformate oder pdf.

>Konkret gesagt ich möchte eine Frequenz von einem Windsensor auslesen
>und damit eine Markise ansteuern.

Irgendwie verstehe ich den Zusammenhang zwischen "eine Markise 
ansteuern" und
"Frequenz mit AtMega8 auf Spannung umwanden." nicht.

So wie ich Markisensteuerungen kenne, wird die Markise ab einer 
bestimmten Windstärke eingefahren. Ausgefahren wird sie entweder manuell 
oder über einen Helligkeitssensor.
Hast du schon im "Hausbus-Forum" geguckt? 
http://www.mikrocontroller.net/forum/hausbus

Es ist ja löblich, dass du schon einen Ablaufplan gemalt hast; nur ist 
der leider nicht ganz passend für das Windsensor-Markisen-Problem. 
Zumindest habe ich ihn nicht verstanden.

Wie wäre es mit ein paar mehr Parametern?

>> Wenn jemand Zeit und Lust dazu hat bitte ich um Vervollständigen des
>> Programms.
>> Über eine möglichst schnelle Antwort wäre ich sehr dankbar.

>Scherzkeks.

Dem kann ich mich nur anschliessen...

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.