Forum: Mikrocontroller und Digitale Elektronik Arduino und ADS1115 Schaltung


von David F. (david_f105)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein Arduino Projekt bei dem mithilfe eines Schalters ein 
Countdown gestartet wird und dieser Countdown wird auf einem Display 
angezeigt. Der Arduino wird von einem normalen USB Batterie-Pack mit 
Spannung versorgt. Da das Batterie-Pack im Gehäuse verbaut ist kann man 
die integrierte LED nicht sehen und somit weiß man nie wie voll der Akku 
noch ist. Aus diesem Grund habe ich einen ADS1115 eingebaut, welcher 
direkt an den Akku geht (nicht an die Ladeelektronik) und die Spannung 
vom Akku misst. Mir ist klar, dass das nicht sehr genau ist. Da der Akku 
wenn er voll ist ca. 50h hält, bekomme ich durch die Spannungsmessung 
aber zumindest einen Eindruck vom Batterielevel. Aktuell zeige ich das 
Batterie-Level in 20% Schritten an, und das reicht mir vollkommen aus. 
Im Anhang habe ich die Spannungsversorgung meines Projektes mal 
skizziert. Die beiden Leitungen nach unten gehen direkt auf den Akku. In 
echt sieht das ganze geringfügig anders aus, weil ich nicht dieses 
LiPoly-Breakout-Board habe, sondern einfach ein USB Akku-Pack geöffnet 
habe und an die dort vorhandene Elektronik dran gegangen bin.
Jetzt habe ich das Problem, dass ich den Arduino nicht mehr ausschalten 
kann mit meinem Schalter. Denn wenn ich den Schalter trenne, lässt der 
ADS1115 die Spannung von A0 auf VDD durch (dank der verbauten 
Schottky-Dioden).
1. Wie kann ich die Schaltung ändern, dass mein Schalter wieder 
funktioniert?
2. Aktuell habe ich einfach die VDD Leitung am ADS1115 entfernt und 
somit kann der ADS1115 den Arduino nicht mehr mit Spannung versorgen. 
Trotzdem wird die Spannung gemessen, in dem Fall bin ich mir aber nicht 
sicher, ob ich damit irgendwelche Nachteile habe?
3. Die beste Lösung wäre vermutlich, wenn ich den Schalter zwischen 
Batterie und Ladeelektronik schalte oder? Leider komme ich da kaum dran 
weil die Kabel am Akku nur wenige cm lang sind.

Vielen Dank

von Bastler (Gast)


Lesenswert?

Wenn es genauer sein soll dann empfehle ich einen Coulomb Counter. Ich 
hab dafür mal einen DS2740 benutzt, der ist über Onewire problemlos an 
den Arduino zu bekommen und da er einen low-side Sense-Widerstand (in 
der Masseleitung) verwendet hat man keine Probleme auch bei höheren 
Spannungen.

Warum überhaupt einen zusätzlichen ADS wenn Du nur die Spannung und nur 
ungefähr wissen willst? Der Arduino hat einen vollkommen tauglichen ADC 
- Du bräuchtest doch nur einen Widerstandsteiler dimmensionieren damit 
er zur ADC-Referenz passt und gut ist...

von David F. (david_f105)


Lesenswert?

Hi, ja so ein Coulomb Counter wäre evtl. noch etwas für die Zukunft. 
Aktuell wäre ich erstmal zufrieden, wenn ich die Spannung richtig messen 
könnte.
Ich hatte zuerst über den Arduino selbst die Spannung gemessen. Das 
Problem ist, dass der Arduino nur einen 10bit AD-Wandler hat. Bei 5V 
macht das ca. 5mV aus. Eine stabile/präzise Referenzspannung für die 5V 
gibt es auch nicht. Bei meinen Tests kann die gemessene Spannung da im 
Bereich +-0,04V variieren und das hat mich nicht überzeugt. Deshalb habe 
ich mir den ADS1115 geholt und die Anbindung hat direkt geklappt. Leider 
habe ich nun das Problem mit den Dioden.

von Bastler (Gast)


Lesenswert?

Wenn man nur ein Schätzeisen braucht reicht das doch - außerdem kommt 
das ja darauf an welche Referenz und Spannungsteiler man wählt. Der 
Mega328 hat eine interne Bandgap Referenz von 1,1V man muss die aber 
auswählen, sonst mit der ADC gegen Betriebsspannung.

https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/

Außerdem macht es sich meist ganz gut einen Mittelwert aus mehreren 
Messungen zu bilden, dann zappelt der Wert nicht so. Und wenn man gerade 
dabei ist kann man auch noch oversamplen auf 12Bit. Das reicht 
spätestens dann locker als Schätzeisen für den Akku und die ganze 
Dioden-sache ist gegessen.

http://www.microchip.com//wwwAppNotes/AppNotes.aspx?appnote=en591540

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.