Batteriespannung

Das Joy-Car verfügt über ein Batteriefach, das die Energieversorgung des Fahrzeugs sicherstellt. An dieses Batteriefach ist Pin 2 angeschlossen, welcher mit einem ADC (Analog-Digital-Wandler) verbunden ist. Dadurch können wir die Spannung des Batteriefachs auslesen und überwachen.

Diese Funktion ermöglicht es, den Ladezustand der Batterie zu überprüfen und rechtzeitig Maßnahmen zu ergreifen, falls die Spannung zu niedrig wird, um einen Ausfall des Joy-Cars zu vermeiden.

Im folgenden Beispiel wird die Spannung des Batteriefachs, die an Pin 2 des Joy-Cars anliegt, ausgelesen. Der analoge Spannungswert, der vom ADC erfasst wird, wird anschließend in Volt umgerechnet. Nach der Umrechnung wird die Spannung in Volt ausgegeben, um den aktuellen Ladezustand der Batterie zu überwachen.

Batteriespannung

Die Batteriespannung kann über den Analog-Digital-Converter-Pin des micro:bit abgefragt werden. So kann beispielsweise die noch verfügbare Batteriekapazität ermittelt werden.

Codebeispiel

JoyCar.initJoyCar(RevisionMainboard.OnepThree)
basic.forever(function () {
    serial.writeLine("Eingangsspannung: " + JoyCar.readAdc() + " V")
    basic.pause(1000)
})

Berechnung

Zunächst werden Konstanten definiert, die für die Berechnung der Batteriespannung erforderlich sind. Diese Konstanten berücksichtigen die Eigenschaften des Analog-Digital-Wandlers (ADC), wie beispielsweise die maximale Eingangsspannung und den Spannungsbereich des Batteriefachs. Zu den Konstanten gehört die Referenzspannung uref, die die maximale Spannung angibt, die der ADC verarbeiten kann. Eine weitere wichtige Konstante ist die Auflösung des ADC uratio, die den maximalen digitalen Wert beschreibt, den der ADC ausgeben kann.

Diese Konstanten sind essenziell, um die digitalen Werte, die vom ADC ausgelesen werden, korrekt in reale Spannungswerte in Volt umzuwandeln. Mit ihrer Hilfe wird sichergestellt, dass die Batteriespannung präzise berechnet und überwacht werden kann.

# Für die Umwandlung erforderliche Variablen
# Max. Spannung am ADC-Pin / ADC-Auflösung
uref = 3.3 / 1024
# (R1 + R2) / R2, Spannungsteilungsverhältnis (in kOhm)
uratio = (10 + 5.6) / 5.6

Spannungsversorgung berechnen

In der Methode supplyVoltage wird die Spannung des Batteriefachs berechnet. Zunächst wird der analoge Spannungswert von Pin 2 ausgelesen und in der Variable adcvoltage gespeichert. Dieser Wert repräsentiert den vom ADC gemessenen digitalen Wert. Anschließend wird in der Variable voltaged der digitale ADC-Wert mithilfe der zuvor definierten Konstanten, insbesondere der Referenzspannung (uref), in einen Spannungswert umgerechnet. Dies entspricht der Spannung, die der ADC gemessen hat. Abschließend wird in der Variable voltagep die tatsächliche Batteriespannung berechnet. Dabei wird das Teilerverhältnis des Spannungsteilers (uratio) berücksichtigt, um die korrekte Spannung des Batteriefachs zu erhalten.

Diese Methode liefert eine präzise Berechnung der Batteriespannung, die zur Überwachung des Ladezustands genutzt werden kann.

# Methode zur Berechnung der Versorgungsspannung aus dem Akkupack
def supplyVoltage():
    # Lesen des ADC-Werts
    adcvoltage = pin2.read_analog()
    # Wert in Spannung umwandeln
    voltaged = uref * adcvoltage
    # Multiplikation der gemessenen Spannung mit dem Spannungsteilungsverhältnis
    # um die tatsächliche Spannung zu berechnen
    voltagep = voltaged * uratio
    return voltagep

Codebeispiel

# Notwendige Bibliotheken importieren
from microbit import *

# Definiere deine Joy Car Mainboard Revision
joycar_rev = 1.3

# Für die Umwandlung erforderliche Variablen
# Max. Spannung am ADC-Pin / ADC-Auflösung
uref = 3.3 / 1024
# (R1 + R2) / R2, Spannungsteilungsverhältnis (in kOhm)
uratio = (10 + 5.6) / 5.6

# Methode zur Berechnung der Versorgungsspannung aus dem Akkupack
def supplyVoltage():
    # Lesen des ADC-Werts
    adcvoltage = pin2.read_analog()
    # Wert in Spannung umwandeln
    voltaged = uref * adcvoltage
    # Multiplikation der gemessenen Spannung mit dem Spannungsteilungsverhältnis
    # um die tatsächliche Spannung zu berechnen
    voltagep = voltaged * uratio
    return voltagep

# gibt den Wert aus der Methode supplyVoltage aus
print("Eingangsspannung = " + str(supplyVoltage()) + " V")