Geregelter Aufwärtswandler 12V/24V

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Mitch64 schrieb:

      Die Regelung in einen Timerinterrupt zu verlagern und z.B. 1000 mal in der Sekunde in der ISR-Routine nachregeln. Dann kann man in der Hauptschleift gechillt die Werte ausgeben und danach ein Waitms 300 machen.

      So würde die Ausgabe die Regelung nicht stören.
      richtig, eine Regelung braucht ein festes Zeitraster, sonst passen ja die einzelnen Regelfaktoren nicht.

      tschoeatsch schrieb:

      Es sollte erst mal sichergestellt sein, dass Programme richtig auf den Kontroller eingestellt und der Kontroller mit seinen fuses richtig auf das Programm eingestellt ist.
      ja, mit der Tür ins Haus klappt nunmal nicht und schon gar nicht, wenn das für später gebraucht wird.
      Klassischer Anfang mit LED-Blinken usw.
    • Mitch64 schrieb:

      Was das Thema Sylvester betrifft, war ich in jungen Jahren wahrscheinlich auch nicht viel anders.
      Aber das Thema zieht sich ja schon sein Wochen so schleppend.

      Oder meinst du er bereitet sich schon seit Oktober auf Silvester vor?

      Kann sein a_357_9ede01a4
      Wir werden sehen, wie das ausgeht.
      Ich kann mir gut vorstellen, dass die Beschäftigung mit bascom nicht zur Lieblingsbeschäftigung zählt. Dann wird sowas halt bisschen verdrängt. Ich hätte dafür Verständnis. Aber jetzt deshalb ein fertiges Programm hinwerfen, wäre falsch. @YdnAm sollte ja das Prinzip des Schaltreglers kennen und somit den Zusammenhang mit der PWM. Dann müsste er in eigenen Worten einen Regelkreis beschreiben können, um eine konstante Spannung am Ausgang zu erhalten. Einen Programmablaufplan sozusagen. Und das halt für die geforderten Aufgaben. Das sollte schon von ihm kommen. Wie man das dann mit bascom umsetzt, das kann man nach dieser kurzen Zeit nicht von ihm erwarten, aber dabei kann ja hier geholfen werden.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch schrieb:

      Mitch64 schrieb:

      Was das Thema Sylvester betrifft, war ich in jungen Jahren wahrscheinlich auch nicht viel anders.
      Aber das Thema zieht sich ja schon sein Wochen so schleppend.

      Oder meinst du er bereitet sich schon seit Oktober auf Silvester vor?

      Kann sein a_357_9ede01a4
      Wir werden sehen, wie das ausgeht.
      Ich kann mir gut vorstellen, dass die Beschäftigung mit bascom nicht zur Lieblingsbeschäftigung zählt. Dann wird sowas halt bisschen verdrängt. Ich hätte dafür Verständnis. Aber jetzt deshalb ein fertiges Programm hinwerfen, wäre falsch. @YdnAm sollte ja das Prinzip des Schaltreglers kennen und somit den Zusammenhang mit der PWM. Dann müsste er in eigenen Worten einen Regelkreis beschreiben können, um eine konstante Spannung am Ausgang zu erhalten. Einen Programmablaufplan sozusagen. Und das halt für die geforderten Aufgaben. Das sollte schon von ihm kommen. Wie man das dann mit bascom umsetzt, das kann man nach dieser kurzen Zeit nicht von ihm erwarten, aber dabei kann ja hier geholfen werden.
      ich verstehe schon was ich programmieren muss, eine pwm habe ich ja schon am laufen und kann die pwm mit einem poti verstellen aber wie soll ich dies so umschreiben dass ich die 24 v raus bekomme?
      Meine 24V sind die 1024 das weiss ich auch.

      Ich weiss nur nicht wie ich es schreiben soll, wenn die SPannung erreicht ist, dass dann nichts passieren soll, wenn die SPannung drunter ist dass die Spannung hoch gestellt werden soll und wenn die Spannung drüber liegt, dass die Spannung runter gestellt werden soll. Ich muss mit Sollwerten und IStwerten arbeiten ,dies ist mir bewusst, nur die Umwandlung in ein Programm ist mein Problem.
    • YdnAm schrieb:

      kann die pwm mit einem poti verstellen
      Damit ist die Januar schon "im Kasten" und die Schaltung funktioniert wie ein Dimmer. Zum Regeln muß jetzt nur noch der Istwert (ADC -Ausgangsspannung) mit dem Sollwert (ADC-Poti) verglichen werden und Pwm Verhältnis um diese Differenz verändert werden. Die 24V ergeben sich nur wenn das Poti entsprechend eingestellt wird.

      YdnAm schrieb:

      Meine 24V sind die 1024
      geht in dem Fall nicht. Wie soll er wissen wenn die Spannung zu hoch ist?
      R3/4 können frei belegt werden? Was liegt gerade rum? 10k-1k ?

      PS (1023)Wenn da 1024 sind muß der Chip in die Tonne ;)

      PPs zeig doch mal den jetzigen Code, ich hab hier immer noch den Mega16 mit 8Mhz
    • Hallo YdnAm,

      wenn ich dich im Post #103 richtig verstehe, dann könnte dir das Funktionsprinzip vom LM2577 helfen.
      Schau dir mal die Funktionsblöcke vom LM2577 um den Error-Amp an, und wie dort die Ausgangsspannung herangeführt wird. Aus dem Signal des Error-Amps entsteht dann das benötigte PWM-Signal. Die anderen Funktionsblöcke im Bild kannst du übersehen, bzw. werden von der PWM angedeckt.
      Dateien
    • Also dass du 1024 vom ADC bekommst, bezweifle ich mal.
      Aber nehmen wir mal den Maximalwert von 1023 an: Dann könntest du nicht mehr regeln, da du die Obergrenze erreicht hättest.

      Dein Widerstand Vorteiler von den 24 Volt am Ausgang der Schaltung sollte so bemessen sein, dass du möglichst in der Mitte der Auflösung des ADC liegst.

      Die 24 Volt sollten also durch einen R Teiler auf ca. 2.5V geteilt werden.
      Dadurch bekommst du in etwa den Wert 500 vom ADC. Dieser Wert ist dann dein IST-WERT.
      Diesen IST-WERT vergleichst du mit dem SOLL-WERT. Dieser SOLL-WERT ist eine Konstante, welche du im Programm vorgibst.
      Jedes mal, wenn durch Teilung und ADC Wandlung die Ausgangsspannung unter ihren Wert geht, dann wird der ADC Wert kleiner und liegt unterhalb deines SOLL-WERTES.
      Je größer die Abweichung, je weiter musst du die PWM verschieben und dadurch Ladung in die Induktivität schieben.
      Wird der Wert vom ADC größer als dein SOLL-WERT, musst du die PWM "kleiner" einstellen, damit die Induktivität WENIGER Energie bekommt.

      Nur mal so zum Verständnis...
      Code first, think later - Natural programmer :D
    • YdnAm schrieb:

      ich verstehe schon was ich programmieren muss
      Da bin ich mir grad' nicht so sicher.

      YdnAm schrieb:

      Ich weiss nur nicht wie ich es schreiben soll, wenn die SPannung erreicht ist, dass dann nichts passieren soll, wenn die SPannung drunter ist dass die Spannung hoch gestellt werden soll und wenn die Spannung drüber liegt, dass die Spannung runter gestellt werden soll. Ich muss mit Sollwerten und IStwerten arbeiten ,dies ist mir bewusst, nur die Umwandlung in ein Programm ist mein Problem.
      Das ist eben sehr, hm, grob.

      Ich hab's ja schon erwähnt, bascom in der kurzen Zeit so zu beherrschen, dass man das programmieren kann, dazu muss man schon ein großer fan von bascom sein.
      Was du aber schon können müsstest, wäre eine Beschreibung zu erstellen, was das Programm machen soll, eben einen Programmablaufplan. Ich fang mal an:
      (ganz grob, um zu zeigen, was ich meine. Was du liefern können solltest, sollte viel feiner sein)

      messen der Ist-Spannung
      vergleichen mit der Soll-Spannung
      ---Wenn Ist kleiner als Soll, dann, tja, was dann? Jetzt nicht kommen mit Spannung erhöhen, sondern konkret, was ist zu tun? PWM-Frequenz erhöhen/absenken? Oder Tastverhältnis ändern? In welche Richtung?
      ---Wenn Ist größer als Soll, dann, ja das solltest du wissen und beschreiben können
      usw.
      Was auch bedacht werden muss, was darf denn nicht passieren? Darf der pin zum Fet-treiber länger auf high, oder low sein? Wenn der mega8 seine Versorgung bekommt, braucht der ja eine gewisse Zeit, bis das Programm auch läuft. Welche Pegel müssen die Ausgänge in der Zeit haben, damit nix passiert? Das gehört auch in den Ablaufplan, halt vor der eigentlichen Regelschleife.
      Wenn du einen detailierten Programmablauf liefern kannst, dann wird dir hier sicher mit code-Zeilen samt Erklärungen geholfen, eine Gruppenarbeit sozusagen. Dann weißt du auch, was das Programm wo macht und du stehst bei Fragen vom Lehrer nicht dumm da.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • AhhJa... ok, du hast die PWM noch nicht ganz verstanden.

      PWM bedeutet: Puls WEITEN Modulation.

      Es wird (einfach gesagt) die Einschaltdauer des Ausgangs verändert.
      a)
      wir haben weniger als 24V am Ausgang
      Hier benötigt man mehr Energie zur Aufladung der Induktivität, um die Ausgangsspannung anzuheben.
      Die Einschaltdauer muss erhöht werden, damit der Leistungsschalter die Induktivität LÄNGER mit Strom versorgt.

      b)
      wir haben mehr als 24V
      Hierfür müssen wir weniger Energie der Induktivität zuführen, um die Ausgangsspannung abzusenken.
      Die Einschaltdauer muss kleiner werden!

      Quellcode

      1. 50/50 Einschaltdauer Gleiche Pulslänge jeder Halbwelle
      2. ___
      3. | |___|
      4. lange Einschaltdauer --> Induktivität bekommt viel Strom --> Ausgangsspannung erhöht sich
      5. _____
      6. |_| |
      7. kurze Einschaltdauer --> Induktivität bekommt wenig Strom --> Ausgangsspannung fällt
      8. _
      9. |_____| |
      Alles anzeigen
      Wenn du einen Ausgangpin als PWM einrichtest, dann kommt an dem PIN immer die eingestellt Frequenz heraus!
      Durch das PWM Register kannst du einen Wert festlegen, welcher dem Puls/Pausen Verhältnis entspricht.
      Code first, think later - Natural programmer :D
    • Genau...
      Die Frequenz an dem PWM Ausgang ist immer gleich!
      Nur das Puls-Pausen Verhältnis einer Periode ändert sich

      Bei einer 8-Bit PWM würde das Beschreiben des PWM Register mit
      - 0 (Null) am Ausgang ein dauerndes LOW erzeugen
      - 255 am Ausgang ein dauerndes HIGH erzeugen
      - jeder Wert >0 <255 eine Änderung des Puls Pausen Verhältnisses erzeugen
      Code first, think later - Natural programmer :D
    • Oha, es tauchen bekannte 'Gesichter' auf.

      BatMa613 schrieb:

      Ok, das heisst wenn ich weniger als 24 v habe dann muss die Einschaltdauer grösser werden und wenn ich mehr als 24V bin muss ich die Einschaltdauer kleiner werden lassen?
      ja
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ein ganz primitiver Regelkreis wäre jetzt
      Schleifenanfang
      ist messen
      ist<soll dann Pulsweite einen Schritt größer machen weiter bei Schleifenanfang
      ist>soll dann Pulsweite einen Schritt kleiner machen weiter bei Schleifenanfang
      ist=soll dann weiter bei Schleifenanfang

      natürlich müssen dabei auch Grenzen überwacht werden, die Pulsweite darf nicht zu groß werden, zB. wenn der Ausgang zu stark belastet wird.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Also, ich habe da starke Bedenken. Dem (er/sie/es) User fehlt hier doch offensichtlich Grundlagenwissen. Aber ich lasse mich gern eines besseren belehren.
      Der Regelkreis ist beileibe nicht als trivial zu betrachten. Was geschieht bei Lastwechsel -> Regelschwingungen? Was bei Überlast, was ist mit der Überwachung der Eingangsspannung? usw.
    • tschoeatsch schrieb:

      Ein ganz primitiver Regelkreis wäre jetzt
      Schleifenanfang
      ist messen
      ist<soll dann Pulsweite einen Schritt größer machen weiter bei Schleifenanfang
      ist>soll dann Pulsweite einen Schritt kleiner machen weiter bei Schleifenanfang
      ist=soll dann weiter bei Schleifenanfang

      natürlich müssen dabei auch Grenzen überwacht werden, die Pulsweite darf nicht zu groß werden, zB. wenn der Ausgang zu stark belastet wird.
      ich messe dann also meine ausgangsspannung (Istwert), diese vergleiche ich dann mit meinem sollwert (24V) und mache meine Pulsweite grösser oder kleiner?

      ist ja im grunde leicht erklärt, aber wie kann ich das als programm schreiben?
    • Weiter oben wurde von @six1 schon erklärt, wie der Spannungsteiler zu gestalten ist, damit der Wert aus dem Adwandler so um die 500 beträgt, wenn die 24V anliegen. Diese 500 wären ja auch der Sollwert, entspricht ja den 24V.
      Also
      sollwert=500
      do
      istwert=getadc(der Kanal, wo der Spannungsteiler angeschlossen ist)
      if istwert<sollwert then
      if pwm1a<grenzwert then incr pwm1a !Achtung, das muss deiner timereinstellung entsprechen!
      'das ist jetzt die Abfrage, um nicht in einen Bereich zu kommen, wo der Transistor zerstört werden könnte
      end if
      if istwert>sollwert then
      if pwm1a>0 then decr pwm1a
      'das ist jetzt die Abfrage, dass der Wert für die PWM nicht in einen ungültigen Bereich kommt
      end if
      loop
      Das ist jetzt eine Endlosschleife, würde aber die Spannung regeln. Wie schon @Mitch64 erwähnte, könnte man diese Regelung in einen interrupt packen, der zB alle 5 bis 10 mS aufgerufen wird. Dann regelt die so vor sich hin und im Hauptprogramm kann man die Spannungen in V umrechnen und im display anzeigen lassen. Oder mit dem Poti den sollwert neu vorgeben.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------