Hallo Ich habe ein Projekt mit einem Atmega328 + 16x4 LCD + 433Mhz Empfänger umgesetzt und möchte, da das Ganze mit 3xAA Batterien läuft, den Strombedarf soweit wie möglich senken. Der Mikrokontroller benötigt im PowerDown kaum Strom. Das Problem ist, dass LCD und 433Mhz Empfänger da nicht mitspielen und trotzdem ca. 4mA fließen. Der Größere Schmarotzer ist den 433Mhz mit 3mA im Leerlauf. Mein Plan war eigentlich, dass ich GND auf einen Ausgang (PD7) hänge, welchen ich im Leerlauf einfach auf HIGH schalte. Das komische ist das der Ausgang nicht auf HIGH geschalten wird wenn ich den µC in PowerDown versetze. Hab auch schon einen anderen µC getestet mit demselben Fehlerbild. Auch ein N-Kanal MOSFET der vom Ausgang geschalten wird brachte keine Besserung. Wenn ich das Gate aber manuell mit GND verbinde ist der Empfänger aus und der Strom fällt ab. Was mach ich falsch? Ach ja. Das ist der Empfänger: https://www.amazon.de/Aukru-Superregeneration-433M-receiver-module/dp/B00R2U8OEU/ref=sr_1_1?ie=UTF8&qid=1508163600&sr=8-1&keywords=433+mhz+sender+empf%C3%A4nger Ich weiß dass das vermutlich China Schrott ist, funktioniert aber sonst ganz gut. MfG! Martin
humar1990 schrieb: > Mein Plan war eigentlich, dass ich GND auf einen Ausgang (PD7) hänge, > welchen ich im Leerlauf einfach auf HIGH schalte. Schlechte Idee, Digitaleingänge liegen garnicht gerne deutlich unter GND. Versorg den Empfänger über einen Pin vom 328p, dann kannst du ihn abschalten.
Typ schrieb: > Schlechte Idee, Digitaleingänge liegen garnicht gerne deutlich unter > GND. > Versorg den Empfänger über einen Pin vom 328p, dann kannst du ihn > abschalten. Versteh ich nicht. Meinst du vielleicht Analogeeingänge? Also PD6 & PD7? Und warum unter GND ich schalt sie doch auf +5V? MfG! martin
@ humar1990 > Ich weiß dass das vermutlich China Schrott ist, funktioniert aber sonst > ganz gut. Der obigen Satzes zeigt, dass du nicht denken kannst.
humar1990 schrieb: > Das komische ist das der Ausgang nicht auf HIGH geschalten wird wenn ich > den µC in PowerDown versetze. das ist nicht unbedingt ungewöhnlich, da muss man im Datenblatt des konkreten µC nachsehen was der im jeweiligen Modus abschaltet.
humar1990 schrieb: > Typ schrieb: >> Schlechte Idee, Digitaleingänge liegen garnicht gerne deutlich unter >> GND. >> Versorg den Empfänger über einen Pin vom 328p, dann kannst du ihn >> abschalten. > > Versteh ich nicht. > Meinst du vielleicht Analogeeingänge? Also PD6 & PD7? > Und warum unter GND ich schalt sie doch auf +5V? Man schaltet eigentlich die +5V ab und nicht die Masse, da ansonsten digitale Eingänge des Moduls eine kleiner Spannung (Masse) gegenüber der Masse des Moduls (+5V) haben könnten. Da dein Modul ja nur einen Datenausgang hat der am μC ein Eingang ist sollte das in dem Fall aber nicht weiter stören. Sascha
humar1990 schrieb: > Mein Plan war eigentlich, dass ich GND auf einen Ausgang (PD7) hänge, > welchen ich im Leerlauf einfach auf HIGH schalte. Muss mich korrigieren. Das Funkmodul hängt an PD5. Hatte die Schaltung nicht vor mir. Ich hab das zum probieren mal auf PB0 gehängt. Keine Änderung. Außerdem hab ich die Schaltung so abgeändert, dass ich VCC und nicht GND schalte. Keine Änderung Dann hab ich mal eine LED zwischen VCC und GND des Funkmoduls gehängt. Man konnte sehen wie die LED kurz aus- und wieder eingeschalten wird als der Sleepmode aktiviert wurde. Daraufhin hab ich den Code so geändert, dass das Modul nicht direkt vor dem Sleepmode ausgeschalten wird sondern in einem anderen Programmteil. Das Modul wird ausgeschalten und bleit aus. Meine Vermutung: Ich wecke den µC auf wenn auf INT0 HIGH erkannt wird. Und ich denke das ist der Fehler. INT0 muss durch LOW ausgelöst werden wen sich der µC im PowerDown befindet. Richtig? Ich hatte das schon mal wo gelesen. Da ich dazu aber einiges um löten muss hab ich es mal so probiert und es hat augenscheinlich trotzdem funktioniert. MfG! Martin
humar1990 schrieb: > INT0 muss durch LOW ausgelöst werden wen sich der µC im PowerDown > befindet. Richtig? attachInterrupt(digitalPinToInterrupt(pin), ISR, mode); mode: LOW CHANGE RISING FALLING https://www.arduino.cc/en/Reference/AttachInterrupt Das könnte auch interessant sein: https://glaskugelsehen.wordpress.com/2013/06/09/arduino-atmega-mit-bewegungsmelder-aufwecken/
Georg M. schrieb: > Das könnte auch interessant sein: > https://glaskugelsehen.wordpress.com/2013/06/09/arduino-atmega-mit-bewegungsmelder-aufwecken/ Das hat mir sehr geholfen. Danke! Ich hab jetzt die komplette Schaltung so umgebaut, dass die Taster beim Betätigen die Eingänge auf LOW ziehen. Außerdem schalte ich jetzt das Funkmodul und LCD über VCC ein und aus. Die Schaltung braucht jetzt im Power Down Mode ca. 200µA. Damit bin ich zufrieden. Ein Problem hab ich aber noch. Das LCD gibt nach dem Erststart (also wenn ich die Stromversorgung komplett abgeschlossen hatte) nur Mist aus. Wenn der µC in den Power Down versetzt wurde und wieder aufgeweckt wird funktioniert das Display wieder. Ich hab schon versucht zwischen einschalten und Initialisierung 5 Sekunden zu warten. Keine Änderung. Jemand eine Idee? MfG! Martin
humar1990 schrieb: > Jemand eine Idee? Timing Problem bei der LCD Initialisierung, nicht vor. Die Zeiten zwischen den einzelnen Initialisierungs-Phasen werden gerne mal "vernachlässigt".
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.