Geïnteresseerd in het meten van het stroomverbruik van EV's? Het elektriciteitsverbruik van een voertuig in de tijd bijhouden is belangrijk, maar het is nog interessanter om dit te kunnen doen in relatie tot de aard van de gevolgde route. Dit project maakt het mogelijk om de elektrische basisparameters van de tractiemotor te detecteren door ze te relateren aan de route, hellingen en hoogtes, met behulp van een GPS-ontvanger en Google Maps.

Meer inzicht in stroomverbruik EV

Een gehandicapte vriend van mij gebruikt een elektrische scooter om zich zelfstandiger te kunnen verplaatsen. Hij woont ook vele maanden per jaar in een klein dorpje in de Ligurische Apennijnen op een steenworp afstand van mijn huis. We wonen in de bergen en er zijn veel klimmetjes en afdalingen, ook met steile hellingen. Daarom moeten de twee zware loodaccu’s, die geschikt zijn voor elektrische tractie, vrij vaak worden vervangen.

Ik vroeg me af hoeveel de scooter verbruikte in verschillende omstandigheden, en dacht er zelfs over om over te stappen op beter presterende accu’s zoals lithium-ion exemplaren. Deze scooters zijn uitgerust met zware gelijkstroommotoren met permanente magneet en loodaccu’s, in tegenstelling tot e-bikes en scooters die compacte, lichtgewicht borstelloze motoren en lithiumaccu’s hebben. De scooter waarbij de tests zijn uitgevoerd, is uitgerust met twee 12V/36Ah-accu’s die onlangs zijn vervangen door accu’s met een grotere capaciteit (45 Ah).

Ik had al een systeem ontworpen voor het meten van het verbruik van DC-verbruikers, en ik heb dat project uitgebreid met een GPS-ontvanger om ook de positie en snelheid van het voertuig op een microSD-kaart op te slaan. Het is duidelijk dat dit systeem van toepassing is op alle elektrische voertuigen, onder voorbehoud van wijzigingen in de shunt en de spanningsaanpassing.

Inschrijven
Schrijf u in voor tag alert e-mails over Testen & Meten!

Voor de GPS gebruikte ik mijn eigen functies om snelheid, positie en UTC-tijd uit te lezen. Ik gebruik de GPS-uitlezing van de hoogte niet, omdat die onvoldoende nauwkeurig is om hellingen te bepalen. Tijdens de eerste compilaties van het nieuwe programma realiseerde ik me dat het RAM-geheugen (2 KB) van de Arduino Nano ATMega328 MCU onvoldoende was voor een stabiele werking. Ik dacht er daarom aan om deze te vervangen door een ATmega32U4 MCU zoals die gebruikt wordt op de Arduino Leonardo. Deze heeft 2,5 KB RAM en een vrije UART.

De naam van dit project komt deels van Leonardo (het board is Arduino Leonardo-compatibel), van de naam van de module (INA226) die de stroom en spanning aan de belasting meet, en van de GPS-ontvanger die het systeem completeert.

Uit deze metingen leidde ik het verbruik af van de scooter, bestuurd door mijn vriend, tijdens verschillende omstandigheden van de route die gemakkelijk te herkennen zijn in Google Maps. Helaas kan de helling niet berekend worden op basis van de verticale GPS-coördinaten , omdat deze onvoldoende nauwkeurig zijn en niet genoeg resolutie hebben. Er bestaan druksensoren die de hoogte kunnen weergeven met een resolutie van enkele tientallen centimeters, maar deze heb ik bij mijn tests niet gebruikt.

Beschrijving van het systeem

Het blokschema van de verschillende componenten waaruit het systeem is opgebouwd, is te zien in figuur 1.

Figuur 1. Blokschema van het systeem.

De INA226-module

Bij stroommetingen met de shunt zijn er twee manieren om die uit te voeren:

  • meting naar massa (low-side): de shunt is aangesloten tussen de belasting en massa.
  • meting naar de bron (high-side): de shunt is aangesloten tussen de voeding en de belasting.

De INA226, een IC van Texas Instruments, meet de stroom digitaal met een high- of low-side shunt en meet tevens de spanning, berekent het vermogen en biedt bovendien een multifunctioneel alarm . Het blokschem van de INA226 is te zien in figuur 2.

Figuur 2. Het blokschema van de INA226 (bron: Texas Instruments)

De interne ADC is gebaseerd op een 16-bits delta/sigma-converter (ΔΣ) met een typische conversietijd van enkele milliseconden, dus hij is ook geschikt voor stromen die snel in de tijd veranderen. Hij kan ook negatieve stromen meten – negatieve waarden worden weergegeven in het two’s complement-formaat.

De spanning over de shunt wordt met een resolutie van 2,5 µV gemeten bij een volle schaal van 32.768 × 2,5 µV = 81,92 mV. Voor de VBUS-spanning bedraagt de resolutie 1,25 mV met een theoretische volle schaal van 40,96 V, hoewel een waarde van 36 V niet overschreden mag worden. De vermogensresolutie is 25 keer die van de stroom, waarbij de volle schaal afhangt van de gebruikte shunt. Het systeem biedt dus een opmerkelijke meetnauwkeurigheid.

Figuur 3. De INA226-module.

De chip is verbonden met de MCU via de I2C-bus. Kleine modules (breakout-boards) zoals die welke ik heb gebruikt (figuur 3) zijn goed verkrijgbaar. Het IC heeft twee adrespennen, A0 en A1; door deze aan te sluiten op VCC, GND, SDA, of SCL wordt het I2C-adres van de INA226 ingesteld. De module die ik gebruikte heeft twee pull-down weerstanden, dus het adres ervan is 0x40. Er zijn pads op de achterzijde om dit te veranderen: Door deze aan te sluiten op VCC of SDA of SCL kunt u maximaal 16 verschillende adressen instellen, wat erg handig is voor het monitoren van een accu met veel cellen.

Op deze module is een 0,1Ω-shunt (R100) gemonteerd waarmee een maximale stroom van 0,8192 A kan worden gemeten. Ik gaf er echter de voorkeur aan deze te verwijderen, er een condensator van 1 µF voor in de plaats te solderen als ruisfilter, en mijn eigen shunt te gebruiken (verderop meer hierover).

De ATmega32U4 Pro Micro-module

De gebruikte Pro Micro-module heeft een MCU van het type ATmega32U4 en is compatibel met Arduino Leonardo. Hij kan worden geprogrammeerd met de Arduino IDE door het Leonardo-board te selecteren. Het geheel is piepklein: ongeveer 33×18 mm, nog kleiner dan de Arduino Nano, en vergelijkbaar met een oude 24-pins DIL-EPROM. Als u geen ruimteproblemen hebt, kunt u ook een Arduino Leonardo-board gebruiken.

Figuur 4. De ATmega32U4-MCU.

Figuur 4 toont het board dat voor het project is gebruikt. Dit heeft een 5V-spanningsregelaar aan boord en kan worden gevoed via USB of via de RAW-ingang (6...12 V). Als we voeden via de RAW-pen met een minimale spanning van 6 V, bedraagt VCC +5 V, geleverd door de regelaar. Als we voeden via USB, staat er een spanning van +4,8 V op RAW, een iets lagere spanning ten gevolge van de spanningsval over een Schottky-diode als beveiliging dient (samen met een zekering). Als u de interne regelaar wilt gebruiken, die geen koellichaam heeft, zou ik lage ingangsspanningen van 6...7,2 V willen aanraden en belastingen van meer dan 100...150 mA te vermijden. Als er een externe regelaar beschikbaar is, zoals in ons geval, kan de print ook gevoed worden met +5 V op de VCC-pin door de on-board regelaar uit te schakelen.

De MicroSD-module

Ik koos een SD-module die geschikt is voor Arduino, dat wil zeggen met logische niveaus van 5 V en een 5 V voeding – zie figuur 5. De module bezit een 3,3V-regelaar en een niveau-adapter. Modules zonder niveau-adapters en 3,3V-regelaar mogen niet worden gebruikt voor dit project. Voor de aansturing van de SD heb ik de SD-bibliotheek van Arduino gebruikt.

Figuur 5. De microSD-module.

Het LCD

Ik heb een gewoon tweeregelig LC-display met 16 karakters gebruikt met een Hitachi HD44780-compatibele controller en een achtergrondverlichting met zeer efficiënte LED’s die ongeveer 20 mA verbruikten, wat ik heb gereduceerd tot 10 mA door een externe weerstand in serie te plaatsen met de interne weerstand. In figuur 6 zien we het display dat is verbonden met de MCU via een parallelle interface met 4 data- en 2 stuurbits.

Figuur 6. Het LC-display.

De GPS-module

Er zijn talloze GPS-/GNSS-satellietontvangers op de markt, zelfs goedkope. Het belangrijkste is dat hij gevoed kan worden met 5 V; daarnaast moet u de baudrate van de seriële poort kennen, die normaal 4.800 of 9.600 bit/s bedraagt. Sommige modules hebben een ingebouwde antenne, andere een apart aangesloten antenne. Ik heb een oude 4.800-baud-ontvanger gebruikt, met ingebouwde antenne en magnetische voet, en een 4-polige JST-connector om hem op het systeem aan te sluiten.

Het schema

Figuur 7 (volgende bladzijde) geeft het schema van het systeem. Naast de connector voor de seriële interface heb ik ook een schakelaar gemonteerd om vermogensmetingen met of zonder GPS te kiezen. De SS-knop wordt gebruikt om het loggen op microSD te starten of te stoppen. De LM7805-regelaar zou ook weggelaten kunnen worden als we die op het board gebruiken, maar een externe regelaar is beslist betrouwbaarder en heeft in dit geval minimaal 7 V nodig; indien uitgerust met een koellichaam kan hij ingangsspanningen tot 24 V verwerken. De stroomopname van het instrument (met achtergrondverlichting) is ongeveer 47...50 mA.

Figuur 7. Het complete schema van het systeem.

Schottky-diode D1 voorkomt conflicten die zich zouden voordoen als de externe voeding (5Ve) en USB-voeding beide voorhanden zijn. Weerstanden R1 en R2 vormen samen met condensator C5 een eerste-orde laagdoorlaatfilter om ruis te reduceren.

Berekening van de shunt

Voor grote stromen kunt u beter geen zelfgebouwde shunt gebruiken: voor bereiken van 10, 20, 50 en 100 A of meer zijn shuntweerstanden goed verkrijgbaar. Deze zijn ook erg nauwkeurig (meestal in de 0,5%-klasse) en zien er ongeveer zo uit als in figuur 8. Een vrij gebruikelijke spanning op de shuntuitgang is 75 mV, voor alle volle-schaal-stromen.

Figuur 8. De 50A-shunt.

Deze volle-schaal spanning ligt erg dicht bij die van de INA226, die 81,92 mV is. In mijn geval wilde ik stromen tot 50 A met de 75mV-shunt meten; de weerstand bedraagt dan:

Rse = 75 mV / 50 A = 1,5 mΩ

De volle-schaal-stroom bedraagt dan:

Ifs = 81,92 mV / Rse = 54,613 A

De stroomresolutie is nu:

54,613 / 32768 = 1,666 mA

Het maximale vermogen dat door de shunt wordt gedissipeerd bedraagt:

P = V * I = V2 / R = 4,474 W

GPS-data

Voor de interpretatie van de NMEA-strings, verzonden door de GPS-ontvanger, heb ik functies gebruikt die ik zelf heb geschreven. Het programma leest de NMEA RMC-strings (Recommended Minimum Specific Data) omdat deze naast de positiecoördinaten ook de snelheid, uitgedrukt in knopen, en de datum en tijd bevatten. Bijvoorbeeld:

 

$GPRMC,141507.870,A,4429.2796,N,00907.4338,E,0.00,,180522,,*1B

 

Dit staat voor UTC-tijd 14:15:07,870, geldige gegevens, breedtegraad 44°29,2796' NB, lengtegraad 9°07,4338' OL, snelheid 0 knopen, geen koersrichting, datum 18/05/2022, geen modusindicator. De parameters zijn opgesomd in tabel 1.

Tabel 1. De NMEA RMC-velden.

Coördinaten worden geconverteerd van graden en minuten naar decimale graden; de string outdata, die op microSD wordt opgeslagen, is als volgt georganiseerd:
 

,time,latitude,longitude,speed

 

In het geval van het eerdergenoemde voorbeeld wordt dat:

 

,141507,4429.2796,00907.4338,0.00

 

INA226-stuursoftware

Ik heb een gewijzigde versie van de INA226.h-bibliotheek van Korneliusz Jarzebski gebruikt, omdat er fouten in het origineel zaten. Ik heb de functies calibrate(float rShunt, float iMaxExpected) en setShuntVoltageLimit(float voltage) aangepast.

Misschien is de bibliotheek inmiddels gecorrigeerd door de auteur, maar ik raad aan de versie te gebruiken die als download beschikbaar is op de Elektor Labs-webpagina bij dit artikel , omdat deze is getest met dit systeem.

De functie calibrate() heeft als invoerparameters de waarde van de shuntweerstand en de maximale stroom; hier:

 

rShunt = 0,0015 Ω en iMaxExpected = 54,613 A

 

De functie berekent verschillende variabelen:

 

  • currentLSB = iMaxExpected / 32768 = 54,613 / 32,768 = 1,666 [mA].
  • calibrationValue = 0.00512 / currentLSB / rShunt = 0,00512 / 0,00166 / 0,0015 = 2,048
  • powerLSB = currentLSB * 25 = 0,000625 * 25 = 15,625 [mW].

Het display en microSD-dataformaten

Rekening houdend met de resolutie van de variabelen die op het scherm worden weergegeven, zijn dit de formaten:

  • Busspanning: V=xx.xx (7 tekens)
  • Shuntstroom: I=xx.xxx (8 tekens)
  • Busvermogen: W=xxx.xx (8 tekens)

Op de eerste regel voer ik de spanning en stroom in, gescheiden door een spatie, en op de tweede regel het vermogen – als volgt:
 

V=xx.xx I=xxx.xxx

W=xx.xx

 

Als GPS wordt gebruikt, worden de snelheid in km/h en de UTC-tijd op de tweede regel getoond.

Inschrijven
Schrijf u in voor tag alert e-mails over Power & Energy!

Meting van het verbruik

De string dataString, die wordt opgeslagen op SD, is als volgt georganiseerd:

 

Vbus,Ishu,power,Vshu

 

Hierin is Vbus de accuspanning, Ishu de stroom door de shunt, power hun product en Vshu de spanning over de shunt. Als er geen GPS vioorhanden is, zijn dit de enige meetwaarden in elk sample; als er wel GPS voorhanden is, worden gegevens over tijd, positie en snelheid toegevoegd.

Test van het LeoINAGPS-systeem

Voor deze tests heb ik de hiervoor genoemde shunt van 50 A (0,5%) gebruikt. De tests werden uitgevoerd in een klein dorpje in de Ligurische Apennijnen; het instrumentarium was gemonteerd op een elektrische scootmobiel (figuur 9) die werd bestuurd door de eigenaar, mijn vriend Roberto. Om ruimte te maken voor de instrumenten werd de behuizing onder de bestuurdersstoel verwijderd.

Figuur 9. De elektrische scootmobiel met meetapparatuur; mijn vriend
Roberto is zichtbaar bezorgd over de aanpassingen aan zijn voertuig!

De route startte vanuit de tuin van het huis van mijn vriend, waarbij het eerste deel werd gekenmerkt door verschillende meer of minder steile afdalingen, terwijl de terugweg plaatsvond lang een andere weg met redelijk steile stijgingen. Er waren echter verschillende stukken die in beide richtingen werden afgelegd. De route was relatief kort, maar met vrij steile hellingen die de motoren van deze scooters (meestal van Chinese makelij) zwaar belasten.

De scootmobiel was uitgerust met een conventionele gelijkstroommotor van ongeveer 1000 W, gevoed door twee in serie geschakelde 12V-lood/zuuraccu’s die geschikt zijn voor elektrische tractie. De beveiliging bestaat uit een zekering van 40 A en een thermische schakelaar van 30 A. De ingebouwde elektronische MOSFET-regelaar stuurt de motor in PWM-modus aan. De oorspronkelijke accu’s hadden een capaciteit van 35 Ah, maar werden vervangen door accu’s van 45 Ah om de actieradius op oneffen terrein zoals het testgebied te vergroten. Accu’s hebben op dergelijk bergachtig terrein een relatief korte levensduur en moeten bijna elk jaar worden vervangen. De aangegeven capaciteit van 45 Ah is berekend op een ontlading gedurende 20 uur (I = 2,25 A); bij een ontlading in 5 uur, wat de werkelijkheid meer benadert, bedraagt de capaciteit nog slechts 35 Ah (I = 7 A).

Met uitzondering van de GPS was de instrumentatie gemonteerd onder het zadel van de scootmobiel en bovenop de accu’s, zoals te zien is in figuur 9 en figuur 10. Het LeoINAGPS-systeem zelf werd gevoed door twee lithium-accu’s in serie (7,2 V).

Figuur 10. Plaatsing van de on-board instrumenten.

De GPS-ontvanger was inclusief antenne op een speciale standaard gemonteerd zodat hij niet door de bestuurder werd geblokkeerd, zoals te zien in figuur 9. GPS-ontvangers leveren meestal elke seconde een positiemeting, dus het systeem moet worden gesynchroniseerd met de ontvangst van de NMEA-berichten. Elke meting, opgeslagen op de microSD-kaart, bestaat uit acht gegevens: accuspanning [V], geleverde stroom [A], vermogen [W], shuntspanning [V], UTC-tijd, breedtegraad, lengtegraad en snelheid [km/u]. Coördinaten worden uitgedrukt in graden en tienden van graden.

Voordat de acquisitie wordt gestart door op de knop aan de voorkant van de logger te drukken, moet u wachten tot de GPS het signaal van minstens drie satellieten ontvangt en verwerkt, wat enkele minuten duurt. Zodra de GPS operationeel is, begint de LED te knipperen en verschijnt ook de UTC-tijd op het display.

De Italiaanse lokale tijd loopt één uur voor op UTC tijdens zomertijd (CEST) of twee uur tijdens wintertijd (standaardtijd, CET). Na afloop van een test moet de knop opnieuw worden ingedrukt om het loggen van data te stoppen. De test verliep erg goed en duurde 963 s, ongeveer 16 minuten.

Metingen

Figuur 11 toont de accuspanning, de geleverde stroom, het vermogen en de snelheid van het voertuig als functie van de tijd in seconden. Het gedeelte waar de snelheid nul is, komt doordat de scootmobiel stopte om de foto in figuur 9 te maken. Tijdens afdalingen werkt de borstelmotor als een dynamo en daar was de stroom omgekeerd en steeg de spanning een paar keer tot meer dan 32 V, wat niet ideaal is voor de accu’s.

Figuur 11. De belangrijkste parameters als functie van de tijd.

Belangrijke informatie wordt verkregen uit de stroom als functie van de tijd, waar we gemakkelijk de verschillende afdalingen kunnen herkennen (te zien aan de negatieve stroomwaarden): de eerste afdaling (tijdstippen 89...112) dan een kleine hobbel en het begin van de tweede afdaling (tijdstip 136) gevolgd door de stop (148...186) en de voortzetting met verschillende afdalingen (189...300), de langste, de derde (660...683) en de vierde (759...786), die het steilst was.

Zoals te verwachten vond het sterkste verbruik plaats tijdens stijgingen, met pieken van meer dan 800 W. U kunt de stroompieken zien bij het starten van de motor of het stoppen van de scootmobiel (remmen).

De typische snelheid tijdens de test was ongeveer 4...5 km/u met enkele pieken van 6 km/u, zo ongeveer vergelijkbaar met wandeltempo. Dit komt omdat er geen lange vlakke stukken waren. De heenweg eindigde op het tijdstip 372; de terugweg werd afgelegd via een grotendeels andere route en was ook langer. Het moment van omkeren is in de snelheidsgrafiek te zien als een scherpe dip van 5,2 naar 2 km/u. Deze manoeuvre is nog beter te zien in de lengtegraden-grafiek in figuur 12.

Figuur 12. Grafiek met lengte- en breedtegraden.

De scootmobiel sloeg, na een vrij steile klim, een klein weggetje in dat hij honderd meter volgde mon dan weer terug te keren. Deze omkering, die plaatsvond op tijdstip 704, is goed te zien in de breedtegraden-grafiek. Uit deze curven kunnen we zien dat de coördinaten van het eindpunt gelijk zijn aan het beginpunt.

De route importeren in My Maps

Om de route gesuperponeerd op de luchtfoto’s te zien, kunt u My Maps en Google Maps gebruiken, die online beschikbaar en volledig gratis zijn. U moet een Google-account hebben en deze eenvoudige stappen volgen:

  • log op uw computer in op My Maps;
  • klik op +CREATE A NEW MAP;
  • klik in de legenda van de kaart op Add layer;
  • geef de nieuwe laag desgewenst een naam;
  • klik in de nieuwe laag op Import;
  • kies of upload het VIPVSGPS.csv-bestand en klik op Select;
  • selecteer de kolommen met breedtegraden (de eerste), lengtegraden (de tweede) en labels voor elk punt (bijvoorbeeld vermogen).
 
Figuur 13. De volledige testroute (bron: Google Maps)
Figuur 14. Detail van het begin- en eindpunt van de testroute (bron: Google Maps)

Als u de route in Google Maps wilt bekijken en de luchtfoto eroverheen wilt leggen, importeert u gewoon de laag met een paar eenvoudige bewerkingen. Het resultaat is te bewonderen in figuur 13, en figuur 14 toont het begin- en eindpunt van de route in meer detail. Met deze programma’s kunt u naast elk punt een bepaalde waarde plaatsen; in dit geval gaf ik er de voorkeur aan om het vermogen aan te geven dat op dat moment bij de motor werd gemeten.

Energieberekening

Om een idee te krijgen van de actieradius is het belangrijk om te weten hoeveel energie er aan de accu’s wordt onttrokken. De hoeveelheid elektrische energie ∆E die door de accu’s aan de motor wordt geleverd, hangt af van het ontwikkelde vermogen en de tijd ∆t = t2 – t1. Als het vermogen P constant zou zijn in de tijd, zou de energie gemakkelijk berekend kunnen worden:

 

E = P · ∆t [J] (1)

 

Energie wordt in het internationale systeem uitgedrukt in joule (1 J = 1 W/s); voor elektrische systemen gebruiken we liever wattuur (Wh), verkregen door te delen door 3600. In ons geval is het vermogen helemaal niet constant maar varieert het in de tijd, dus moeten we van ‘discreet’ naar ‘continu’ en wordt formule (1):

Een fundamentele numerieke ,methode om een integratie uit te voeren is de trapezoïdale benadering:

Dit levert een vrij goede benadering. Om de bepaalde integraal van een functie te bepalen – dat wil zeggen het oppervlak onder de curve te berekenen – vervangen we P(t) door een groot aantal trapeziums, waarvan de oppervlakte gemakkelijk te berekenen is (figuur 15).

Figuur 15. Integratie door trapezoïdale benadering.

Deze methode wordt nauwkeuriger naarmate ∆t kleiner wordt. In ons geval bedraagt de bemonsteringsperiode ∆t één seconde, en dus:

 

E2 = (P1 + P2 ) ∙ 1s / 2 + E1 [J]

 

Met een spreadsheet is het eenvoudig om de energie (in J) te berekenen en, na deling door 3600, in Wh. Om de actieradius van de scootmobiel bij benadering te schatten, moeten we de lading C berekenen die de accu’s verliezen, uitgedrukt in Ah, en moeten we de stroom integreren, op dezelfde manier als we al gezien hebben:

 

C2 = (I1 + I2 ) ∙ 1s / 2 + C1 [Ah]

 

De lading is gerelateerd aan de energie via de spanning; in feite wordt de energie in [Wh] verkregen door de lading te vermenigvuldigen met de gemiddelde spanning. De resultaten van de testgegevens, verwerkt in Matlab, zijn als volgt:

  • LeoINAGPS verwerking meetgegevens.
  • Naam verwerkt bestand = VIPVSGPS2.CSV
  • Aantal gelogde samples = 963
  • Sampleperiode = 1,000 [s]
  • Energie die aan de motor is geleverd = 48,943 [Wh]
  • Capaciteitsverlies (P&N) = 1,650 [Ah]
  • Capaciteitsverlies (P) = 1,793 [Ah]
  • Gemiddelde accuspanning = 26,103 [V]
  • Gemiddelde ontlaadstroom = 6,206 [A]
  • Capaciteit (E/V gemiddeld) = 1,875 [Ah]

 

In dit geval wordt de verlorengegane capaciteit (positief en negatief) onderschat, deels door de te hoge ∆t en deels door de gedeelten waar de stroom negatief is (hellingen), die niet effectief bijdragen aan het laden van de accu. In feite zijn ze uiteindelijk eerder schadelijk dan nuttig. Het Het capaciteitsverlies op basis van positieve stroom (P), gemiddelde accuspanning en gemiddelde stroom is ook berekend.

Inschrijven
Schrijf u in voor tag alert e-mails over Elektrisch Voertuig!

Het programma

Bij het opstarten initialiseert het programma de I/O, het LC-display, de INA226, controleert of de microSD-kaart aanwezig is en leest het de stand van de GPS-schakelaar in. In setup() wordt de seriële poort geïnitialiseerd met een baudrate van 4.800:

 

Serial1.begin(4800); // initialize UART with GPS baud rate

 

Als u een modernere module gebruikt, heeft hij waarschijnlijk een baudrate van 9.600. In dat geval moet u die functieparameter wijzigen.

Als u de schakelaar in de stand GPS zet, stuurt het programma “Wait for GPS...” naar het display en wacht het op een geldig signaal van de GPS. De functie GetData() haalt de tijd, positie en snelheid uit de NMEA RMC-strings.

Als de gegevens geldig zijn (Status = “A”) verschijnen de snelheid en tijd (hhmmss) op de tweede regel van het scherm. Deze functie converteert ook de coördinaten, oorspronkelijk uitgedrukt in graden en minuten, naar de notatie in decimale graden.

Vragen of opmerkingen?

Hebt u technische vragen of opmerkingen naar aanleiding van dit artikel? Stuur een e-mail naar de auteur of naar de redactie van Elektor


Het artikel “Het LeoINAGPS-systeem” (240305-03) verschijnt in Elektor sep/okt 2024.