- 3D-Druck Einstieg und Tipps         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 36

Thema: Neues Schaltnetzteil im Selberbau

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280

    Neues Schaltnetzteil im Selberbau

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!

    Ich habe schon mal vor ein paar Jahren angefangen ein Digitales Schaltnetzteil (mit zwei Ausgängen) mit einem Atmega32 aufzubauen. Das hat auch tatsächlich funktioniert. Der PID Regler hat die Spannungen eingestellt und ich konnte sowohl konstante Spannung als auch konstanten Strom verwenden. Nur war die Menuführung sehr aufwendig, da man mit einer kleinen 4x4 Tastatur Spannung und Strombegrenzung einstellen sollte. Das hat leider auch das Programm ziemlich aufgeblasen und ich habe dann da aufgehört.

    Nun wollte ich nochmal von vorne anfangen, da ich grundsätzlich die Möglichkeit der Verwirklichung sehe und inzwischen mir genauer überlegt habe, was man wohl ändern müsste.

    Zu erst wollte ich die Aufgaben auf drei MCs verteilen
    -Einer misst Strom und Spannung am Ausgang
    -Einer ist mit der PID Regelung beschäftigt
    -der letzte kümmert sich um die Tastatur und die LCD ausgabe.

    Untereinander sollten sie mit TWI kommunizieren.
    Dazu meine erste Frage, ist die Aufteilung so sinnvoll?
    Wie schaut es mit der Kommunikationsgeschwindigkeit aus? Wird die den Regelalgorithmus beeinträchtigen?

    Also Ausgangsspannung sollten theoretisch 0..30V und als Strom 0..2.5A zur Verfügung stehen. Ich erwarte bei der Genauigkeit keine Wunder. Ich würde wahrscheinlich eh einen 5V Festspannungsregler an die Front mit dranbauen, damit man für logik-Anwendungen eine vernünftige Spannungsquelle hat. Deshalb soll die Genauigkeit nur soweit gehen, dass man damit etwas anfangen kann. Zum Beispiel wenn ich ein LED Array mal mit 9V versorgen möchte, dann sollten alle LEDs danach noch funktionieren. Alternativ könnte ich mir den Testbetrieb von Motoren vorstellen. Also ihr seht schon Die Spannung sollte einigermaßen erreicht werden, aber +/-1/100 V müssen es wohl nicht sein. Oder was denkt ihr?

    Trotzdem wollte ich von Anfang an versuchen, das ganze vernünftig aufzubauen und nicht unnötig Genauigkeit zu "verschwenden".

    Mit der Strom und Spannungsmessung wollte ich deswegen anfangen. Dazu das Schaltbild im Anhang. Gedacht war ein Differenzverstärker um den Strom durch einen Shunt zu messen. Bei der Spannungsmessung sollte wegen dem großen Bereich (0..30V) der Messbereich variable sein. Der MC sollte wissen was ihn erwartet und demnach den richtigen Spannungsteiler über die IO Pins und die Transistoren auswählen.

    Glaubt ihr es ist sinnvoll den Strommessbereich auch nochmal zu untergliedern? Theoretisch sollte er bis 2.5A gehen. Wenn ich jetzt mal eine LED testen möchte, dann brauche ich ja eher 20mA und die sollten besser eingehalten werden. Da könnte ich mir sonst noch eine Abstufung 0..100mA und dann 100mA bis 2.5A vorstellen (Genauigkeit des AD Wandlers ist 10bit)!

    Wer hier mit dem Lesen angekommen ist, dem danke ich shcon im Voraus für Anregungen und konstruktive Kritik

    Martin

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Komplett unabhängig von deinem Schaltbild: Es macht imho wenig Sinn, die Regelung und die Datenerfassung zu trennen, weil du dann wieder größeren Aufwand treiben musst, um die Daten von µC A nach µC B zu schaufeln.
    Ich arbeite an einem ähnlichen Projekt und setze dort lediglich einen Tiny861 ein, der Messdatenerfassung und Regelung macht. Als Erweiterungsschnittstelle für Display, Eingabe etc. ist I²C vorgesehen.

    mfG
    Markus

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Hallo Markus!

    Und warum meinst du ist es ungünstig über I2C die Daten von A nach B zu schicken? Klar dauert das auch eine gewisse Zeit, das war ja eine meiner Fragen, aber der PID Algorithmus ist ja doch etwas was auch wegen dem I und D Anteil besser in einem Definierten Zeitintervall abläuft. Wenn ich jetzt dann noch 8 ADC Kanäle abfrage, dann wird es ja für eine Interrupt-Routine wahrscheinlich doch zu lang. Weist du dazu was genaueres?

    Nebenbei lese ich ein bisschen im Thread I2C oder SPI mit und da ist bei 16MHz Taktrate der Controller von Übertragunsraten bis zu 1MBit die rede. Sollte das nicht schell genug sein, wenn ich jeweils 40 bit (2*10bit Spannungsmessung und 2*10bit Strommessung, es sind ja 2 Ausgänge) übermittle?

    mfg

    Martin

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Ich würde nicht mit Transistoren Umschalten, die haben ja auch nicht
    wirklich 0 Ohm. Schaue mal http://ics.nxp.com/products/hef/datasheet/hef4016b.pdf oder 4051 Analog Multiplexer http://de.wikipedia.org/wiki/Multiplexer.

    Gruß Richard

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Ok das ist natürlich die bessere Variante. Grundsätzlich versuch ich dann noch über Referenzmessungen Bauteiltoleranzen in Widerstände so weit wie möglich zu eleminieren. Aber der Multiplexer wird definitv verwendet.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Hallo Martin,

    die AD-Wandlung ist ein asynchroner Vorgang der im Hintergrund ablaufen kann und zwischenzeitlich die "CPU" nur zum Umschalten des ADC-Kanals und ablegen der Messwerte in Zwischenvariablen in Anspruch nimmt (ADC-ISR). Ferner wird der ADC auf einem externen µC auch nicht schneller laufen.

    Bei I²C oder SPI brauchst du in irgend einer Form ein Protokoll, dessen Auswertung wahrscheinlich mehr Aufwand darstellen wird. Und nur weil dein Übertragungskanal eine fixe Bandbreite hat, ist das noch lange keine Aufforderung, das als Geschwindigkeitsreferenz zu verwenden ... so wirst du nur vom Timing deines Co-Prozessors abhängig.

    Außerdem ist die Idee, die komplette Regelung in einer ISR unterzubringen, tendenziell eher schlecht. Ich für meinen Teil werde die Regelung in die Hauptschleife einbauen und dort in regelmäßigen Abständen lostreten (über ein Flag). Unabhängig davon wird der ADC die ganze Zeit seine Kanäle auswerten und die Ergebnisse in globalen Variablen ablegen. So ist nur etwas Vorsicht beim einsynchronisieren der Messwerte erforderlich.

    mfG
    Markus

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.664
    ... die komplette Regelung in einer ISR unterzubringen ...
    Natürlich macht "man" das nicht. Es sei denn, man kümmert sich akribisch um die Laufzeit der Rechnereien. Meine Regelung für zwei Motoren läuft zeitlich versetzt im 1/100-Sekunden-Takt. Braucht nur ein paar Prozent der CPU-Zeit, sodass insgesamt - zeitlich - noch satt Platz ist für die anderen ISR. Genau wegen der Laufzeitfrage habe ich die Regelung auf integer umgemodelt. Damit wurde diese ISR kürzer, als der Abstand zwischen der schnellsten getakteten ISR . . . . . Ist halt ein bisschen Planungsarbeit die dahintersteckt. Fazit: mein R2D03/Dottie läuft stabil und sauber gradaus - wenn man das will. Ansonsten auch mal ziemlich sauber "ums Eck".

    Zu meiner Regelung und der Softwareplanung siehe hier, evtl. auch in den folgenden Postings.
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Bei meinem ersten Versuch habe ich schon die Regelung mit integers durchgeführt. Da hab ich schon gemerkt, dass es eine immense Zeitersparnis ist. danke für den Link oberallgeier. Ich werd mir mal dein System genauer anschauen. Das schaut auch interessant aus.

    Was könnt ihr eigentlich für eine Taktfrequenz für Regelung und für PWM für ein Netzteil empfehlen (also die grobe Größenordnung würde shcon reichen)?

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Hessibaby
    Registriert seit
    20.11.2003
    Ort
    Gelsenkirchen
    Alter
    72
    Beiträge
    1.601
    Warum willst Du bei der Spannunsmessung überhaupt umschalten ?
    Bei 10 bit hast Du ca. 30mV Auflösung. Und bei der Strommessung ist 1Ohm als Shunt def. zu groß da bei 2,5A logischerweise auch 2,5V abfallen und zu 6,25Watt Wärme umgesetzt werden.

    Planung ersetzt Zufall durch Irrtum

    Gruß aus dem Ruhrgebiet Hartmut

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.12.2007
    Beiträge
    280
    Naja im Kurzschlussfall habe ich 6.25 Watt. Aber das tritt hoffentlich nicht ein. Es werden aber die zementierten Hochlastwiderstände 4W oder so verwendet. Ist wohl eher die Frage, ob man mit einem Innenwiderstand von 1Ohm was anfangen kann. Aber ich glaube, dass es für meine Anwendungen reicht. eventuell schalte ich auch zwei parallel, dass ich nur 0.5 Ohm habe.

    Die Frage nach der Auflösung ist berechtigt. Es ist doch aber so, dass ich ohne großen Hardwareaufwand die Auflösung durch umschalten erhöhen kann. Nun war eigentlich meine Grundidee an dieser Stelle einigermaßen sauber zuarbeiten, auch wenns am schluss zu viel des Guten war, anstatt später zu merken, dass die Messung hier das Toleranzlimit stellt. Oder die Qualität der Spannungsquelle unnötig mindert.
    Die Anzahl der Messbereiche werden eventuell noch verkleinert, damit ich mit einem Atmega32 (zum Beispiel) und dessen 8 ADC Channels auskomme. Vielleicht wären dann doch eher 2 Messbereiche für Strommessung und zwei Messbereiche für Spannungsmessung besser?

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests