altRobots
/robotigs/icons/actuator.pngActuatoren
/robotigs/icons/printboards.pngAlgemeen
/robotigs/icons/chassis.pngChassis
/robotigs/icons/arduino_logo.pngµControllers
/robotigs/icons/florigs.pngFlorigs
/robotigs/icons/interfacing.gifInterfacing
/robotigs/icons/microphone_icon.pngMuziek
/robotigs/icons/musicKey_icon.pngMuzikanten
/robotigs/icons/shield.pngSchildjes
/robotigs/icons/sensors.gifSensors
/robotigs/icons/languages.pngTalen
/robotigs/icons/battery.pngVoedingen
altContact
Spanningsdeler/robotigs/icons/login_key.png    alt  
Bewegende robots worden gewoonlijk gevoed door accu`s of batterijen. Zodra de batterijen minder worden zal de robot allerhande onvoorspelbaar gedrag gaan vertonen. Daarom is het handig als de robot zijn eigen batterijen kan controleren. Dit kan worden bereikt met een accu monitor. Het is bovendien makkelijk in ieder project te implementeren. Wat je nodig hebt heet een spanningsdeler en er zijn slechts 2 weerstandjes nodig om een spanningsdeler te bouwen. Een spanningsdeler wordt voor veel meer dingen gebruikt in robots:
  • Arduino en ADC
    Hier staan diverse voorbeelden van mogelijke versterkers indien het signaal geen 5Vdc haalt. Four of the differential inputs (ADC1 &ADC0, ADC3 & ADC2, ADC9 & ADC8 and ADC11 & ADC10) are equipped with a programmable gain stage, providing amplification steps of 0 dB (1×), 20 dB (10×) or 46 dB (200×) on the differential input voltage before the ADC conversion.
    The ADC minimum current is 0uA the maximum is 1uA as specified in the data sheet Section 28 under input leakage current. In zijn algemeenheid: des te hoger de weerstanden worden gekozen, des te minder invloed dit heeft op de te meten schakeling. Echter als je de weerstanden te hoog kiest dan gaat EMI een rol spelen en zullen de meetresultaten niet erg nauwkeurig zijn. Arduino doet het met 10kΩ. Weerstanden worden verkocht in pakketten. Daar zitten natuurlijk een aantal waardes tussen die niet of nauwelijks in schakelingen worden gebruikt. Deze waardes gebruik ik voor de spanningsdelers indien mogelijk. Een voorbeeld om een accupack te meten is met 2 stuks 68kΩ (blauw grijs oranje).

  • mrBoldermin accumonitor
    /robotigs/icons/voltage_divider.png mrBoldermin is een mobiel robotje dat gevoed wordt door een accupack van 2 stuks 18650 accu`s. Dit zijn standaard accucellen die in serie geschakeld tezamen maximaal Vin=8,4Vdc leveren. Ik gebruik voor zowel R1 als R2 een weerstand van 47kΩ (geel paars oranje).
    Vout = Vin R 2 R 1 + R 2 Vout = Vin * {R2} over {R1+R2} Dat de weerstanden gelijk zijn maakt het rekensommetje iets makkelijker want dan wordt het: Vout = Vin * 1/2. Bij een Vout van max 5Vdc bedraagt de meetwaarde 1023 en is de Vin=10Vdc. Per gemeten bit in de ADC stelt dit dus 10/1023 = 0,09775 Vdc voor. De weerstandjes blijken echter niet erg nauwkeurig. Daardoor wijkt de theorie af van de praktijk. We krijgen een meting te zien van (meting is 885) 8.6Vdv terwijl dit 8.3 Vdc moet zijn. Kortom nieuw factor wordt 0,93446327. Dat is een afwijking van ongeveer 4% en dus binnen de toleranties van de weerstanden, maar erg vervelend als je de cellen 4% overlaadt.

  • mrBlue accumonitor
    /robotigs/documentatie/plaatjes/Motordriver3.jpg mrBlue is een mobiele robot die wordt gevoed door 2 stuks 18650 accu`s. Dit zijn standaard accucellen die in serie geschakeld tezamen maximaal 8,4Vdc leveren. Als we voor Vmax rekenen met 10Vdc dan hebben we een transferfunctie nodig van H=1/2. Dit betekent dat een spanningsdeler met 2 gelijke weerstandjes nodig is. Ik gebruik 2 weerstandjes van 5k6Ω.

  • Spanningsdeler theorie
    /robotigs/icons/voltage_divider.png Een spanningsdeler (wiki) is een schakeling die een elektrische spanning in delen splitst. De Arduino`s zijn heel erg goed in het meten van een spanning tussen de 0Vdc - 5Vdc. De µcontroller beschikt daartoe over meerdere Analog to Digital Convertors. Daarom proberen we analoge signalen van sensors vaak om te zetten in een signaal van 0-5Vdc. Een van de makkelijkste vormen van een spanningsdeler is een potentiometer. De beide buitenste pins (uiteinden van de weerstand) van de potmeter worden verbonden met de aarde en met de 5Vdc op de Arduino. Vervolgens wordt de middelste pin (de loper) verbonden met een ADC pin op de Arduino.

    An Atmel AT micro controller analogue input pin does not actually measure the pin but merely compares the pin to a preset compare-voltage. This preset compare-voltage can be set to several possibilities with analogReference(). For the Uno R3 the choices are DEFAULT, INTERNAL or EXTERNAL. The DEFAULT setting compares against the Vcc 5Vdc received by the Atmel controller. INTERNAL measures against an internal made 1.1 Vdc. EXTERNAL compares against whatever you connect to pin Vref, but that is no use in this case. The most stable setting in our case is the INTERNAL setting. This means that our 100% measurement (1023) maximum is equal to 1.1 Vdc on the analogue pin. But since we feed our Arduino with 9Vdc which is stabilized on the Arduino board to 5Vdc we can use the DEFAULT option. If you feed through USB it might be more precise to use INTERNAL though. Een meting duurt 13μs - 260μs.

    /robotigs/documentatie/plaatjes/batteryMonitor_bb.pngIn een vaste spanningsdeler dient de waarde van de weerstandjes zo te worden gekozen dat de spanning op de ADC pin nooit hoger wordt dan 5Vdc. De Arduino zal onherstelbaar beschadigen als de spanning toch hoger wordt. Houdt daarom vooral bij oplaadbare batterijen en accu`s rekening met een ruime marge want tijdens en vlak na het laden kan de spanning aanzienlijk hoger zijn dan de normale werkspanning. Een veilige marge is om te rekenen met 50% boven de normale werkspanning. De mate waarin de spanning moet worden verkleind heet de transfer functie (wiki Eng, wiki NL). Deze functie geeft de verhouding tussen de ingangsspanning van de spanningsdeler en zijn uitgangsspanning. Als we bijvoorbeeld de werkspanning van een 6Vdc accu willen monitoren dan doen we 50% erbij. Dat maakt 9Vdc en voor het rekengemak maken we daar 10Vdc van. Dat is dus dubbel zo hoog als de 5Vdc die we kunnen meten. Daardoor is er een transferfunctie nodig van H=1/2. De wet van Ohm (wiki NL vertelt ons dat we dan 2 identieke weerstandjes nodig hebben. Het stroomverbruik wordt bepaald door beide weerstandjes tezamen. Volgens de datasheet van bijv. de 2560 is het optimaal om een uitgang impedantie van 10kΩ te gebruiken.

    VtypVmaxHR1Ω+R2ΩVmax/R
    6Vdc10Vdc1/294kΩ63.8µA
    9Vdc15Vdc1/3147kΩ61.2µA
    12Vdc20Vdc1/4197kΩ60,9µA

  • LDR
    alt Een vergelijkbare vorm van een spanningsdeler is te vinden bij de LDR. Dit is de goedkoopste oplossing maar u moet zelf een kleine schakeling maken met een weerstandje van 100kΩ (R2) om een spanningsdeler op te zetten. R1 is de LDR. Vin mag direct aan de voeding (5Vdc) worden aangesloten. Vout moet dan worden aangesloten op de Arduino aan een ingangspin met een AD-convertor. Een LDR kost ongeveer € 0.11/stuk. Adafruit heeft ook een handige uitleg. Er bestaan verschillende types LDR die ieder een eigen maximale weerstand hebben. Indien u absolute waardes nodig heeft dan moeten de waardes dus nog worden geijkt.

  • Banggood grondvochtigheid
    /robotigs/icons/DelerBanggoodSensorCropped.png Deze sonde verondersteld dat de weerstand tussen 2 pennen in de grond afhankelijk is van de grondvochtigheid. Dus willen we de weerstand over de beide pennen van de sensor meten. We beginnen met een veronderstelde weerstand van de sonde in de grond van rond de 400kΩ. R2 is een vaste weerstand op het breadboard. De waarde van R2 wordt bepaald door de verwachte waarde van R1. Des te lager de waarde van R2 wordt gekozen, des te lager de meetwaardes zullen zijn. Op dit moment testen (grafiekje) we met 2k2Ω (rood, rood, rood) voor R2.


hallo
Algemene informatie over dit onderdeelAlgemene informatie test
KYcode RO-047
Prijs indicatie  €  0,04
Sketch voorbeeld  RO-047
Pinout tekst  Connections
Menu groep  Sensors
Laatste verandering  2020-02-12

Software voor dit onderdeel
BolderbotMiniParty.ino  Arduino Mega 2560
Discharger.ino  Arduino Mega 2560
RO-047.ino  Arduino Uno Rev3

Robots waar dit onderdeel in zit
Bijbot
LoRa Pong
mrBlue V2
Just wait till your 57....
Afb 1: RO-047 breadboard

Just wait till your 57....
Afb 2: Resistor color codes

Just wait till your 57....
Afb 3: Box2 weerstanden