Variable Ausgangsspannung über PWM mit ATMega88

Gast #2003345
Lesenswert?
• ▲
▼
Hy,

ich habe einen ATMega88 und versuche dort über einen Eingang die 
anliegende Spannung auszulesen und über einen Ausgang die Spannung als 
PWM Signal auszugeben. Als Referenz benutze ich die Stromquelle für den 
AVR (5V).
Als einmal Anwendung kann ich eine Spannung ausgeben, doch nich 
verändern.
Ich habe am ADC7 Eingang ein Potentiometer, damit verändere ich die 
Spannung und möchte das die Ausgangsspannung sich dementsprechend auch 
verändert.
Leider ist es mir bis jetzt nicht gelungen.

Denn Code habe ich als Anhang beigefügt.

Ich hoffe jemand von euch kann mir einen Tipp geben wie ich das Problem 
lösen kann.

thx
Angehängte Dateien:
Gast #2003671
Lesenswert?
• ▲
▼
Thx erstmal das anheben des Wertes ICR1 hat schonmal geholfen nun seh 
ich einen direkten Einfluss des Potentiometers auf die ausgegebene 
Spannung.
Trotzdem habe ich noch ein paar Probleme.
Am Poti. liegen 3V an und ausgeben tut es aber 2,8V, bei allen Werten 
fehlen 200mV kann mir jemand erklären wo die hin sind ;-).
Benötige ich diese Variable überhaupt "DIDR0 &= ~(1<<ADC5D)", es handelt 
sich hier um eine Leiche weil ich den Code aus einem Tut angepast habe.
Außerdem benutze ich ja den ADC7 Eingang, ich weiß nicht inwiefern diese 
Einstellung Auswirkung auf das Programm hat.
thx
Gast #2003688
Lesenswert?
• ▲
▼
Ich vermute mal du wirst deine Ausgangs-PWM über ein RC-Filter 
D/A-wandeln.
Dein Filter bildet natürlich nebs einer integrierenden Funktion auf eine 
spannungsteilende Funktion, da der Xc des C wirksam ist.

Du solltest mal deine Werte bekannt geben, dann kann man helfen.



Gruß Knut
#2008882
Lesenswert?
• ▲
▼
Ist im Grunde ziemlich egal, denn deine tatsächliche Spannung am Ausgang 
wird in nicht unerheblichem Masse von der Aussenbeschaltung am PWM-Pin 
abhängen.

Aber wenn schon, dann Fast. Damit erreichst du die schnellste 
PWM-Frequenz.


Die bessere Lösung wäre es, wenn du die Ausgangsspannung (nach Filterung 
natürlich) wieder mit einem ADC misst und die PWM entsprechend 
nachstellst. Dann landest du allerdings schon bei einem Regelkreis.
Gast #2008970
Lesenswert?
• ▲
▼
Also ist Fast besser.
Dann hab ich noch überlegt ob es von der Verarbeitung schneller geht 
wenn der ADC im Free Mode läuft, also ständig im Hintergrund ausliest 
und der CPU nur das Register abfragt?
#2009184
Lesenswert?
• ▲
▼
Was willst du erreichen?
Wie sind deine Umgebungsbedingungen?

Das Wandeln selbst geht auch nicht schneller.

Kein Mensch sagt, dass die Reihenfolge sein muss

 while( 1 )
   Wandlung starten
   Ergebnis abwarten
   Ergebnis holen
   Ergebnis bearbeiten

die Reihenfolge kann ja auch so sein

  while( 1 )
    Ergebnis holen
    Wandlung starten
    Ergebnis bearbeiten

Dann wandelt dein ADC, während du das letzte Ergebnis bearbeitest und 
wenn du wieder zum Punkt kommst, an dem du den ADC befragst, ist der ADC 
mit der nächsten Messung schon wieder fertig, du holst es und startest 
den ADC gleich wieder neu damit er im nächsten Schleifendurchlauf das 
nächste Ergebnis fertig hat.
Gast #2010735
Lesenswert?
• ▲
▼
Also ich wollte den AVR vor einer Steuerung hängen, welche sofort und 
genau auf Spannungsänderungen am Signaleingang reagiert. Darum sollte 
die Spannung auch so konstant und genau wie möglich sein.
thx
Gast #2010742
Lesenswert?
• ▲
▼
Also bis jetzt schwankt die Ausgangsspannung immer sehr stark, bis zu 
300mV aber nur nach unten. Außerdem ist die maximale Spannung die ich 
ausgeben kann 4,5V benötige aber die vollen 5V.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.