Forum: Analoge Elektronik und Schaltungstechnik Linear steigende Spannung bei Atmega8


von Jay S. (jaysteve)


Lesenswert?

ich brauche bitte hilfe bei einem programm. an den adc eingang des 
atmega8 kommt eine spannung, am oc2 soll diese spannung dann linear bis 
zum maximum geht, die die eingangsspannung hat. ich verwende das 
programm avr studio4.

von ozo (Gast)


Lesenswert?

Moin,
schau dir mal das AVR-GCC Tutorial auf dieser Seite an.
Deiner (nebenbei bemerkt ziemlich dürftigen Beschreibung) entnehme ich, 
dass du zwei Kernkomponenten brauchst.
1) ADC initialisieren und auslesen
2) PWM initialisieren und mit Werten ausgeben.

Zu beiden Themen findet sich im Tutorial einiges. Wenn du später 
konkrete Fragen hast, wird dir im Forum mit Sicherheit weitergeholfen.

von Jay S. (jaysteve)


Lesenswert?

jap stimmt. die pwm läuft schon. ich hab halt keine ahnung wie ich die 
eingelesene spannung linear steigen lassen soll. man könnte sich das wie 
bei einem elektroauto denken. wenn ich voll aufs gas trete schiebt das 
auto ruckartig weg. es soll bei vollgas schön langsam steigen.

von ozo (Gast)


Lesenswert?

Naja dann sag das doch.
Du hast also zwei Spannungen vorliegen. Einmal die gemessene und dann?
Willst du von Null bis zur eingelesenen Spannung? Oder von der 
eingelesenen bis zur Versorgungsspannung? Oder von nach sowieso?

In beiden Fällen musst du doch nur die Differenz zwischen beiden 
Spannungen ausrechnen, eine Schrittweite festlegen (sinnigerweise die 
kleinste Einheit, die dir deine PWM auflösen kann) und dann immer Vaus = 
Vfix + n * step rechnen. So mehr oder weniger - das hab ich mir jetzt 
auf die Schnelle aus den Fingern gesaugt. Könnte aber ein sinniger 
Ansatz sein.

von Jay S. (jaysteve)


Lesenswert?

> Willst du von Null bis zur eingelesenen Spannung? Oder von der
> eingelesenen bis zur Versorgungsspannung? Oder von nach sowieso?


ich will von 0 bis zur eingelesenen spannung.
ich überlege gerade ob es gehen würde, wenn ich einfach eine schleife 
mache und bis zum max von der eingangsspannung hinaufzählen lasse. 
klingt aber irgendwie zu simple und ich denke nicht, dass das 
funktioniert oder?

von ozo (Gast)


Lesenswert?

Doch, so würde ich es auch machen. Aber als Einheiten würde ich die PWM 
Auflösung verwenden und dann alles weiter darin rechnen.
Also als Beispiel: PWM kann minimal 1V auflösen. Du willst jetzt von 0 
bis 77,3 Volt. Macht also eine gerundete Differenz von 77 Einheiten.
Und ab dann eine Schleife und hochzählen.

von Jens G. (jensig)


Lesenswert?

Vielleicht will er einen Integrierer?

von Düsendieb (Gast)


Lesenswert?

Ein Hochlaufgeber, in einen langsame Timer Routine

if (sollvh > sollnh) sollnh++;
if (sollvh < sollnh) sollnh--;




wobei sollvh das Eingangssignal und sollnh das Ausgangssignal ist

von Ralle (Gast)


Lesenswert?

und die Versorgung des AVRs ist dann 100V

ok als Beispiel

von Floh (Gast)


Lesenswert?

Ralle schrieb:
> und die Versorgung des AVRs ist dann 100V

Troll?

von Axel D. (axel_jeromin) Benutzerseite


Lesenswert?

von Analogeingang kommt ein Wert von 0 bis 1024

Wenn der Timerinterrupt alle 0,01 Sekunden aufgerufen wird, braucht es 
bei einem Sollwertsprung von 0 auf 1024   10,24Sekunden bis der 
Ausgangswert gefolgt ist.

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.