Hallo Leute,
ich bin gerade dabei eine kleine Schaltung zu bauen, bei der mit einem
Wemos D1 mini lite jede Stunde ein Eingang abgefragt werden soll, und
täglich eine Statusnachricht per SMS gesendet werden soll.
Die restliche Zeit befindet sich der Wemos in DeepSleep.
Betrieben wird das ganze über 4 x 1,5V AA Batterien in Reihe.
Da das Ziel dieser Schaltung ist, so Batterie schonend wie möglich und
somit so lange wie möglich zu laufen, würde mich interessieren, ob
jemand von euch noch einen Fehler in der Schaltung findet, oder
vielleicht einen Verbesserungsvorschlag hat, um wirklich die maximale
Laufzeit herauszubekommen.
Laut meinen Tests und Messungen würden die Batterien nach ca. 15 - 20
Tagen aufgebraucht (noch ca. 1,1V pro Batterie) sein.
Kann mir jemand helfen, um noch mehr Laufzeit heraus zu bekommen?
Danke für eure Hilfe
Noch kurze Infos zur Schaltung:
A0:
Hier wird die aktuelle Batteriespannung gemessen, welche über einen
FDS4465 Mosfet und BC547C Transistor geschaltet wird, um möglichst wenig
Energie während dem DeepSleep zu verbrauchen.
D5:
Ausgang, um alle angeschlossenen Bauteile zu aktivieren
D6:
Eingang, der abgefragt wird
Ein Magnetschalter ist an die Schraubklemme 2Pol gehängt.
(Durch D5 aktiviert)
D7:
Eingang, der Durch Taster auf GND geschaltet wird für Debug Funktionen.
D8:
Ausgang zu Einschalten des GSM Moduls (SIM800L) über den LT1529
Spannungsregler, der die Spannung auf 4V regelt.
TX/RX:
Kommunikation zum GSM-Modul.
D1/D2:
Kommunikation zum RTC-Modul DS3231
Daniel schrieb:> ich bin gerade dabei eine kleine Schaltung zu bauen, bei der mit einem> Wemos D1 mini lite jede Stunde ein Eingang abgefragt werden soll, und> täglich eine Statusnachricht per SMS gesendet werden soll.
Warum nimmst du ein Modul mit WLAN, wenn du SMS verschicken willst?
Hier wird unnötig Energie verbraucht.
Die Widerstände rund um den BC547 könnten um den Faktor 10 oder mehr
vergrößert werden.
Ein kleinerer MOSFET würde dann immer noch schnell genug schalten.
my2ct schrieb:> Warum nimmst du ein Modul mit WLAN, wenn du SMS verschicken willst?
Hat sich mehr oder weniger angeboten.
Muss ich das WLan irgendwie extra ausschalten, wenn ich es nicht
benötige oder ist es von Anfang an aus?
der schreckliche Sven schrieb:> Hier wird unnötig Energie verbraucht.> Die Widerstände rund um den BC547 könnten um den Faktor 10 oder mehr> vergrößert werden.> Ein kleinerer MOSFET würde dann immer noch schnell genug schalten
Danke, das werde ich sofort versuchen.
Habe leider als ich den Betrag geschrieben habe vergessen mich
anzumelden.
Also nicht wundern, ich bin auch Daniel(Gast).
der schreckliche Sven schrieb:> Hier wird unnötig Energie verbraucht.> Die Widerstände rund um den BC547 könnten um den Faktor 10 oder mehr> vergrößert werden.> Ein kleinerer MOSFET würde dann immer noch schnell genug schalten.
Meinst du damit nur R5 und R6, oder auch R7?
Welchen MOSFET würdest du dann empfehlen?
Du könntest MOSFET und BC547 ganz weglassen und hinter dem LT1529
messen, der wird ja sowieso abgeschaltet. Damit misst du die wirklich
wichtige Spannung und weißt, warum die Message nicht gesendet wurde. Das
GSM-Modul zieht ja 2A und schaltet sich bei 3V aus.
Liefert eine normale Batterie überhaupt soviel Strom? Kurzzeitig muss
sie übrigens 5 bis 7A liefern, wenn der LT1529 einschaltet und die Elkos
auflädt.
1.5V Lithium-Primärzellen sind keine Lösung, auch wenn sie mehr Strom
liefern. Die haben 1.9V Leerlaufspannung, der WEMOS D1 MINI verträgt
aber nur max. 6.5V. Das ist ja auch mit Alkali-Mangan etwas knapp.
R3 und R4 könnten auch hochohmiger sein. D8 / R3 bleibt ja schon mal
minutenlang eingeschaltet, bis sich das GSM-Modul eingebucht hat und die
SM losgeworden ist.
Gute Batteriehalter haben einen mechanischen Verpolungsschutz.
Bauform B. schrieb:> Du könntest MOSFET und BC547 ganz weglassen und hinter dem LT1529> messen, der wird ja sowieso abgeschaltet. Damit misst du die wirklich> wichtige Spannung und weißt, warum die Message nicht gesendet wurde. Das> GSM-Modul zieht ja 2A und schaltet sich bei 3V aus.
Ich möchte den Batteriestatus in Prozent ausgeben, das funktioniert dann
nicht.
Wenn ich messe, wenn das Gsm eingeschaltet ist, dann wird wegen dem
hohen Stromverbrauch das Messergebnis verfälscht (Spannungsrinbruch)
Gibt es vielleicht noch eine andere Möglichkeit?
Bauform B. schrieb:> Liefert eine normale Batterie überhaupt soviel Strom?
Ja habe ich bereits getestet...funktioniert
Bauform B. schrieb:> R3 und R4 könnten auch hochohmiger sein. D8 / R3 bleibt ja schon mal> minutenlang eingeschaltet, bis sich das GSM-Modul eingebucht hat und die> SM losgeworden ist.
Wie viel Ohm stellst du dir dabei vor?
Bauform B. schrieb:> Gute Batteriehalter haben einen mechanischen Verpolungsschutz.
Ich habe bis jetzt noch keinen gefunden. Kannst du mir einen empfehlen?
Daniel schrieb:> Kann mir jemand helfen, um noch mehr Laufzeit heraus zu bekommen?
Schmeiss den üblen Stromfresser WEMOS ESP8266 raus
und nimm was ordentliches. Also kein Arduino,
sondern einen nackten AVR oder PIC.
Da deine Zeitabstände vermutlich uhrzeitgenau sein sollen,
lasse den an 32kHz Quartz laufen.
Viel Rechenleistung hat er nicht mehr, brauchst du aber auch nicht,
wenn du kein Arduino-API verwendest.
Hallo,
Daniel E. schrieb:> Wenn ich messe, wenn das Gsm eingeschaltet ist, dann wird wegen dem> hohen Stromverbrauch das Messergebnis verfälscht (Spannungsrinbruch)
und was nutzt Dir ein Meßergebnis ohne die Last?
Wenn der Kram sich dann beim Versuch einzubuchen komplett wegen
Spannungseinbruch der Batterien abstürzt?
Daniel E. schrieb:> Muss ich das WLan irgendwie extra ausschalten, wenn ich es nicht> benötige oder ist es von Anfang an aus?
Das WLAN ist default an.
Ausschalten geht mit einem Trick:
ESP.deepSleep(WAIT, RF_DISABLED);
delay(100);
Stromverbauch in Betrieb ist dann ca. 15mA.
Wenn man es mal wieder braucht:
ESP.deepSleep(WAIT, RF_CAL);
delay(100);
Gruß aus Berlin
Michael
Michael B. schrieb:> was ordentliches. Also kein Arduino, sondern einen nackten AVR oder PIC.
Na ja ... ich werfe von einem China-A*-ProMini die LED und den
Spannungsregler runter und komme bei 5V / 16MHz im sleep auf 5..7µA. Ich
weiß, dass weniger geht, aber mit 60mAh pro Jahr komme ich gut zurecht.
Da fehlt dann aber WLAN, weshalb Daniel wohl den Wemos nehmen will und
ich brauche externe Hardware für die Programmierung.
Manfred schrieb:> Na ja ... ich werfe von einem China-A*-ProMini die LED und den> Spannungsregler runter und komme bei 5V / 16MHz im sleep auf 5..7µA. Ich> weiß, dass weniger geht, aber mit 60mAh pro Jahr komme ich gut zurecht.>> Da fehlt dann aber WLAN, weshalb Daniel wohl den Wemos nehmen will und> ich brauche externe Hardware für die Programmierung.
Nein wlan benötige ich nicht.
Kannst du mir das näher erklärren, wie du auf den geringen
Stromverbrauch gekommen bist?
Manfred schrieb:> Na ja ... ich werfe von einem China-A*-ProMini die LED und den> Spannungsregler runter und komme bei 5V / 16MHz im sleep auf 5..7µA. Ich> weiß, dass weniger geht, aber mit 60mAh pro Jahr komme ich gut zurecht.>> Da fehlt dann aber WLAN, weshalb Daniel wohl den Wemos nehmen will und> ich brauche externe Hardware für die Programmierung.
Mit welcher Spannung kann man den dann betreiben?
Daniel E. schrieb:> Kannst du mir das näher erklärren, wie du auf den geringen> Stromverbrauch gekommen bist?
Wenn Du, wie von Michael B. (laberkopp) erwähnt, einen nackten AVR
einsetzt, bekommst' den im Tiefschlaf auf unter 1µA. Ich habe für mich
entschieden, dass mir das zu mühsam ist.
Auf allen Arduinos sind Spannungsregler drauf, z.B. der AZ1117-3.3 darf
5..10 mA Eigenverbrauch haben (Datenblatt: Quiescent current).
Die roten LEDs auf den Dingern mit 1k Vorwiderstand wollen auch Strom,
der niemandem hilft.
Hast Du noch einen USB-Anschluss drauf, nimmt auch dieser Stein einge
mA, die man nicht los wird.
Ich habe da abgemalt:
http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/
und ProMinis aus China verwendet, unter 2 Euro.
Natürlich nicht mit Messer und Gewalt, man kann die Teile auch
ordentlich ablöten. Die auf der Seite genannten Ströme kann ich
bestätigen - wenn alle Aus- und Eingänge definiert sind.
Ich versorge meine Anwendung aus einem 12V-BleiGel mit einem 5V-Regler
MCP1703, der natürlich auch Strom braucht, real gemessen 5µA.
Kommt drauf an, was Du machst und wie Dein µC geweckt wird. Meiner
(AT328 5V 16MHz) wacht alle 8s auf, länger schlafen geht nicht. Er
addiert einen Zähler, prüft dessen Stand und legt sich wieder hin.
Etwa alle 15 Minuten werde ich dann für einige Millsekunden wach, messe
eine Spannung und gehe wieder schlafen - oder auch nicht. Im Falle von
"wach bleiben" wird ein Relais geschaltet und mein Kram wird aus dem
Netz versorgt ... im zeitlichen Durchschnitt bewegt sich die
Gesamtschaltung bei 20µA.
Danke für eure Hilfe
Ich habe mir jetzt einen Arduiono Pro mini bestellt und werde es mit
diesem versuchen.
Werde aber auch alle anderen Infos versuchen umzusetzen.
Ich hoffe ich darf mich bei weiteren Fragen noch einmal melden.
Daniel E. schrieb:>> Mit welcher Hardware wirst Du den programmieren?> Habe mir diesen bestellt:> .. amazon.de ...> Heute bekommen und funktioniert soweit alles.
Alles gut! Ich wollte nur vorbeugen, dass Du evtl. übersehen hast, dass
der ProMini kein USB an Bord hat.
Hoffentlich hast Du die Version mit 8 MHz gekauft, der kann vom
Spannungsbereich her direkt mit drei NiMh oder Alkalibatterien laufen,
ohne Regler(verluste). Er käme auch mit einer LiIon gut zurecht.
Man kann auch die 16MHz Version mit 3,3V betreiben, indem man die
CLKDIV8 Fuse setzt und danach im Programm den Clock Prescaler wie
gewünscht ändert (zum Beispiel auf 2).
Bei meinen Experimenten liefen sie sogar alle mit 3,0V und 16MHz noch
stabil, aber ich würde mich doch lieber nach dem Datenblatt richten.
Stefanus F. schrieb:> Man kann auch die 16MHz Version mit 3,3V betreiben, indem man die> CLKDIV8 Fuse setzt und danach im Programm den Clock Prescaler wie> gewünscht ändert (zum Beispiel auf 2).
So, wie ich es einschätze, wird hier mit Arduino gearbeitet und der µC
über USB programmiert.
Wie kann man da die Fuses anfassen / setzen - ich denke, garnicht?
Manfred schrieb:> Wie kann man da die Fuses anfassen / setzen - ich denke, garnicht?
Ja gar nicht, das geht nur mit einem ISP Programmer.
Aber wie gesagt kann man mit etwas Mut zur Lücke die Fuse einfach so
lassen, wie sie ist und darauf hoffen, dass der µC die ersten paar Takte
trotz Unterspannung ausführt. In denen kann man dann wie gesagt den
Prescaler sinnvoll einstellen.
Manfred schrieb:> Hoffentlich hast Du die Version mit 8 MHz gekauft,
Habe ich ;)
Manfred schrieb:> Ich habe da abgemalt:> http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/> und ProMinis aus China verwendet, unter 2 Euro.>> Natürlich nicht mit Messer und Gewalt, man kann die Teile auch> ordentlich ablöten. Die auf der Seite genannten Ströme kann ich> bestätigen - wenn alle Aus- und Eingänge definiert sind
Was meinst du genau mit alle Aus- und Eingänge definiert?
Also alle Pins, die ich nicht brauche auch einfach als INPUT oder OUTPUT
definieren?
Daniel E. schrieb:>> ordentlich ablöten. Die auf der Seite genannten Ströme kann ich>> bestätigen - wenn alle Aus- und Eingänge definiert sind> Was meinst du genau mit alle Aus- und Eingänge definiert?>> Also alle Pins, die ich nicht brauche auch einfach als INPUT oder OUTPUT
definieren?
Output.
Wenn als Input, muß der Pullup aktiviert werden oder der Eingang extern
beschaltet werden, um undefinierte Effekte zu vermeiden.
Manfred schrieb:> Output.>> Wenn als Input, muß der Pullup aktiviert werden oder der Eingang extern> beschaltet werden, um undefinierte Effekte zu vermeiden.
Danke werde ich machen.
die Analogen wahrscheinlich auch oder?
Manfred schrieb:> Wenn als Input, muß der Pullup aktiviert werden oder der Eingang extern> beschaltet werden, um undefinierte Effekte zu vermeiden.
Das habe ich mal ausprobiert. Im Deep-Sleep Modus spielt es keine Rolle,
ob die unbenutzten Eingänge des ESP8266 offen sind, oder mit
Widerständen beschaltet werden. Bei allen anderen ICs würde ich
allerdings für definierte Pegel sorgen, es sei denn du weißt ganz sicher
dass es dort auch keine Rolle spiel.
Stefanus F. schrieb:> Manfred schrieb:>> Wenn als Input, muß der Pullup aktiviert werden oder der Eingang extern>> beschaltet werden, um undefinierte Effekte zu vermeiden.> Das habe ich mal ausprobiert. Im Deep-Sleep Modus spielt es keine Rolle,> ob die unbenutzten Eingänge des ESP8266 offen sind, oder mit> Widerständen beschaltet werden.
Wir sind inzwischen beim ProMini. Aber irgendwie klingt es logisch, dass
im DeepSleep nichts passieren sollte.
Aber irgendwie ist mir so, dass da irgendwas rumwackelte - vielleicht
die Analogeingänge? Der Wandler ist ja aus, aber die hochohmigen
Eingänge des Multiplexers?
> Bei allen anderen ICs würde ich> allerdings für definierte Pegel sorgen, es sei denn du weißt ganz sicher> dass es dort auch keine Rolle spiel.
Ich habe mir eine Meinung gebildet: Es kostet wenige Minuten Tipperei,
alle Anschlüsse zu definieren, bis auf zwei (A6 A7) kann man auch die
analogen per Software definieren. Also Risiko spielen oder machen?
Daniel E. schrieb:> die Analogen wahrscheinlich auch oder?
Auf jeden Fall. Ich habe mir mal aus dem Forum kopiert:
"Wenn ein analoger Eingang mit pinMode als digitaler Ein/Ausgang
definiert wurde, werden aus A0 bis A5 die Pins 14 bis 19.
A6 und A7 kann man nicht digital nutzen."
A6 und A7 würde ich fest nach Gnd oder Vcc verdrahten oder benutzen.
Daniel schrieb:> bei der mit einem> Wemos D1 mini lite jede Stunde ein Eingang abgefragt werden soll
Dann nimm doch einfach den Alarmausgang der RTC, um die Schaltung jede
Stunde einzuschalten.
Den Rest der Stunde zieht die RTC ~1µA.
Manfred schrieb:> Ich habe mir eine Meinung gebildet: Es kostet wenige Minuten Tipperei,> alle Anschlüsse zu definieren, bis auf zwei (A6 A7) kann man auch die> analogen per Software definieren. Also Risiko spielen oder machen?
Ok das werde ich auf jeden Fall machen.
Ich hätte noch eine Frage zum Stromsparen:
An meinem µC ist unter anderem auch ein Button angeschlossen.
Um diesen nicht dauerhaft zu bestromen wird er über einen digitalen
Ausgang nur eingeschaltet, wenn er auch betätigt werden darf.
Am INPUT hängt ein 1k Pulldown Widerstand.
Bringt es etwas den OUTPUT, welcher direkt zum Button verbunden ist,
auch über einen Widerstand auf GND zu schließen oder ändert das am
Stromverbrauch nichts?
Der Stromverbrauch wird höher. Sobald der Ausgang eingeschaltet (= 1,
high) wird, fließt Strom durch diesen Widerstand.
Solange der Ausgang ausgeschaltet (= 0, low) ist, ändert sich nichts.
Wenn der Pin nicht als Ausgang sondern als Eingang (Analog oder Digital)
programmiert würde, wäre der Widerstand nützlich. Aber das macht man ja
freiwillig nicht. Unfreiwillig ist der Zustand unvermeidlich, solange
der uC im Reset ist oder gerade programmiert wird. In der fertigen
Anwendung passiert das nur ganz kurz nach dem Einschalten.
Man muss für jeden einzelnen Pin untersuchen, was die Schaltung kurz
nach dem Reset oder beim Programmieren macht, solange der Pin kein
Ausgang ist. In der Regel muss man einen Widerstand spendieren. Hier
haben wir den seltenen Fall, dass es ohne günstiger ist.
Bauform B. schrieb:> Wenn der Pin nicht als Ausgang sondern als Eingang (Analog oder Digital)> programmiert würde, wäre der Widerstand nützlich. Aber das macht man ja> freiwillig nicht. Unfreiwillig ist der Zustand unvermeidlich, solange> der uC im Reset ist oder gerade programmiert wird. In der fertigen> Anwendung passiert das nur ganz kurz nach dem Einschalten.
Danke für die Hilfe.
Bedeutet das dann auch, wenn ich über SoftwareSerial mit meinem GSM
Modul kommuniziere, es besser ist an meinen digitalen Rx-Pin einen
Pulldown-Widerstand zu schalten oder würde das die Kommunikation stören?
Bauform B. schrieb:> R3 und R4 könnten auch hochohmiger sein. D8 / R3 bleibt ja schon mal> minutenlang eingeschaltet, bis sich das GSM-Modul eingebucht hat und die> SM losgeworden ist.
Wäre das dann nicht bei R3 das selbe?
Ich habe gerade bei einer Messung festgestellt, dass mein DS3231 während
dem LowPower Mode 0,16mA zieht.
Vcc ist dabei nicht aktiviert.
Weiß jemand an was das liegen könnte?
Daniel E. schrieb:> Ich habe gerade bei einer Messung festgestellt, dass mein DS3231 während> dem LowPower Mode 0,16mA zieht.> Vcc ist dabei nicht aktiviert.>> Weiß jemand an was das liegen könnte?
Vielleicht, weil SCL und SDA eine höhere Spannung haben, als die
Batterie. Guck mal in die Electrical Characteristcs Tabelle, was da als
Rahmen-Bedingung für die niedrige Stromaufnahme angegeben ist.
Stefanus F. schrieb:> Vielleicht, weil SCL und SDA eine höhere Spannung haben, als die> Batterie. Guck mal in die Electrical Characteristcs Tabelle, was da als> Rahmen-Bedingung für die niedrige Stromaufnahme angegeben ist.
Logic 1 Input SDA, SCL VIH
0.7 x VCC min
VCC +0.3 V max
Logic 0 Input SDA, SCL VIL
-0.3 min
0.3 x VCC max
Das würde meiner Meinung nach genau passen oder verstehe ich etwas
falsch.
Habe eine Varta Cr2032 mit 3V im DS3231 und der Arduino läuft mit 3,3V
Stefanus F. schrieb:> Guck mal was ich im Bild markiert habe
Das bedeutet also, wenn SCL=SDA=0V zutrifft, dann fließt Strom vom
Arduino durch diese 2 Pins zum DS3231 oder?
Wie soll man das hinbekommen?
Die Pins sind ja direkt am µC angeschlossen.
Ich habe probiert die Pins per PullDown an GND zu schließen --> dann
funktioniert aber die Kommunikation mit dem Modul nicht mehr
Daniel E. schrieb:> An meinem µC ist unter anderem auch ein Button angeschlossen.> Um diesen nicht dauerhaft zu bestromen wird er über einen digitalen> Ausgang nur eingeschaltet, wenn er auch betätigt werden darf.> Am INPUT hängt ein 1k Pulldown Widerstand.
Falsche Welt, Problem hausgemacht :-) Allgemein üblich ist andersherum:
Der Controller hat intern Pullup-Widerstände, also gegen Plus. Wenn man
den einschaltet, ist der Eingang auf High und es fließt kein relevanter
Strom, Nanoampere.
Der Taster schaltet gegen GND, es fließt also nur Strom, wenn er
betätigt wird.
Im Programm frage ich dann anstatt "if [Eingang x] high mache irgendwas"
eben "if [Eingang x] low mache irgendwas" und fertig.
Auch andersherum sehe ich das Problem aber nicht: Am Eingang einen
externen Widerstand nach GND und den internen Pullup aus , ist der
Eingang sicher auf low und es fließt kein Strom. Kommt Plus vom Taster,
geht er auf High und Abfahrt :-)
Daniel E. schrieb:> Wie soll man das hinbekommen?
Die Pull-Up Widerstände von I²C Bus nicht an VCC anschließen, sondern an
einen I/O Pin. Dann kann der I/O Pin sie im Betrieb hoch ziehen und im
Standby herunter ziehen.
Habe das Problem mit den Tastern gestern Abend auch nicht nachvollziehen
können. Ich stimme Manfred zu.
Manfred schrieb:> Falsche Welt, Problem hausgemacht
Hatte eindeutig einen gewaltigen Denkfehler, Danke.
Stefanus F. schrieb:> Die Pull-Up Widerstände von I²C Bus nicht an VCC anschließen, sondern an> einen I/O Pin. Dann kann der I/O Pin sie im Betrieb hoch ziehen und im> Standby herunter ziehen.>> Habe das Problem mit den Tastern gestern Abend auch nicht nachvollziehen> können. Ich stimme Manfred zu.
Werde ich versuchen, Danke
Stefanus F. schrieb:> Die Pull-Up Widerstände von I²C Bus nicht an VCC anschließen, sondern an> einen I/O Pin. Dann kann der I/O Pin sie im Betrieb hoch ziehen und im> Standby herunter ziehen.
Auf meinem DS3231 Modul sind SDA und SCL ja über die PullUps auf Vcc
geschaltet. Ich schalte den Vcc bereits über einen digitalen Pin ein und
aus. Müsste das nicht das selbe ergeben, wie wenn ich SDA und SCL
nochmal auf einen extra Pin lege?
Daniel E. schrieb:> Müsste das nicht das selbe ergeben, wie wenn ich SDA und SCL> nochmal auf einen extra Pin lege?
Ich denke ja. Du kannst ja mal nachmessen welche Spannung SDA und SCL in
diesem Zustand haben. Das sollte ca. 0 Volt sein.
Stefanus F. schrieb:> Ich denke ja. Du kannst ja mal nachmessen welche Spannung SDA und SCL in> diesem Zustand haben. Das sollte ca. 0 Volt sein.
Es sind bei beiden Pins 0,38V, obwohl Vcc auf GND ziemlich genau 0V hat.
Daniel E. schrieb:> Stefanus F. schrieb:>> Ich denke ja. Du kannst ja mal nachmessen welche Spannung SDA und SCL in>> diesem Zustand haben. Das sollte ca. 0 Volt sein.>> Es sind bei beiden Pins 0,38V, obwohl Vcc auf GND ziemlich genau 0V hat.
Irgendwer zieht die Pins also deutlich hoch. Kann es sein, dass auf
deinem AVR die internen Pull-Up Widerstände aktiviert sind?
Stefanus F. schrieb:> Irgendwer zieht die Pins also deutlich hoch. Kann es sein, dass auf> deinem AVR die internen Pull-Up Widerstände aktiviert sind?
Habe bei meinem Arduino Pro mini einfach den Pin als Output definiert.
Da sind die Pullups normal nicht aktiv oder?
Zwischen dem Pin und Gnd liegen 0V, nur zwischen SDA,SL und Gnd liegt
diese plötzlich an.
Weiß nicht ob diese trotzdem vom uC kommen kann.
Die analogen Pins(A4,A5), an die das RTC Modul angschlossen ist, kann
man nicht noch extra als Ausgang auf Low schreiben oder?
Daniel E. schrieb:> Habe bei meinem Arduino Pro mini einfach den Pin als Output definiert.> Da sind die Pullups normal nicht aktiv oder?
Richtig.
> Zwischen dem Pin und Gnd liegen 0V, nur zwischen SDA,SCL und Gnd liegt> diese plötzlich an.
Reden wir aneinander vorbei? Ich hatte das so gemeint:
1
AVR RTC
2
3
I/O o-----+----+-----o VCC
4
| |
5
| |
6
|~| |~|
7
|_| |_| 2x 4,7k
8
| |
9
| |
10
SDA o-----+----)-----o SDA
11
|
12
SCL o----------+-----o SCL
Für den Standby-Betrieb setzt du den I/O Pin auf Low. Bei SDA und SCL
müssen die internen Pull-Up Widerstände im AVR deaktiviert sein.
Um die Uhr abzufragen, schaltest zu den I/O Pin auf High, danach kannst
du über I²C kommunizieren.
Hast du deinen RTC Chip als Modul mit Platine gekauft und das ist
eventuell noch irgendwas mit drauf, was nicht sein soll?
Ja genau diese Schaltung ist auf dem Modul fix fertig oben, nur mit 10k
Widerständen. (siehe Anhang)
Ob sonst noch ein Stromfresser oben ist weiß ich nicht.
Das Modul hat allerdings auch noch einen EEPROM.
Die LED am Schaltplan habe ich bereits entfernt.
Ich habe jetzt die Widerstände vom Modul entfernt und die Schaltung mit
4k7 Widerständen nachgebaut --> leider selbes Ergebnis
Weißt du wie gut man ein DCF77 Empfänger für so etwas einsetzen könnte?
Habe bereits herausgefunden, dass es im Betrieb ca. 90µA verbraucht.
Leider habe ich aber nicht herausgefunden wie lange es laufen muss, um
die richtige Zeit zu empfangen und ich weiß nicht wie gut die
Signalqualität damit ist oder ob das Signal sehr störanfällig ist.
> Weißt du wie gut man ein DCF77 Empfänger für so etwas einsetzen könnte?
Ich weiß nicht was du damit vor hast. Auf jeden Fall ist der Empfang
dieser Dinger problematisch. Wenn der Empfang mal gut klappt brauchst du
mindestens 1,5 Minuten, um die Uhrzeit zu erhalten.
Stefanus F. schrieb:> Ich weiß nicht was du damit vor hast. Auf jeden Fall ist der Empfang> dieser Dinger problematisch. Wenn der Empfang mal gut klappt brauchst du> mindestens 1,5 Minuten, um die Uhrzeit zu erhalten.
Hätte damit statt dem RTC einmal in der Woche die Uhrzeit aktualisiert
aber wenn der Empfang problematisch ist, dann kann ich das vergessen
Jetzt ist G. schrieb:> Eine kleine Zusammenfassung :> https://www.ibrtses.com/embedded/avrpowersave.html
Wirklich hilfreich finde ich die Site nicht, aber sehe gleich mal eine
Spitzfindigkeit als Überschrift: The powerdown dream
Und weiter unten:
"Creating a low power project involves considerations on many parts,
the controller just being one of them."
Google kann das sogar vernünftig übersetzen: "Um ein Projekt mit
geringem Stromverbrauch zu erstellen, müssen viele Aspekte
berücksichtigt werden. Der Controller ist nur einer von ihnen."
Stefanus F. schrieb:> Irgendwer zieht die Pins also deutlich hoch. Kann es sein, dass auf> deinem AVR die internen Pull-Up Widerstände aktiviert sind?
Der Arduino nutzt A4 und A5 für I2C, da sind keine Widerstände dran.
Daniel E. schrieb:> Die analogen Pins(A4,A5), an die das RTC Modul angschlossen ist, kann> man nicht noch extra als Ausgang auf Low schreiben oder?
Weiter vorne 05.11.2018 20:33 hatte ich benannt, dass man die Analogpins
auch als Ausgang steuern kann, das I2C-include tut das ja auch. Die A4 -
A5 kann man als digital 18 - 19 auch manuell auf low setzen, soweit
keine andere Aktion dazwischen funkt.
pinMode (18, OUTPUT);
digitalWrite (18, LOW);
Daniel E. schrieb:> Das Modul hat allerdings auch noch einen EEPROM.
Wenn Du die Versorgung des Uhrenmodules abschaltest und A4 / A5 auf
low bringst, darf da kein Strom fließen.
Daniel E. schrieb:> Weißt du wie gut man ein DCF77 Empfänger für so etwas einsetzen könnte?
Unbrauchbar: Im theoretisch günstigsten Fall muß man eine Minute lang
aktiv empfangen und auswerten, um die Uhrzeit zu bekommen. Im realen
Leben braucht es eher drei Minuten aktiver µC-Rechnerei, die DCF-Zeit zu
holen.
Manfred schrieb:> Wenn Du die Versorgung des Uhrenmodules abschaltest und A4 / A5 auf low> bringst, darf da kein Strom fließen
Wenn ich diese Pins als Output 18 und 19 definiere und auf Low setze vor
dem Sleep, kann dann die Verbindung zum RTC trotzdem noch stattfinden
nach dem Wakeup?
Ich brauche diese ja dann zum einen für SDA und SCL als Analogpins und
zum andern als digitale Pins.
Offensichtlich sind die internen Pull-Up Widerstände des
Mikrocontrollers an SCL und SDA eingeschaltet. Diese haben ca 50k Ohm.
Sie ziehen die Pins im Standby Modus ein bisschen hoch und das stört
jetzt.
Das kannst du ganz leicht nachprüfen: Stecke das RTC Modul ab. Wenn dein
Multimeter dann an diesen Pins eine Spannung misst, dann sind die
Pull-Up Widerstände aktiviert.
> Wenn ich diese Pins als Output 18 und 19 definiere und auf Low setze vor> dem Sleep, kann dann die Verbindung zum RTC trotzdem noch stattfinden> nach dem Wakeup?
Jein.
Manfreds Vorschlag ist sicher richtig. Im Standby Modus dürfen da keine
Pull-Ups aktiviert sein. Nach dem Aufwachen musst du die I²C
Schnittstelle neu initialisieren. Dadurch werden die Pins dann wieder so
konfiguriert, wie benötigt.
Vergiss mal den Begriff "Analogpins". Da ist gar nichts analog. I²C ist
digital.
Habe ein wenig nachgelesen.
Ich benutze die Wire.h Library und werde heute Abend das versuchen:
pinMode(18,INPUT);
pinMode(19,INPUT);
Wire.Begin();
//RTC Kommunikation
Wire.End();
pinMode(18,OUTPUT);
digitalWrite(18,LOW);
pinMode(19,OUTPUT);
digitalWrite(19,LOW);
//Sleep
Stefanus F. schrieb:> Das kannst du ganz leicht nachprüfen: Stecke das RTC Modul ab. Wenn dein> Multimeter dann an diesen Pins eine Spannung misst, dann sind die> Pull-Up Widerstände aktiviert.
Werde ich nachmessen
Stefanus F. schrieb:> Vergiss mal den Begriff "Analogpins". Da ist gar nichts analog. I²C ist digital.
Vollkommen richtig, I²C ist digital.
Ändert nur nichts daran, dass diese Ports in der Arduino-Welt als
Analog-Anschluß bezeichnet werden und man schon etwas suchen muss, wie
diese digital zu nutzen sind.
Daniel E. schrieb:> Es hat funktioniert...0,16mA weniger Stromverbrauch im LowPower
Passt rechnerisch: 47k an 3,3V ergibt nach Herrn Ohm rund 0,07mA, mal
zwei wären 0,14mA.
Wo bist Du jetzt angekommen, ich hoffe, Gesamtstrom im Sleep deutlich
unter 0,1mA?
Manfred schrieb:> Wo bist Du jetzt angekommen, ich hoffe, Gesamtstrom im Sleep deutlich> unter 0,1mA?
Zur Zeit noch bei 0,15mA.
Betreibe den Arduino noch über den RAW Pin mit dem originalen
Spannungsregler. Werde allerdings auf den MCP1703t-3302E umsteigen und
hoffe, dass ich damit noch einmal einen Sprung nach unten mache.
Zur Zeit braucht der Arduino alleine ca.0,1mA im Sleep ohne Power LED.
Ich würde erwägen, den AVR direkt an die Batterie zu hängen (notfalls
durch eine Diode, um von den 6V etwas runter zu kommen) und für den Rest
einen abschaltbaren Spannungsregler zu verwenden.
Dann musst Du Dir natürlich zusätzlich über Pegelwandler Gedanken
machen. Eventuell lohnt sich der Aufwand - je nach Batterie-Kosten und
Platzbedarf.
Stefanus F. schrieb:> Ich würde erwägen, den AVR direkt an die Batterie zu hängen (notfalls> durch eine Diode, um von den 6V etwas runter zu kommen) und für den Rest> einen abschaltbaren Spannungsregler zu verwenden.>> Dann musst Du Dir natürlich zusätzlich über Pegelwandler Gedanken> machen. Eventuell lohnt sich der Aufwand - je nach Batterie-Kosten und> Platzbedarf.
Ich glaube ich werde es jetzt einmal bei diesem Stand belassen und nur
noch schauen, was der MCP1703 bringt.
Habe schon fast zu viel Zeit in dieses Projekt gesteckt.
2 mal im Jahr Batterien wechseln ist kein Problem
Daniel E. schrieb:> Betreibe den Arduino noch über den RAW Pin mit dem originalen Spannungsregler.
KB33 = MIC52205?
Bei <100µA Last hat der laut Datenblatt um 100µA Querstrom, passt auch
zu Deinen Werten.
> Werde allerdings auf den MCP1703t-3302E umsteigen und> hoffe, dass ich damit noch einmal einen Sprung nach unten mache.
Jou, den MCP hatte ich vorgeschlagen, habe einige verbaut. Falls Du
Beschaffungsprobleme hast, geht auch MCP1702, bei dem ist nur die
maximal zulässige Eingangsspannung geringer.
> Zur Zeit braucht der Arduino alleine ca.0,1mA im Sleep ohne Power LED.
Die LEDs auf dem ganzen Arduino-Zeugs sind eine wahre Pest, da wird mit
den 1k-Vorwiderständen unnötig Strom verblasen.
Daniel E. schrieb:> Muss ich für den MCP1703 einen Keramik Kondensator verwenden oder würde ein Elko
auch reichen?
Die Dingelchen sind hier als sehr schwingfreudig aufgefallen, nur Elko
würde ich nicht machen. Ich betreibe die mit guten Folienkondensatoren
WIMA MKS oder vergleichbar. Erstmal aufbauen, Kondensatoren dicht dran
platzieren. Wenn die Ausgangsspannung nicht stimmt und sich ändert, wenn
man mit dem Finger auf die Anschlüsse patscht, schwingt er.
Stefanus F. schrieb:> Ich würde erwägen, den AVR direkt an die Batterie zu hängen (notfalls> durch eine Diode, um von den 6V etwas runter zu kommen)
Sehe ich auch so. Mit drei Primär-Batterien kommt man auf etwa 4,8V
(neu) bis knapp 3 Volt leer. Mit drei NiMH eneloop frisch geladen um 4
Volt und auch bis etwas unter 3 Volt.
Daniel E. schrieb:> Habe schon fast zu viel Zeit in dieses Projekt gesteckt.
Vielleicht, oder auch nicht:
Du hast mit wenig geeigneter Hardware begonnen und dann hier gefragt.
Du hast aufmerksam gelesen, was man Dir geschrieben hat und einiges
davon umgesetzt - sieht man an Deinen weiteren Fragen. Das kommt positiv
rüber und Du hast sinnvolle Fortschritte.
Du bist jetzt auf dem Wege, zu verstehen, wo es lang geht und wirst beim
nächsten Projekt davon profitieren.
Harte Realität: Elektronik ist ein Geschäft mit viel Fachwissen, wer das
nicht akzeptiert, bekommt von mir immer "baue Holzroller" empfohlen. Das
trifft auf Dich nicht zu, Du willst, also bitte weiter so, das wird!
Manfred schrieb:> Die LEDs auf dem ganzen Arduino-Zeugs sind eine wahre Pest
Für Anfänger sind sie hilfreich. Niemand hindert dich daran, die LEDs zu
entfernen. Einmal kurz mit dem heißen Lötkolben antippen, und weg sind
sie. Oder notfalls einfach mit Gewalt abreißen - geht auch.
> Du hast aufmerksam gelesen, was man Dir geschrieben hat und einiges> davon umgesetzt - sieht man an Deinen weiteren Fragen.> Das kommt positiv rüber und Du hast sinnvolle Fortschritte.
Ja auf jeden Fall. Sehe ich auch so.
> Elektronik ist ein Geschäft mit viel Fachwissen, wer das> nicht akzeptiert, bekommt von mir immer "baue Holzroller" empfohlen.
Habe ich mal versucht - und bin wieder bei der Elektronik gelandet. Ich
mag Holz, aber mehr als ein simples Regal oder eine Kiste zu
konstruieren fällt mir definitiv schwerer, als die Elektronik.
Stefanus F. schrieb:> Manfred schrieb:>> Die LEDs auf dem ganzen Arduino-Zeugs sind eine wahre Pest>> Für Anfänger sind sie hilfreich. Niemand hindert dich daran, die LEDs zu
entfernen.
Hast Du meinen Text nicht verstanden oder mit Absicht unvollständig
zitiert:
Manfred schrieb:> da wird mit den 1k-Vorwiderständen unnötig Strom verblasen.
Die LEDs können hilfreich sein, aber täten es auch mit deutlich weniger
Strom!
>> Elektronik ist ein Geschäft mit viel Fachwissen, wer das>> nicht akzeptiert, bekommt von mir immer "baue Holzroller" empfohlen.> Habe ich mal versucht - und bin wieder bei der Elektronik gelandet. Ich> mag Holz, aber mehr als ein simples Regal oder eine Kiste zu> konstruieren fällt mir definitiv schwerer, als die Elektronik.
Ich hoffe doch, dass es richtig verstanden wurde - im positiven Sinne!
Geht mir nicht anders, ich komme mit Stahlbau (Hobbyschlosser) besser
klar als mit Holz. Mit Elektronik sowieso, das ist mein Berufsfeld.
Danke, werde eure letzten Antworten sicherlich in zukünftigen Projekten
einplanen, aber werde jetzt mal alles so auf eine Platine packen und
genau testen.
Da auch Freunde bereits gemeint hätten, dass sie auch gerne so etwas
möchten könnte es auch sein, dass ich noch daran weiterentwickle.
Wenn ich darf werde ich mich bei offenen Fragen sicherlich wieder im
Forum melden.
Daniel E. schrieb:> Auf meinem DS3231 Modul
ist das wirklich ein Bild von DEINEM Modul?
Die Diode und der R 201 sind zum LADEN eines LiR 2032 Akkus, CR 2032
kann soll man nicht laden und wenn man LiR laden will wird 5V benötigt,
bei 3.3V Versorgung kann die Diode weder vernünftig leiten zum Laden
noch ist es sinnvoll überhaupt die "Ladeschaltung" auf dem Modul zu
lassen!
Also R201 oder Diode runter.
Joachim B. schrieb:> ist das wirklich ein Bild von DEINEM Modul?>> Die Diode und der R 201 sind zum LADEN eines LiR 2032 Akkus, CR 2032> kann soll man nicht laden und wenn man LiR laden will wird 5V benötigt,> bei 3.3V Versorgung kann die Diode weder vernünftig leiten zum Laden> noch ist es sinnvoll überhaupt die "Ladeschaltung" auf dem Modul zu> lassen!> Also R201 oder Diode runter.
Nein, ist kein Bild von mir.
R201 ist bereits entfernt.
Bauform B. schrieb:> Ein Bild sagt alles über meine MOSFETs, Batteriehalter und> Spannungsregler...
Ich hätte schon wieder eine Frage ;)
Da ich gerne die noch verbleibende Batteriespannung messen möchte, um zu
wissen wie weit die Batterien schon entladen sind, möchte ich diese über
einen Spannungsteiler auf z.B. A0 messen.
Leider verstehe ich die Schaltung von Bauform B. nicht wirklich.
Kann mir jemand einen Transistor empfehlen oder die Schaltung von
Bauform B. erklären?
Ich möchte, wie beim gesamten Projekt, die zu messende Spannung über
einen digitalen Output so stromsparend wie nur möglich schalten können.
Und das mit so wenigen Bauteilen wie möglich, um Platz zu sparen.
Danke
Daniel E. schrieb:> Das wäre meine aktuelle Schaltung
Die Schaltung legt den Spannungsteiler nur dann auf die Batterie, wenn
gemessen werden soll - richtiger Ansatz, um den Ruhestrom zu sparen.
Insgesamt würde ich die Widerstände höher wählen, da fließt unnötig
Strom: R3-R8 auf 10k. R7=100k, R6 entfällt, R5=100k oder mehr. Bitte
nicht nach der Berechnung fragen, ist über den Daumen geguckt.
Falls es zu Fehlmessungen kommen sollte, parallel zu R8 einen
100nF-Kondensator setzen, dann aber nach dem Einschalten geschätzt 5ms
delay bevor gemessen wird - habe ich in einer meiner Anwendungen so
gemacht.
Wenn ich einen kritischen Wert messe, mache ich eine erneute Messung, in
der ich aus zehn Werten über 20ms einen Mittelwert bilde. Ich reagiere
erst dann, wenn auch dieser kritisch ist, um Störeffekte los zu werden.
Das ganze Gebilde wird bei Dir etwas kritisch, weil ich nicht sehe, wie
stabil die Referenzspannung des ADC vom Tiny sein wird. Ich fürchte,
dass Du am Ende der Batterien Dummfug misst, weil Deine 3,3V nicht mehr
zuverlässig sind, der µC aber noch immer läuft.
Vielleicht kann Stefanus dazu mehr sagen, hat der Tiny eine interne
Referenz?
Manfred schrieb:> Vielleicht kann Stefanus dazu mehr sagen
R8=10k scheint mir sinnvoll. Ich glaube, dass dann wahrscheinlich kein
Kondensator nötig ist, da die Ausgangsimpedanz des Spannungsteiler so
knapp unter 10k ist, was gemäß Datenblatt ausreicht.
Du hast richtig vermutet, dass die interne Referenzspannung bei zu wenig
VCC nicht mehr funktioniert. Sie sinkt dann etwas ab. Irgendwo im
Datenblatt steht, wie viel VCC nötig ist, damit der ADC und seine
Referenz vollständig funktioniert. Ich meine mich zu erinnern, dass es
war etwa 3V waren.
Manfred schrieb:> Die Schaltung legt den Spannungsteiler nur dann auf die Batterie, wenn> gemessen werden soll - richtiger Ansatz, um den Ruhestrom zu sparen.>> Insgesamt würde ich die Widerstände höher wählen, da fließt unnötig> Strom: R3-R8 auf 10k. R7=100k, R6 entfällt, R5=100k oder mehr. Bitte> nicht nach der Berechnung fragen, ist über den Daumen geguckt.>> Falls es zu Fehlmessungen kommen sollte, parallel zu R8 einen> 100nF-Kondensator setzen, dann aber nach dem Einschalten geschätzt 5ms> delay bevor gemessen wird - habe ich in einer meiner Anwendungen so> gemacht.
Danke werde ich so umbauen.
Habe auch schon überlegt die Messung öfter zu machen, um ein genaueres
Ergebnis zu erhalten.
Ich glaube, bevor ich in den kritischen Bereich komme funktioniert das
GSM-Modul auch schon nicht mehr... ich werde es einfach versuchen.
Den MOSFET habe ich genommen, da ich ihn bereits zu Hause hatte, gibt es
eine andere Möglichkeit mit 1 oder 2 bipolaren Transistoren?
Stefanus F. schrieb:> Du hast richtig vermutet, dass die interne Referenzspannung bei zu wenig> VCC nicht mehr funktioniert. Sie sinkt dann etwas ab. Irgendwo im> Datenblatt steht, wie viel VCC nötig ist, damit der ADC und seine> Referenz vollständig funktioniert. Ich meine mich zu erinnern, dass es> war etwa 3V waren.
Wenn ich den ProMini über den MCP betreibe vermute ich, dass ich gar
nicht in diesen Bereich komme, da das GSM Modul eine höhere Spannung
benötigt als der Arduino und deswegen meine Batterie schon bei einer
höheren Spannung "leer" sein wird. Oder liege ich da falsch?
Daniel E. schrieb:> Den MOSFET habe ich genommen, da ich ihn bereits zu Hause hatte, gibt es> eine andere Möglichkeit mit 1 oder 2 bipolaren Transistoren?
Sicher, es gibt immer andere Möglichkeiten mit anderen Bauteilen. Aber
das hilft keinem weiter.
Daniel E. schrieb:> Was würde sich ändern, wenn ich den Mosfet weglasse und nur mit dem> BC547C schalte?
Ja, es würde so nicht mehr funktionieren.
Bei einem bipolaren Transistor mit Emitter als Ausgang gilt immer: Die
Ausgangsspannung ist ca. 0,7V
a) bei NPN: geringer
b) bei PNP: höher
als die Spannung an der Basis. Der Strom durch die Basis ergibt sich aus
dem Last-Strom geteilt durch den Verstärkungsfaktor des Transistors.
Das ist nicht der von Dir gewünschte Effekt. Du musst einen PNP
Transistor verwenden und von diesem den Kollektor als Ausgang. Dann gilt
die Regel:
Der Transistor schaltet durch, wenn die Spannung an der Basis um 0,7V
a) bei NPN: höher
b) bei PNP: geringer
ist, als am Emitter. Der Strom durch die Basis-Emitter Diode muss z.B.
durch einen Widerstand begrenzt werden. Er muss höher sein, als der
Last-Strom geteilt durch den (min.) Verstärkungsfaktor des Transistors.
Egal of PNP Transistor oder P-Kanal MOSFET, du solltest bei der
Auslegung der Schaltung bedenken, dass die Ausgangsspannung des I/O Pins
bei High geringer ist, als VIN. Falls Dir nicht klar ist, welche
Konsequenzen sich daraus ergeben, dann frage nach. Ich würde es
allerdings begrüßen, wenn du zuerst mal selbst drüber nachdenkst, wegen
dem Lern-Effekt.
Stefanus F. schrieb:> Der Transistor schaltet durch, wenn die Spannung an der Basis um 0,7V> a) bei NPN: höher> b) bei PNP: geringer> ist, als am Emitter. Der Strom durch die Basis-Emitter Diode muss z.B.> durch einen Widerstand begrenzt werden. Er muss höher sein, als der> Last-Strom geteilt durch den (min.) Verstärkungsfaktor des Transistors.>> Egal of PNP Transistor oder P-Kanal MOSFET, du solltest bei der> Auslegung der Schaltung bedenken, dass die Ausgangsspannung des I/O Pins> bei High geringer ist, als VIN. Falls Dir nicht klar ist, welche> Konsequenzen sich daraus ergeben, dann frage nach. Ich würde es> allerdings begrüßen, wenn du zuerst mal selbst drüber nachdenkst, wegen> dem Lern-Effekt.
Ok ich glaube ich verstehe es:
Ich nehme einen PNP Transistor, um meine Spannungsversorgung
unverfälscht messen zu können. Da die Spannung meines digitalen Output
des Arduinos aber geringer als die Versorgungsspannung ist würde der
Transistor dauerhaft durchschalten. Deswegen verwende ich am besten
einen NPN Transistor über den ich den PNP auf GND schalten kann, wenn
ich messen will. Somit ist mein OUTPUT nur auf HIGH, wenn ich ihn
wirklich brauche und ich schalte meine Messung stromsparend ein und aus.
Ist das richtig?
Daniel E. schrieb:> Ich nehme einen PNP Transistor, um meine Spannungsversorgung> unverfälscht messen zu können. Da die Spannung meines digitalen Output> des Arduinos aber geringer als die Versorgungsspannung ist würde der> Transistor dauerhaft durchschalten.
Genau, das wollte ich hören.
> Deswegen verwende ich am besten> einen NPN Transistor über den ich den PNP auf GND schalten kann, wenn> ich messen will. Somit ist mein OUTPUT nur auf HIGH, wenn ich ihn> wirklich brauche und ich schalte meine Messung stromsparend ein und aus.> Ist das richtig?
Sehr gut.
Jetzt ist es nur leider so, dass an der Kollektor-Emitter Strecke immer
ein bisschen Spannung abfällt (ich schätze in diesem Fall ca 100mV), was
deine Messung verfälscht. Kann man in der Software berücksichtigen. Mit
einem MOSFET wäre der Spannungsabfall annähernd Null.
Stefanus F. schrieb:> Jetzt ist es nur leider so, dass an der Kollektor-Emitter Strecke immer> ein bisschen Spannung abfällt (ich schätze in diesem Fall ca 100mV), was> deine Messung verfälscht. Kann man in der Software berücksichtigen. Mit> einem MOSFET wäre der Spannungsabfall annähernd Null.
Ok, also ist meine oben gepostete Schaltung mit dem Mosfest genau das
richtige für diese Anwendung?
Oder soll ich statt dem BC547 auch einen Mosfet verwenden?
Stefanus F. schrieb:> Du hast richtig vermutet, dass die interne Referenzspannung bei zu wenig VCC
nicht mehr funktioniert.
Entschuldigt, ich war Gedanklich etwas daneben, da kommt ja ein AT328
zum Einsatz, kein Tiny, den ich nicht kenne :-(
Beim 328 würde ich die Batteriespannung auf max. 1 Volt herunter teilen
und die interne Referenz nutzen, auf die kann man sich länger verlassen
als auf die Versorgungsspanung.
Daniel E. schrieb:> Habe auch schon überlegt die Messung öfter zu machen, um ein genaueres Ergebnis
zu erhalten.
Im 328 ist genug Speicher, zwei Meßroutinen zu programmieren: Ich messe
als 15 Minuten ein mal, möglichst kurz und fix wieder schlafen gehen.
Wenn, und nur wenn, bei dieser ein-mal-Messung der Grenzwert erreicht
wurde, mache ich eine Mehrfachmessung.
Daniel E. schrieb:> Oder soll ich statt dem BC547 auch einen Mosfet verwenden?
Wenn Du genug Bauteile herumliegen hast, kann anstatt des BC547 auch ein
N-FET eingesetzt werden. Würde ich nicht tun, der BC ist billiger und
erfüllt zweifelsfrei die Funktion.
Oben unbedingt den LowLevel-Logic-FET belassen, hat Stefan erklärt.
Stefanus F. schrieb:> Ich finde die Schaltung mit dem MOSFET gut.
Zustimmung.
Manfred schrieb:> Beim 328 würde ich die Batteriespannung auf max. 1 Volt herunter teilen> und die interne Referenz nutzen, auf die kann man sich länger verlassen> als auf die Versorgungsspanung.>> Daniel E. schrieb:>> Habe auch schon überlegt die Messung öfter zu machen, um ein genaueres Ergebnis> zu erhalten.>> Im 328 ist genug Speicher, zwei Meßroutinen zu programmieren: Ich messe> als 15 Minuten ein mal, möglichst kurz und fix wieder schlafen gehen.> Wenn, und nur wenn, bei dieser ein-mal-Messung der Grenzwert erreicht> wurde, mache ich eine Mehrfachmessung.
So genau muss meine Messung nicht sein. Ich möchte nur per SMS mitsenden
welche Spannung die Batterien noch haben, um grob einschätzen zu können
wie lange sie noch halten.
Soll nur ein paar mal messen, um keine groben Ausreißer in der Messung
zu haben
Ich habe leider schon wieder eine Frage.
Ich habe die Schaltung komplett auf einer Lochrasterplatine aufgebaut
und getestet. (Nur ohne dem MCP1703, da ich ihn noch nicht hatte,
sondern noch über den RAW Pin mit dem Spannungsregler vom Pro Mini)
Dabei hat alles super funktioniert.
Nun habe ich mir eine Platine geätzt und alles verlötet. In der
Zwischenzeit ist der MCP1703 gekommen, deswegen habe ich den Regler vom
Pro Mini entfernt und den MCP mit 1µF Keramikkondensator auf Input und
1µF Keramikkondensator auf Output verwendet.
Leider bricht mir beim Einschalten des GSM Moduls die Spannung so weit
zusammen, dass der Arduino einen Reset macht.
Zum Testen habe ich an den Input des MCP noch einen 470µF Elko gelötet.
Damit funktioniert die Schaltung wieder.
Das ist allerdings sehr unschön, da der Elko sehr lange zum Entladen
braucht, wenn man das Gerät aus- und wieder einschalten möchte.
Manfred schrieb:> Die Dingelchen sind hier als sehr schwingfreudig aufgefallen, nur Elko> würde ich nicht machen. Ich betreibe die mit guten Folienkondensatoren> WIMA MKS oder vergleichbar. Erstmal aufbauen, Kondensatoren dicht dran> platzieren. Wenn die Ausgangsspannung nicht stimmt und sich ändert, wenn> man mit dem Finger auf die Anschlüsse patscht, schwingt er.
Würden die Folienkondensatoren statt den Keramik besser funktionieren?
Verstehe nicht, was zwischen Lochrasterplatine und geätzter Platine noch
für ein Unterschied sein könnte (außer dem MCP).
Könnten die Leiterbahnen zu schmal sein?
Verwende für fast alles 0,4mm Breite, außer bei der Versorgung des
GSM-Moduls, da haben die Bahnen 1mm auf einer 35µm Platine.
Daniel E. schrieb:> Leider bricht mir beim Einschalten des GSM Moduls die Spannung so weit> zusammen, dass der Arduino einen Reset macht.
Wir gehen davon aus, dass der MCP1703nur den Controller versorgt, für
das GSM-Modul kann er den Strom (<250mA) nicht.
> Zum Testen habe ich an den Input des MCP noch einen 470µF Elko gelötet. Damit
funktioniert die Schaltung wieder.
Das deutet darauf hin, dass Deine Batteriespannung bei dem hohen
Stromimpuls des GSM-Moduls so weit einbricht, dass der MCP die 3,3V
nicht mehr halten kann.
Das kann am Verhalten der Batterieen liegen, aber auch durch eine
ungeschickte Leitungsführung verursacht werden. Dicke Leitung von der
Batterie zum GSM, und ebenfalls direkt von der Batterie zum MCP, kein
gemeinsamer Weg.
> Das ist allerdings sehr unschön, da der Elko sehr lange zum Entladen> braucht, wenn man das Gerät aus- und wieder einschalten möchte.
Damit wirst Du Dich abfinden müssen.
> Würden die Folienkondensatoren statt den Keramik besser funktionieren?
Nein.
Manfred schrieb:> Wir gehen davon aus, dass der MCP1703 nur den Controller versorgt, für> das GSM-Modul kann er den Strom (<250mA) nicht.
Das GSM wird über den LT1529 versorgt
Manfred schrieb:>> Das ist allerdings sehr unschön, da der Elko sehr lange zum Entladen>> braucht, wenn man das Gerät aus- und wieder einschalten möchte.>> Damit wirst Du Dich abfinden müssen.
Kann ich den Kondensator beim Ausschalten irgendwie schneller entladen?
Daniel E. schrieb:> Leider bricht mir beim Einschalten des GSM Moduls die Spannung so weit> zusammen, dass der Arduino einen Reset macht.
Also bricht die Versorgungsspannung der Arduino ein.
Der I/O Pin des AVR Mikrocontrollers liefert allerhöchstens 50mA, das
würde deinen Spannungsregler noch lange nicht überfordern - selbst wenn
die Transistorschaltung dahinter fehlerhaft wäre.
> Das GSM wird über den LT1529 versorgt
Hängen denn beide Spannungsregler an einem gemeinsamen Netzteil? Dann
könnte es am Netzteil liegen, oder an den kabeln. Insbesondere
Steckbretter und Dupont Kabel haben oft überraschen hohe
Innenwiderstände.
Mit einem Oszilloskop kannst du das schnell herausfinden, indem du auf
eine fallende Flanke bei ca 2 Volt triggerst.
> Kann ich den Kondensator beim Ausschalten irgendwie schneller entladen?
Dazu hätte ich gerne mal den aktuellen Schaltplan deines Aufbaus. Und
dann gibst du dort bitte genau an, welchen Kondensator du meinst.
Stefanus F. schrieb:> Hängen denn beide Spannungsregler an einem gemeinsamen Netzteil? Dann> könnte es am Netzteil liegen, oder an den kabeln. Insbesondere> Steckbretter und Dupont Kabel haben oft überraschen hohe> Innenwiderstände.
Laufen beide über 4xAA Batterien in Reihe
Stefanus F. schrieb:> Dazu hätte ich gerne mal den aktuellen Schaltplan deines Aufbaus. Und> dann gibst du dort bitte genau an, welchen Kondensator du meinst.
Bekommst du sofort
Das ist die aktuelle Schaltung. Ist leider etwas unaufgeräumt, da ich
schon sehr oft die verschiedenen Pins getauscht habe, um auf der Platine
den Platz richtig auszunutzen.
Es handelt sich um den rot markierten C5.
Stefanus F. schrieb:> Hängen denn beide Spannungsregler an einem gemeinsamen Netzteil? Dann> könnte es am Netzteil liegen, oder an den kabeln. Insbesondere> Steckbretter und Dupont Kabel haben oft überraschen hohe> Innenwiderstände.
Werde heute versuchen die Stromversorgung des GSM noch zusätzlich mit
Drähten zu verbinden und dann zu testen.
Habe nämlich auch die Befürchtung, dass meine Leiterbahnen zu schmal
sind und einfach der Innenwiderstand viel zu hoch ist.
Bei der Testplatine ging es nämlich mit Dupont Kabel auch nicht aber mit
0.3mm^2 Drähten funktionierte dann alles ohne Probleme.
Wenn es mit dickeren Leitern funktioniert kann ich hoffentlich C5
wierder komplett weglassen
Stefanus F. schrieb:>> Kann ich den Kondensator beim Ausschalten irgendwie schneller entladen?>> Dazu hätte ich gerne mal den aktuellen Schaltplan deines Aufbaus. Und> dann gibst du dort bitte genau an, welchen Kondensator du meinst.
Sieht du dafür irgendeine Möglichkeit, falls ich ihn nicht komplett weg
bekomme?
Daniel E. schrieb:> Stefanus F. schrieb:>>> Kann ich den Kondensator beim Ausschalten irgendwie schneller entladen?>>>> Dazu hätte ich gerne mal den aktuellen Schaltplan deines Aufbaus. Und>> dann gibst du dort bitte genau an, welchen Kondensator du meinst.>> Sieht du dafür irgendeine Möglichkeit, falls ich ihn nicht komplett weg> bekomme?
Argh, ich hatte schon das Gefühl irgend etwas vergessen zu haben.
Du willst den Kondensator vermutlich nur beim Ausschaltern entladen,
weil sonst der Entladewiderstand die Stromaufnahme in die Höhe treiben
würde. Dazu würde den SW2 umdrehen:
Stefanus F. schrieb:> Argh, ich hatte schon das Gefühl irgend etwas vergessen zu haben.>> Du willst den Kondensator vermutlich nur beim Ausschaltern entladen,> weil sonst der Entladewiderstand die Stromaufnahme in die Höhe treiben> würde. Dazu würde den SW2 umdrehen:
Ok danke werde ich versuchen
Daniel E. schrieb:> Bei der Testplatine ging es nämlich mit Dupont Kabel auch nicht aber mit> 0.3mm^2 Drähten funktionierte dann alles ohne Probleme.
Die typischen "China-DuPont-Kabel" sind scheiße:
Beitrag "Re: China SUPER Bauteile-Schnäppchen Thread [V3]"> Wenn es mit dickeren Leitern funktioniert kann ich hoffentlich C5> wierder komplett weglassen
Ich erinnere nochmal an den udn hebe zwei Dinge hervor:
Manfred schrieb:> Dicke Leitung von der Batterie zum GSM, und> ebenfalls direkt von der Batterie zum MCP,> kein gemeinsamer Weg.