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")