Oled Display und Batterie Betrieb ?

  • Hallo Ihr zwei,


    vielen lieben dank für Eure große Mühe.


    Kai, vielen Dank für die genauen Tests und auch für den Code :thumbup:

    Du hattest ja schon am Anfang den Test mit dem Display alleine gemacht und da hatte man ja schon gesehen wie wenig Strom das Display noch benötigt wenn es im Schlafmodus ist.


    Wenn man die Schaltung selbst baut und eine Batterie nutzt, könnte man den Spannungswandler ja weg lassen.

    Somit würden man sich hier bestimmt noch einiges sparen :)


    Nochmals Vielen Dank für euren Einsatz.


    Viele Grüße

    Nicole

  • Danke Kai


    schön zu sehen, wo man sich in etwa mit dem Strom hinbewegt. Aber, die ganze Mühe zählt sich vermutlich erst wirklich, wenn man die Schaltung mit der uC selber aufbaut, ohne drum herum, das man vielleicht nicht mal braucht. Aber Strom um den Faktor 4 einzusparen ist doch schon einiges an Batterielebensdauer. Wenn man die Schaltung selber baut, dann könnte man zusätzlich die Betriebsspannung im sleep verringern ... etc.


    schönen Abend

    Pius


    PS: hier noch ein Bild für Nicole (ähnliche Baustelle)

    Bild.png

  • Hallo zusammen,


    heute habe ich noch einmal etwas herumprobiert. Ich hatte ja geschrieben, dass man bei einem PNP Transistor möglicherweise eine etwas aufwändigere Schaltung braucht. Deswegen hatte ich mit Pius hinter den Kulissen noch etwas Schriftverkehr. Er sagte nämlich, dass ein Output-PIN der auf HIGH gesetzt ist, diesen Status auch im Sleepmode behält. Somit ist also auch eine einfache PNP Schaltung möglich.


    Ich habe es ausprobiert und wie immer hatte Pius recht ;).


    Allerdings hatte ich so meine Zweifel, wenn ich im Schlafmodus permanent einen PIN auf HIGH und somit auf Betriebsspannung halte, ob das nicht vielleicht doch mehr Strom verbraucht, als wenn er auf Massepotential liegt.


    Darum habe ich beide Varianten mit einem Arduino-Nano Clone aufgebaut. Das Programm aktiviert das Display, spielt eine Grafikdemo und schaltet anschließend das Display wieder aus, bevor der SleepMode aktiviert wird. Die verwendete Routine (Auszug) sieht wie folgt aus:



    SWITCH ist in diesem Fall der Pin D10 des Nano. Dieser ist mit der Basis des jeweiligen Transistors verbunden. Je nach verwendeten Transistor habe ich den PIN gegensätzlich geschaltet. Wie, sieht man an den Kommentaren im Quellcode.

    Mit einem Taster an einem Input-Pin wurde der Controller (per Interrupt) wieder aufgeweckt. Die Prozedur habe ich pro Schaltungsvariante fünf mal wiederholt und dabei den Maximalstrom und den Strom im Sleepmode gemessen. Wirklich interessant ist eigentlich nur der Stromverbrauch im Sleepmode. Das Maximum hängt stark von der Art der Displayausgabe ab. Ich führe es der Vollständigkeit halber aber mal mit auf:



    PNPSleepmode / mAMax / mA
    112,63647,273
    213,05051,518
    313,04451,447
    413,04651,517
    513,04351,410



    NPNSleepmode / mAMax / mA
    112,72451,427
    212,72251,403
    312,72051,415
    412,72051,521
    512,72051,416


    Der Minimalstrom ist beim Beginn des Sleep-Modes etwas geringer als in der Tabelle angegeben, steigt aber mit der Zeit ein kleines bisschen an, bis er sich einpendelt. Der Unterschied ist nicht sehr groß aber es ist ein leichter Vorteil bei der NPN-Schaltung zu erkennen. Bei den Werten handelt es sich um den Gesamtverbrauch der Schaltung.


    Warum die erste Messung beim PNP so aus der Reihe fällt kann ich nicht mit Gewissheit sagen, wahrscheinlich habe ich mich da mit der MIN/MAX Taste meines Multimeters etwas vertüddelt und es ist ein Messfehler.


    Wer sich jetzt fragt, warum der Nano im Sleep Mode noch so viel Strom verbraucht, dem sei gesagt, es brennt auch im Schlafmodus die Power-LED. Wenn man das nicht will, muss man sie auslöten. Außerdem haben diese "MCUs" nicht den sparsamsten Spannungswandler. Der verbrät einiges an Ruhestrom. Es ist auch sicher noch das ein oder andere am Schlafmodus optimierbar (z.B. AD-Wandler abschalten usw.). Ich denke aber, am Prinzip würde auch das nichts ändern.


    Wer es selber ausprobieren möchte, kann das Programm hier herunter laden: arduino-io.cpp.

    Für die Arduino IDE, muss die Datei von .cpp in .ino umbenannt werden.


    Gruß Kai

  • Nicole:


    Ja... das mit R4 habe ich geschrieben und da hat sich auch nichts dran geändert. Der Plan ist aus einer Simulation entstanden. Deshalb ist das Display auch kein Display, sondern eine LED-Bar mit Vorwiderstand. Da meine Schulversion kein Spice Modell für OLEDs hat, habe ich mir so beholfen, um die grundsätzliche Funktionalität zu ermitteln. Darum ist R4 da noch drin.


    Ob die zweite Schaltung wirklich sparsamer ist, habe ich nicht ausprobiert. Kannst Du ja mal versuchen. Aber vielleicht fängst du erst mal mit dem NPN an und probierst, ob da alles reibungslos läuft.


    Gruß Kai

  • Hallo Kai,


    vielen Dank für deine Mühe und das viele Testen der Schaltungen.


    Das bedeutet, wenn man es richtig machen möchte, benötigt man einen PNP und einen NPN Transistor.

    Somit schaltet das Display richtig ab und man hat den wenigsten Stromverbrauch.


    Nochmals zu dem Widerstand R4 in der PNP-Schaltung.

    Hattest Du nicht gesagt das ich diesen nicht benötige :/

  • Hallo zusammen,


    ich habe zumindest für die „Transistorengeschichte“ die Schaltungen noch einmal etwas „schön“ gemacht.

    Folgendes Bild zeigt beide Schaltungen, einmal mit einem NPN und einmal mit einem PNP-Transistor.

    Es ist jeweils noch ein 100kΩ Widerstand hinzugekommen. Bei der NPN Schaltung ist es ein Pull-Down Widerstand, der dafür sorgt, dass auf der Leitung vom, nennen wir ihn mal „SteuerPIN“ des μControllers, immer ein definierter Zustand herrscht (entweder LOW oder HIGH aber nix dazwischen, z.b. beim Start des Arduino).


    53994781-AC47-4B6F-A912-D2BC281D129A.png


    Bei der PNP Schaltung ist er als Pull-Up Widerstand eingesetzt. Simpel ausgedrückt, arbeitet die PNP Schaltung genau umgekehrt wie die NPN Schaltung. Und damit kommen wir zum kniffeligen. So wie im obigen Schaltplan angeschlossen, wird das Display angeschaltet, wenn der SteuerPIN des μControllers auf LOW geschaltet ist. Also arbeitet das Display auch, wenn der μController ausgeschaltet ist. Das ist aber nicht gewollt. Und damit komme ich zu Pius‘ Hinweis auf seine Würfelschaltung in Beitrag #17 dieses Threads.


    Bitte @Pius korrigiere mich, wenn ich hier jetzt falsche Schlüsse verbreite.


    Die Schaltung mit einem PNP-Transistor wird etwas komplizierter, weil die Basis des PNP über einen NPN- Transistor gesteuert werden muss. Dadurch wird das Display, wie gewünscht, ausgeschaltet, wenn der μController im Schlafmodus und damit auch der SteuerPIN auf LOW geschaltet ist. Das sähe dann so aus:


    CCB6617D-E445-42F1-998F-BD5777612FA7.png


    Bei dieser Schaltung wird der NPN-Transistor durchgeschaltet wenn der SteuerPIN auf HIGH geschaltet ist. Dadurch wird die Basis des PNP-Transistors auf Massepotential gebracht und er schaltet durch. Im umgekehrten Fall schließt der PNP-Transistor. Wir haben wieder das gewünschte Verhalten.


    Gruß Kai

  • Ich habe meinen Test mit einem NPN BC547B gemacht. Mein Multimeter hat mir einen Ruhestrom (Display aus) von -0,002mA = -2µA angezeigt. Das ist so ein kleiner Wert, da weiß ich gar nicht so recht, wie ernst der zu nehmen ist. Das (-) hat mich etwas irritiert. Ich werde das bei Gelegenheit nochmal genauer untersuchen und mit Pius' Variante vergleichen.


    Und ja .. so wie Pius es beschrieben hat, ist auch geschaltet.


    Gruß Kai

  • Hallo Ihr zwei,


    vielen Dank für eure große Mühe und die Informationen.


    Kai, es war von mir nicht böse gemeint ich habe mir die beiden Schaltungen von Dir angesehen und dann ist mir aufgefallen das bei der Transistor Schaltung 10 V steht.


    Ich bin auch kein Profi was einen Schaltplan betrifft, deswegen auch meine Frage ;)

    Die Lösung mit dem Transistor gefällt mir sehr gut, somit werde ich diese nutzen.


    Kai, hast Du jetzt mit einem NPN oder PNP Transistor die Tests gemacht ?

    Pius sagt ja es wäre besser wenn ich einen PNP nutzen würde.


    Und nein, ich mache keinen Heckmeck aus dieser Sache 8o


    Pius du schreibst: Wenn Du das Display mit einem NPN Transistor schaltest, dann muss die Masse des Displays an den C vom Transistor und die VCC Leitung ist fix an der Versorgung.


    Das ist ja der Fall so wie es der Kai in seiner Transistor Schaltung eingezeichnet hat oder sehe ich das falsch ?


    Euch vielen Dank für die gute Hilfe.


    Viele Grüße

    Nicole

  • Danke Pius für Dein geballtes Wissen :thumbup:. Auf jeden Fall würde ich, nach neueren Erkenntnissen, NICHT empfehlen das Display direkt an eine digitalen Pin des Arduino anzuschließen!!!!


    Ich bin gerade am Messen und hatte einen Maximalwert von 26,299 mA Stromverbrauch. Meistens liegt der Verbrauch unter 11mA aber eben nur meistens... je nach Grafikoperation geht es offenbar ganz schön nach oben (z.B. wenn die Display-Ausgabe invertiert wird -> weißer Hintergrund) und liegt damit weit über der Angabe, die in diversen Datenblättern zu finden ist.


    DABE407D-024D-4237-9564-D936944ECE64.jpeg



    Ergänzung:


    Nach nun recht vielen Versuchen kann ich keinen bemerkenswerten Unterschied mehr im Stromverbrauch feststellen. Egal ob nun 820Ω Widerstand oder ein 39kΩ Widerstand verwendet wird. Also Nicole ... mach keinen Heckmeck... nimm nen kΩ und gut is ;). Dann ist auf jeden Fall ist dann genug Saft auf der Leitung.


    Gruß Kai

  • Danke Kai


    Danke für die Info. Da habe ich nun Glück gehabt, weil ich hätte ein sehr schlechtes Gewissen, würde ein Vorschlag von mir so ins Aus führen.


    Noch etwas, Kai:

    Wenn Du das Display mit einem NPN Transistor schaltest, dann muss die Masse des Displays an den C vom Transistor und die VCC Letung ist fix an der Versorgung. In dieser Verschaltung fliessen tatsächlich Ströme gegen die Datenpins ab. Ich kenne das hier angesprochene Display nicht, hatte aber mal ein Problem mit einer ASCII OLED Anzeige und war so nicht in der Lage die Beleuchtung ganz dunkel zu bekommen.

    Aus diesem Grund würde ich einen PNP Transistor benutzen, damit Masse immer am Display bleiben darf. Erinnerst Du Dich an den Würfel und das Schalten der Versogung?


    pasted-from-clipboard.png

    das müsste funktionieren.


    Alternativ, wenn der Strom es zulässt, direkt an ein Output Pin schalten.


    Gruss

    Pius

  • Nur keine Panik. Das 0,96“ Oled ist für eine Betriebsspannung von 3,3 bis 5V ausgelegt Datenblatt.


    Ergänzung:


    PIUS hat recht. Ich bin mit den 91-120kΩ viel zu hoch gelegen. Ich habe es mit 100kΩ probiert. Das Display ist zwar losgelaufen, aber mittendrin hängen geblieben. Ich habe mich inzwischen an eine kleine "Faustregel" erinnert...

    Kollektorstrom * 3 -> also ausgehend von 11mA -> 33mA annehmen ... dann untenstehende Rechnung -> 4,3V * 300 / 33mA ≈ 39090 => 39kΩ. Siehe da .. funktioniert wunderbar.


    Es wäre jetzt nur noch zu klären, ob mit höherer Sättigung (kleinerer Widerstand) etvl. der Stomverbrauch steigt. Wenn nicht, braucht man bei einer so simplen Schaltung wie dieser, wirklich keinen Heckmeck machen und blind 1kΩ benutzen ;).


    Gruß Kai

  • Hallo Nicole und Mitlesende


    Ich habe einen wichtigen Nachtrag:

    Eine Versorgung einer eletronischen Einheit, die eine tiefere Spannung als die zur Verfügung stehende Spannung benötigt, NIEMALS mittels eines Widerstandes in Serie gestalten. Wenn Dein Kontroller mit 5V arbeitet und die Anzeige mit 3.3V dann darfst Du nicht ein Output Pin des Kontrollers benutzen, da dieser beinahe 5V liefert. Wenn Du die Spannung durch einen Seriewiderstand reduzierst, dann ergibt sich nur bei einem bestimmten Laststrom die gewünschet Spannung. Steigt der Stromverbrauch der Anzeige an, dann sinkt die Betriebsspannung der Anzeige (weniger ein Problem), wenn der Strom sich aber reduziert, dann steigt die Spannung an und zerstört Dir die Anzeige.

    Hast Du in Deiner Schaltung irgendwo eine Versogrungsspannung die dem Display entspricht (wenn das Display 3.3V benötigt brauchst Du eine 3.3V Versorgung) ?

    Bitte sag mir, was zur Verfügung steht und ich versuche Dir die Lösung zu zeichnen.


    herzlichen Gruss

    Pius

  • Nun Nicole


    Deine Wahl ... ich habe ein Display noch nie direkt von einem Pin versorgt, aber wenn die Leistungsgrenzen überall beachtet werden, dann funktioniert das sicher und auch zuverlässig. Die Schaltung mit dem Transistor hat aber auch ihren Vorteil: Das Display ist extern angeschlossen und wenn die Verdrahtung beim Experimentieren oft bewegt wird, besteht das Risiko von Drahtbrüchen und Kurzschlüssen. Ein Transistor ist da leicher zu ersetzen als der Kontroller, abgesehen ist er auch billiger.


    Was KaiR rechnet uns vor, in welchem Bereich sich der Basis Widerstand bewegen soll. Dieser Widerstand limitiert den Basis-Emitter Strom und darf nie weggelassen werden. Grob gilt, der Strom der in die Basis fliesst wird mit dem Verstärkungsfaktor mutlipliziert. Für den BC547B musste ich auch nachschlagen. Das Hfe liegt typisch bei 290 (min 200, max 450) , so ist die Annahme von Kai mit 300 auch richtig.


    Nur gehe ich jeweils Überschlagsmässig vor und denke immer an den Kontroller, der meinen Schutz braucht^^

    Rein aus meinem Bauchgefühl heraus, erscheint mir ein R von 120kΩ in der Basis viel zu gross. Damit der Transistor als Schalter arbeitet (Ein/Aus) und nicht als linearer Verstärker muss er in die Sättigung gebracht werden. IB 5mA, U=5V

    R = (5V- .7V) / 5mA = 860Ω für einen Basisstrom von 5mA

    Der max. Ausgangsstrom wäre dann um den Verstärkungsfaktor von 300 höher (5mA * 300) = 1.5A


    hier grob beschrieben und wer es genauer wissen möchte schaut mal da rein.

    Gruss

    Pius

  • Der Hinweis von Pius ist richtig. Ich hatte erst mach meinem Vorschlag nachgeschaut, wieviel Strom das Display eigentlich braucht. Da ein Arduino etwa 20mA pro PIN liefern kann, kann es eigentlich auch direkt über einen Digital-PIN mit Strom versorgt werden. Versuch macht klug .....


    Der Widerstand an der Transistorbasis ist vom Strom abhängig, der über die Collector-Emitter (CE) Strecke fließen soll. Bzw. der Strom, der durch die CE Strecke fließt, ist vom Strom an der Basis abhängig. Der wird durch den verwendeten Widerstand beeinflusst.

    Wenn man von einem Transistor mit einer Verstärkung von 300 ausgeht, wäre das bei 11mA z.B. 4,3V * 300 / 11mA. 4,3V wegen 5V Betriebsspannung - 0,7V Basis-Emitter-Spannung (BE). Dabei kommst du auf etwas über 117kΩ - also E24 Reihe 120kΩ. Damit der Strom nicht zu knapp bemessen wird, gibt es einen kleinen Sicherheitszuschlag... nehmen wir 100kΩ oder 91kΩ.


    Lange Rede kurzer Sinn... die 50kΩ aus dem Beispiel sind nicht in Stein gemeißelt... Es war nur ein Beispiel.


    Der 180Ω Widerstand war nur der Vorwiderstand fuer das LED-Diplay.... den kannst Du beim OLED weglassen. Ich hatte halt kein OLED in der Bauteildatenbank.


    Ja auch die 10V waren nur ein Wert mit dem ich herumprobiert habe. Es geht bei den Abbildungen nicht um die Werte, sondern um das Prinzip, wie die Teile verbunden sind. Um die Werte muss man sich beim Schaltungsaufbau selber kümmern... je nachdem was man für Teile verwendet (Datenblatt). Je nach eingesetztem Transistor/Mos-FET können die ganz anders sein.


    Probier ein wenig rum.


    Gruß Kai

  • Hallo Pius,


    vielen Dank für deine Informationen.


    So wie ich das lese, sagst Du dass ich das Display auch ohne einen Transistor oder Mos-FET steuern könnte ?

    Die Frage ist, ob das ein guter Plan ist und ob es sicher funktionieren wird ?


    Ein Transistor kostet ja nicht die Welt und mit diesem wird es ja 100% funktionieren laut euren Erfahrungen.


    Ich habe noch eine Frage zu dem Schaltplan von Kai mit dem Transistor.

    Weshalb hast du bei der Base einen 50K Widerstand eingezeichnet ?

    Ich habe bei den Transistoren eigentlich immer einen 1K Widerstand genutzt.

    War das falsch ?


    Und für was ist der 180 Ohm Widerstand in der Plus Leitung ?

    Soll dieser als Strom Regulator dienen ?


    Laut meiner Rechnung hättest Du so gerechnet:

    5 Volt Spannung ---- 180 Ohm Widerstand ---- ergibt 3,3 Volt für das Display ---- Display wird mit 3,3 Volt betrieben.


    In deiner Transistor Schaltung hast Du aber eine Spannung von 10 Volt angegeben das ist denke ich ein Fehler ?

  • Kai liegt richtig. Der Unterschied zwischen einem FET oder einem Transistor als Schalter liegt im Ron, der bei einem FET kleiner als bei einem Transistor ist. Je kleiner der Widerstand im leitenden Zustand ist um so kleiner ist der Spannungsabfall über dem Schalter. Bei so kleinen Lasten spielt dieser Ron auch eine kleine Rolle. Je grösser die geschalteten Lasten sind um so wichtiger werden die Verluste am Schalter.


    Betreffs den Signaleingängen der Anzeige können zwar kleine Ströme fliessen, aber nur, wenn die Ausgänge auf logisch 1 liegen (da die Ströme nur gegen Masse abfliessen können, bei fehelder Vcc). Aber wie Kai schon sagt, sind diese Ströme (meist) sehr sehr klein.


    Und, wenn das Display wirklich sehr wenig Strom bezieht und dieser Strom viel kleiner ist als der Strom den man an einem Ausgangspin des Kontrollers (bei +) beziehen darf, dann darf man auch das Diplay direkt aus dieser Quelle versorgen. Man benutzt in diesem Fall den internen FET des Kontrollers als Schalter.


    Gruss

    Pius

  • Was Du benutzt ist wurscht. Transistor ist billiger. Hat man eher rumfliegen als Mos-FETS. Zumindest ist das bei mir so ;). Bei letzterem ist es wichtig, dass es ein Logic-Level Mos-FET ist. Das heißt, dass der schon bei 1-3V Spannung voll durchschaltet (Gate Threshold Voltage VGS(th)). Der IRLZ44N ist z.B. so ein Kandidat. Beim Transistor dürfte der BC547B/C am verbreitetsten sein.


    Ob man einen Unterschied merkt, kann ich Dir nicht sagen. Bei diesem Display, das mit < 11mA Stromverbrauch (geringe Last) angegeben ist, dürfte es wurscht sein, welche Lösung du nimmst. Ich habe sowas bisher nur mit Transistoren gemacht. Darum habe ich (noch) keinen Vergleich. Da kann ja ein vielleicht ein erfahrener Elektroniker hier im Forum etwas zu sagen.


    Ob die PINS automatisch auf LOW gehen im Schlafmodus kann ich so ad hoc auch nicht mit Sicherheit sagen, aber das ist ja kein Akt das auszuprobieren.


    Gruß Kai

  • Danke für die Erklärung das werde ich versuchen :)


    Soll ich einen Transistor oder einen Mos-FET nutzen ?

    Bzw. merkt man hier einen Unterschied ?


    Und wenn ich den Arduino schlafen lege schalten dann automatisch alle Pin auf Low ?

    Oder muss ich das bewusst vor dem Schlafen legen so Programmieren ?

  • Jein. Man versorgt das Display NICHT über eine Arduinoleitung mit Strom.


    Das Display hat eine eigene Stromversorgung. Der Arduino ist nur mit einem Pin mit der Basis des Transistors oder mit dem Gate des Mos-FET verbunden. Je nachdem was Du einsetzt. Wird dieser Pin des Arduino auf HIGH geschaltet, so wird der Transistor/Mosfet leitend und das Display geht an (Schalter an). Wird der PIN auf LOW geschaltet geht das Display aus, weil Transistor/Mos-FET keinen Strom mehr durchlassen (Schalter auf). Wenn das Display nicht mehr mit Strom versorgt wird, spielen die Datenleitungen auch keine Rolle mehr.


    In Wirklichkeit fließt noch etwas Strom, aber das bewegt sich im µA Bereich.


    Gruß Kai

  • Vielen Dank für deine Mühe und den Schaltplan.


    Das bedeutet, du schaltest bewusst die Plus Leitung aus ?

    Somit versorgt man das Display über einen Arduino Pin mit Strom.


    Wenn der Arduino im Schlafmodus ist und über einen Taster geweckt wird, schaltet auch der Pin für das Display den Strom durch ?

    Habe ich das richtig verstanden ?


    Und könnte es vielleicht sein, das die Datenleitungen trotzdem noch Strom ziehen obwohl die Plus Leitung abgeschaltet ist ?


    Viele Grüße

    Nicole