-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: F/U Wandlerdurch Microcontroller

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2007
    Beiträge
    18

    F/U Wandlerdurch Microcontroller

    Anzeige

    Hallo Jungs,

    ich möchte ein Frequenz/Spannung Wandler mit einem Microcontroller programmieren. Am Eingang ist ein Rechtecksignal (Frequenz) und am Ausgang soll eine Konstante Spannung sein (0.....10V).

    Problem: ich weiß nicht, wie ich anfangen soll. Es wäre nett, wenn mir jemanden die Grundidee oder Vorgehensweise mitteilt.

    Danke

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2007
    Beiträge
    18
    noch dazu: Dir Frequenz am Eingang ist einstellbar, d.h. der Ausgang(Spannung) abhängig vom Eingang sein soll.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.07.2004
    Ort
    Nürnberg
    Alter
    36
    Beiträge
    186
    Hi,
    da musst du dich durchs Datenblatt von deinem Atmega wälzen!
    Brauchst einen Eingang als Counter, der die die Anzahl der Empfangenen Signale pro Zeit zählt, und als Ausgang nimmst du einen deiner ADC, oder in dem Fall Digital-Analog converter.
    Dann musst du in deinem Prog nur festlegen welche Frequenz welcher Spannung entspricht und gut ist!!
    Viel Erfolg
    Ich bin keine Signatur ich mach hier nur sauber

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2007
    Beiträge
    18
    vielen dank für die Antwort.

    Ehrlich gesagt, ich bin anfänger beim Programmieren von Microcontroller. ich hab schon ein Paar kleine Aufgaben an der FH gemacht. aber wie soll ich den counter programmieren???. Wie kann er steigende Flange von fallende Flange unterscheiden??????

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.07.2004
    Ort
    Nürnberg
    Alter
    36
    Beiträge
    186
    Hi,
    des kann man dem alles sagen, Kannst glaub ich auch auf Pegel einstellen!
    Um zu wissen wie du des deinem Controller sagst, wirst du nicht darum herumkommen ins Datenblatt zu schauen!
    Ich weiß ja nichtmal welchen Controller du verwendest!!
    Schau mal hier im Wiki da ist des meiste erklärt!!
    Ich bin keine Signatur ich mach hier nur sauber

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2007
    Beiträge
    18
    ich verwende ATmega8535

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    In welchem Frequenzbereich bewegt sich das ganz denn?
    Als kurze Idee (nur jetzt mal so aus dem Ärmel kann also locker Denkfehler enthalten) würde ich sagen wenn die Ausgangsspannung proportional zur Frequnz sein soll, dann ist die Periodendauer umgekehrt proportional zur Ausgangssapannung.
    Ich würde dann zB mit dem ICP0 Pin die Periodendauer messen. Den Timer möglichst so einstellen, dass er bei der kleinsten Frequenz die vorkommen kann gerade noch nicht überläuft aber trotzdem noch ein wenig was bei der größten Frequenz zu zählen hat.
    Auf dem gleichen Timer (kenne den meg8535 nicht, benutze immer den mega würde ich dann die gemessene Zeit in das Compare Register schreiben. Jetzt brauchst Du nur noch im Compare IRQ einen Pin einschalten und bei Overflow wieder aus. Dann hast du schonmal eine PWM die proportional zur Frequenz ist. Das ganze noch durch einen Tiefpass und dann sollte es das gewesen sein.

    Gruß Philipp

    PS: Das neue setzen des Compare Wertes vielleicht erst nach einem Timeroverflow wieder freigeben, damit da nix durcheinander geht. Sollten in C nicht viel mehr als 10 Zeilen Code werden.

    PPS: Diese Variante misst die gesamte Periodendauer, also von steigender zu steigender oder fallender zu fallender Flanke (was IMHO auch sinn macht, wenn man eine Frequenzabhängigkeit haben möchte). Wenn du mit der Capture Funktion nur die Hightime zB messen möchtest, dann kannst du die Triggerung in der ISR umschalten musst, dann aber das IRQ Bit löschen, weil das sonst sofort wieder einen IRQ Triggern würde. Steht aber auch im Datenblatt ganz gut beschrieben

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2007
    Beiträge
    18
    Danke Philipp für deine Antwort.
    ich gehe davon aus, dass es zwischen ATmega8535 und ATmega8 keinen großen Unterschied gibt.

    Der frequenzbereich ist 0....3,636 kHz.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    04.07.2007
    Beiträge
    18
    hallo,
    ich hab schon den Datenblatt von ATmega8535 durchgelesen, aber ich weiß nicht wie ich den ICP verwenden soll. Ich bin ein anfänger im Microcontroller-Programmierung. Kann mir jemanden bitte helfen und ein Beispiel ausführlich erklären???????? Der Ausgang muss mittel PWM ermittelt werden.

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.09.2005
    Beiträge
    225
    Eigentlich ganz einfach, wenn Du den ICP Pin richtig konfiguriert hast, dann wird beim erscheinen der von Dir eingestellten Flanke der aktuelle Timerstand in das ICP Register kopiert und danach der ICP IRQ ausgelöst in dem kannst Du dann den Wert verarbeiten.

    Gruß Philipp

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •