Spannungssensor mit Anschlusskabeln und "gedipt"

Spannungüberwachung für den Robot

Wenn man Akkus als Versorgung nutzt, möchte man gerne wissen wieviel Saft die Zellen noch haben. Also schnell eine simple Spannungsüberwachung zusammengelötet.

Ich nutze zwei 12 Volt Bleigel-Akkus um auf die 24 Volt für die Motoren zu kommen. Der Mikrokontroller verträgt bis 5 Volt am Analogeingang. Direktes Messen ist also nicht, ohne “Magic Smoke” freizulassen 😉

Also bleibt noch der Weg über einen Spannungsteiler

Bei genau 24V komme ich also auf ca 3,9V am Analogeingang der Mikroprozessors. Der Teiler ist ein wenig größer dimensioniert da die beiden Akkus im geladenen Zustand auf über 13V kommen, was bedeutet das die Gesamtspannung auch mal auf 26-27 Volt gehen kann.

Ich muss allerdings noch testen wie sich das ganze verhält wenn der Motorregler bei Bremsvorgängen die Energie wieder zurück in die Akkus leitet. Wenn das über 30 Volt werden gibts es wieder ärger mit dem Mikrokontroller – und im schlimmsten Fall Magic Smoke.

Für meinen Aufbau habe ich den Teiler auf eine kleine Lochrasterplatine gelötet und mit Anschlusskabeln versehen.

Spannungsteiler auf Lochraster

Die Akkuanschlüsse haben Kabelschuhe bekommen, die Signalseite geht wieder auf ein Servokabel (nur GND und SIGNAL belegt). Um den Aufbau vor Schmutz und Nässe zu schützen noch in Plastidip verpackt und fertig :)

Spannungssensor mit Anschlusskabeln und “gedipt”

3 Gedanken zu „Spannungüberwachung für den Robot“

    1. Habe ich aktuell noch nicht an mein System angebunden da ich grad mit der Fernsteuerung beschäftigt bin. Mit der Spannungsmessung wollte ich morgen oder Mittwoch anfangen. Dann gibt es auch einen Artikel mit Beispielcode dazu :)

  1. // Habe gier nen Bsp. Code für Arduino der Funkt bei mir :)
    /*
    WoWa Board Computer Bat1
    +12v
    |
    I 10KOhm
    |
    |——– Analog Pin0 Arduino
    I 4,7KOhm
    |
    – GND — GND Arduino
    */
    //int ledPin = 13; // LED connected to digital pin 13

    float mess1 = A2;

    void setup() {
    Serial.begin(115200);
    //pinMode(ledPin, OUTPUT); // sets the digital pin as output
    }

    void loop() {
    int mess1 = analogRead(mess1);
    //float Spannung = map(mess1, 0, 1024, 0 , 1475)/100.00;
    float Spannung = map(mess1, 0, 1024, 0 , 2075)/100.00; // 2075 wert anpassen bis die gemessene spannung past
    //float perc = constrain(mess1, 815, 898);
    //float Prozent = map(perc, 809, 898, 0 , 100); // 736=12,8V=100% – 616=9V=Leer – Muss noch auf 11,8 V
    int i = (int) Spannung; //Convertiere float in int wert
    Serial.println(Spannung);
    //Serial.println(Prozent);
    //Serial.println(“—-“);

    delay(1000);
    // digitalWrite(ledPin, HIGH); // sets the LED on
    //delay(1000); // waits for a second
    //digitalWrite(ledPin, LOW); // sets the LED off
    }

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">