Spændingsdeler
Denne komponent kan bandt andet benyttes til at måle batteri niveau.
EK Guldbergsgade
Bygning E, lokale A448
Komponenten er kun tilgængelig for studerende på IT-teknolog-uddannelsen.
Hvis man driver sin esp32 (eller anden mikrocontroller) via batteri vil batteriet ofte have en spænding der ligger højere end de 3.3V den max kan læse via dens ADC ben. Derfor kan der bruges en spændings deler.
Denne komponent indeholder 2 modstande med et 1 til 5 størrelses forhold, praktiskvis betyder det at den spænding der aflæses via signal benet vil være 1/5 af den reelle spænding.
Tekniske specifikationer
| Operativ spænding | 0-25V DC |
| Strømforbrug | 1mA |
| Interface | Analog |
| PCB størrelse | 35mm x 20mm x 14mm |
Pinout
| Nummer | Navn | Function |
|---|---|---|
| 1 | - | Negativ forsyning |
| 2 | NC | Positiv forsyning |
| 3 | S (Signal) | Signal (Analog) |
Hvordan fungerer den?
Voltage Dividers - Electronics Basics
For at kunne sænke spændingen til et niveau der kan aflæses på en mikrocontroller, benytter denne komponent sig af en spændingsdeler, dvs at på komponenten sidder der to mostande i serie hvor at den spænding der sendes til mikrocontrolleren via komponentens signal ben, er spændingen der ligger i mellem de to modstande.
På komponenten er størelses forholdet mellem de 2 modstande 1 til 5. Input voltage på komponenten bliver dermed 5 gange mindre. Dette gør at man med en ADC som kan aflæse op til 5V kan aflæse værdier der som på komponentens input max er 25V (da 5V * 5 = 25V).
ESP32 kan max aflæse 3.3V via sine ADC pins, dermed kan den aflæse værdier fra komponents input der max er 16.5V (da 3.3V * 5 = 16.5V)
Kodeeksempel
from machine import Pin, ADC
from time import sleepbat = ADC(Pin(36))
bat.atten(ADC.ATTN_11DB)
bat.width(ADC.WIDTH_12BIT)
while True:
bat_val = bat.read()
m_spaending = bat_val/4095*3.3
print("Analog maalt vaerdi: ", m_spaending)
spaending = m_spaending * 5
print("Input spaending: ", spaending)
sleep(1)