Linear steigende Spannung bei Atmega8

Gast #2013112
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.
OP #2013121
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.
Gast #2013142
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.
OP #2013156
> 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?
Gast #2013159
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.
Gast #2013321
Ein Hochlaufgeber, in einen langsame Timer Routine

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




wobei sollvh das Eingangssignal und sollnh das Ausgangssignal ist

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.