Hallo zusammen, ich bastele gerade an einem batteriebetriebenen Gerät (3-AA-Zellen) und nutze den ADC von einem ATmega48 hinter einem Spannungsteiler (siehe Schaltplan im Anhang). Nachdem ich heute noch einmal einen Blick in den Schaltplan geworfen habe ist mir aufgefallen, daß es keine gute, sondern eher eine schlechte Idee war, und ich mich eigentlich wundern muß, daß die Schaltung seit 2 Wochen läuft und weder der ADC7 noch der PC5 zerstört ist, da der PC5 immer dann, wenn ich nicht die Batteriespannung messe, hochohmig ist. Nur: Wie macht man es richtig? Ein Spannungsteiler mit großen Widerständen direkt zwischen Batterie und GND kommt eigentlich nicht in Frage, da das Gerät auch stärkeren Umwelteinflüssen (Luftfeuchte, Schmutz) ausgesetzt sein wird, und ich die Batteriespannung und nicht die Mondphase abschätzen will. Die Wirkung einer Z-Diode über dem R15 als Überspannungsschutz könnte ich jetzt nicht abschätzen- dann habe ich ja einen nichtlinearen Widerstand parallel dazu eingebaut. Und der "Stromverbrauch" dieses Teils würde ja auch nicht verschwinden. Gibt es für so ein Standardproblem keine Standardlösung?
Steh ich grad auf dem Schlauch? Wie funktioniert das denn? Du misst einmal VCC (über eine Art Pullup aus R15 und R16) und gleichzeitig einen Bruchteil dieser Spannung über R15? Ich hätte entweder die interne 2,54 V RefSpg verwendet, oder mir extern eine Spannung über einer Z-Diode erzeugt, gegen die ich vergleichen kann.
Hallo Jens, ich messe die Batteriespannung über den ADC7 an einem Spannungsteiler zwischen Batterie und Masse (PC5 auf "low"). Das Messen ist auch nicht das Problem, sondern das Nichtmessen mit PC5 auf hochohmig und damit ADC7 und PC5 auf U_Batt .
hallo also warum sollte irgendwas kaputt gehen ?? hab mich vor einem monat auch mal mit dem Problem messen der spannung eines akkus befasst um daraus auf den ladezustand zu kommen und bei evtl. unterschwelligen spannung das nutzgerät abzuschalten . da gabs einige seiten im netz, hab ich leider jetzt nicht hier die links.. einfach mal suchen google . "verfahren zum ladezustand batterie". hab mir mal theoretisch ein paar gedanken gemacht wie eine recht einfache und doch relativ genaue schaltung designen kann: wenn es möglich die spannung von einem gerät kurz zu trennen, oder für das betriebene gerät kurz zu puffern : DANN spannung evtl. über MOSFEt oder Relais (...) abschalten => leerlaufspannung messen oder evtl. einen anderen C definiert laden lassen .. und dann messen bzw. auch zeit der ladung messen ... hab mir da über die details noch nicht gedanken gemacht. oder halt ohne diese abschalterei... evtl. feintunning mit trimmer-R und multimeter richtige schwellenwerte einstellen : das geht ja bei einzelschaltungen.
Vielleicht mit einem PNP-Transistor in der Leitung von U-batt, der bei Bedarf angesteuert wird? Eventuell kann hochohmiger Spannungsteiler auch dauernd versorgt werden (2M2/3M9 statt 2k2/3k9). Meßgenauigkeit leidet etwas, dürfte aber gehen.
Du ziehst PC5 auf Low und misst dann die Spannung an PC7? Was hat denn das für einen Grund? Der AD Eingang hat einen Widerstand von (lies es besser im Datenblatt nach) 1MegOhm (oder irgendwas in der Größe, absoluter Wert ist ja egal). Damit fliet ein Strom von meinetwegen ein paar µ => nix geht kaputt. Dasselbe gilt, wenn du den PC5 auf HighZ schaltest; dann fließt (im schlimmsten Fall) ein Strom von ein paar µ => nix geht kaputt. Genaue Werte stehen im Datenblatt, sterben sollte nichts. Trotzdem ist mir das Messverfahren schleierhaft :)
batterien und "verbrat"-spannungsregler ist auch nicht so die richtig gute Kombination ..
Hi Nicolas, das was Du da machst, funktioniert doch, oder? Also lass es so. Den ADC kannst Du icht zerstören. Da fließt kein Strom rein, weil der Eingang extrem hochohmig ist (Spannungsmessung ... logisch, oder?). Und solange die Quelle der Messspannung unter 10k oder so bleibt, funktioniert der ADC auch einwandfrei. Wenn Du es aber richtig (und genauer) machen willst, dann benutze einen Operationsverstärker dafür. Das hat allerdings zur Folge, dass Deine Schaltung etwas umfangreicher wird. Aber wenn es funktioniert, dann lass es einfach so.
Bei manchen neueren AVRs kann man man den ADC auf "Versorgungsspannung messen" einstellen: VCC als Vref und die interne Bandgap-Referenz auf den ADC-Eingang. Dann brauchts gar keine externe Beschaltung mehr, um die Batteriespannung zu messen, also auch keinen Spannungsteiler mehr.
> Trotzdem ist mir das Messverfahren schleierhaft :)
Ich denke, er hat einen schaltbaren Spannungsteiler gebaut um Energie zu
sparen.
@ Nicolas
Dein avr ist nicht defekt weil der Spannungsteiler relativ hochohmig
ist. Die Eingänge besitzen außerdem clamp-dioden. D.h. die überschüssige
Spannung wird auf die Versorgungsspannung abgeführt.
Wie man es richtig macht? k.A. :P
Ich würde den 3,3V Spannungsregler rauswerfen. Bis 5,5V verkraftet der
atmega48, das wären dann 1,83V pro Alkaline Zelle. Soviel haben die
maximal, wenn sie vollgeladen sind. Das käme deinem Energieverbrauch zu
Gute. Schau dir mal den Eigenverbrauch des Spannungsreglers an, der
liegt um Größenordnungen höher als der deiner Schaltung im standby.
Wenn du dann sowieso die Akkuspannung an Vcc hast ist alles ganz
einfach:
- ADC auf Vcc als Referenz schalten.
- Interne Bandgapreferenz damit meßen.
Und mit etwas Nachdenken kannst du das dann umrechnen. Musst keinen
einzigen Pin dafür opfern.
Gerade sind mir noch ein paar Punkte aufgefallen: - Reset kannst du unbeschaltet lassen, der avr hat einen internen pullup. Macht das layout einfacher. - Aref kannst du ebenfalls unbeschaltet lassen. - Spannungsteiler für den LM317: Ist das nicht etwas niederohmig? Was möchtest du denn schönes basteln?
Wollte gerade schreiben, dass - der Spannungsteiler am LM317 viel Strom braucht, - der LM317 auch weggelassen werden kann und - bei Wegfall des LM317 die Batteriespannung auch ohne ADC-Eingang gemessen werden kann. Dann habe ich gesehen, dass avion23 schon alles geschrieben hat :) Nur noch eins: Ohne Spannungsregler fällt nicht nur dessen Eigenstromverbrauch weg, die Batterie kann wegen des nicht mehr vorhandenen Dropouts weiter entleert werden (bis 2,7V herunter, beim mega48V sogar bis 1,8V), bevor der Controller aufhört zu arbeiten.
Hallo zusammen, danke für die raschen Antworten. Ich mag nicht so gerne unfertige Projekte posten, aber wenn es denn so weit ist, mache ist das hier im Forum publik. Der Grund für den Spannungsregler ist die Peripherie, vor der einige nur von 2,7V-3,3V spezifiziert ist. Ob sie wirklich von 4,5V zerstört wird, werde ich mal später in einem aufopferungsvollen Versuch ausprobieren, sobald in den Prototypen nicht mehr brauche. Ob ich dann einen Spannungsregler vor den ATmega oder Spannungsteiler vor jede Signalleitung lege ist eine andere Frage, ersteres halte ich aber für "sauberer". Der LM317 wird sicherlich noch ersetzt, es ging mir bei dem Schaltplan nur ums Prinzip.
Ist der "Aufwand" mit dem Spannungsteiler nicht überflüssig? Der ADC besitzt einen Eingangswiderstand von mindestens 55 Meg; das macht einen Strom von 90 nA @ 5V... Da leckt doch alles andere mehr.
das mit der interenen Referenzspannung is ja interessant! das ist mir neu das sowas jetzt an bord einiger AVRs ist. also wenn man nun mal akku-spannung (12V) messen will, bzw. bei leerem Akku abschalten will dann nimmt man ein spannungsteiler stellt ihn so ein das bei vollem akku 2.56V = int. Ref-Spannung abfällt über ADC und wenn die spannung dann sinkt infolge des entladenen akkus dann def. man grenzwert der Messspannung und schlatet ab. -- oder gibts noch bessere ideen dazu ? geht mir hier um bleigelakku (vermeidung tiefenentladung) und daran betriebene musikanlage...
nur ein problem sehe ich noch ... aufgrund der unterschiedlichen last (~1A) wird die Uakku ziehmlich schwanken ... dadurch wird das messen im betrieb ziehmlich ungenau , oder ? man könnte über eine diode/transistor ein kleinen C laden lassen und über den messen >> dann läd der C sich bei momentan kleiner last auf Ux und bei großer last kann aber nix zurückfließen ... ist das ein ansatz oder niocht besonders klug ?
Beitrag #2378682 wurde von einem Moderator gelöscht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.