OLED-Display ausschalten

  • Guten morgen Zusammen,


    ich bin neu in der Welt des Raspberry Pi's und bastele grade an einer Kamerasteuerung mit einem OLED-Display von AZ-Delivery. Das Display läuft prima und ich habe bereits ein Menü programmiert, welches ich über Taster steuern kann. Zur Ansteuerung des Displays nutze ich das Adafruit-SSD1306-Modul. Soweit zu den Grundlagen, jetzt zu meinem Problem:


    Über einen zusätzlichen Taster (Funktioniert bereits einwandfrei) möchte ich das Display zum Energie sparen ausschalten und bei Bedarf wieder einschalten können. Wichtig beim Einschalten ist, dass ich immer das zuletzt angezeigte wieder sehe. Leider kann ich absolut keinen Befehl dafür finden.


    Hat einer von euch hier eine Idee?


    Vielen Dank vorab und viele Grüße

    BrA!nPa!N

  • Da müßtest Du in das Datenblatt des SSD1306 schauen, ob das überhaupt vorgesehen ist. Ganz stromlos wird es nicht gehen. höchstens Helligkeit auf 0 setzen.

  • egal wie, merke dir den Text oder die Pixel am PI und schicke zum "Ausschalten" alles noch mal raus mit Schriftfarbe "black"


    geht auch schneller für Teilbereiche löschen als alles zu löschen.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • das Display zum Energie sparen ausschalten und bei Bedarf wieder einschalten

    Mit diesen Kommandos geht es:

    SSD1306_DISPLAYOFF = 0xAE

    SSD1306_DISPLAYON = 0xAF


    Wie man das mit dem Adafruit Treiber in Python umsetzt, weiss ich allerdings nicht. Aber ich bin sicher dass es eine Funktion gibt mit der man Low-Level Befehle an das SSD1306 Display schicken kann.


    Allerdings frage ich mich wegen des Energiespareffektes am Raspberry Pi - das Display braucht bei normaler Benutzung weniger als 10mA (ein 128x32 sogar nur 3 bis 4 mA).

    Ich benutze obige Befehle an batteriebetriebenen Arduinos, da macht es Sinn. Am Raspberry Pi...??

  • Allerdings frage ich mich wegen des Energiespareffektes am Raspberry Pi

    Energie lässt sich wohl nicht signifikant einsparen, aber Displayabnutzung-> OLED ist akives Material und verbraucht sich beim Leuchten, also ist Abschalten wenn es nicht gebraucht wird keine dumme Idee

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Vielen Dank für die schnellen Antworten. Ich werde mit den Hinweisen mal weiter basteln.


    Hintergrund für die "Energiesparwut" ist, dass ich lange Zeitraffer aufnehmen möchte und der raspberry pi Zero w hierbei unter als Intervallauslöser dienen soll. Als Energiequelle wird eine Powerbank genutzt. Die Lebensdauer ist an der Stelle zweitrangig aber dennoch ein wichtiger Aspekt.

  • Hintergrund für die "Energiesparwut" ist, dass ich lange Zeitraffer aufnehmen möchte und der raspberry pi Zero w hierbei unter als Intervallauslöser dienen soll.

    das wäre aber unter Energiegesichtspunkte eher was für Arduinos im deep sleep mit RTC wake up!


    das cost fast gar nix (Geld und Strom aus der Powerbank)

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Abgesehen davon, dass ich schon viel zu weit mit meinem Projekt fortgeschritten bin um umzuschwenken, erfüllen die Aduions nicht die zusätzlichen Anforderungen.

  • erfüllen die Aduions nicht die zusätzlichen Anforderungen.

    das verstehe ich nicht,

    sind die Anforderungen hoch kann ein PI nicht sparsam sein.


    Dann war dein Satz mit dem "Intervallauslöser" auch erklärend, gerade weil ich sowas mit einem AVR gebaut hatte fiel mir kein Grund für den PI ein.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Das hängt damit zusammen, dass ich ddserver benutzen möchte und das läuft nur über Linux... Wie auch immer ich werde mal testen und dann berichten.

  • Ich möchte noch eine Motorsteuerung basteln für verschiedene Aufgaben wie move-shoot-move, Astronachführung, Panoramen etc. Da ich absoluter Neuling bin aber ein wenig Linuxerfahrung habe und Python super dokumentiert ist habe ich mich für den raspberry entschieden. Aufgabe Nr. 1 ist ein Menü über das OLED-Display sowie der Auslöser über GPIOs. Ist für einen Anfänger vielleicht sehr komplex aber es macht Spaß und funktioniert bis jetzt sehr gut 😊

  • Das Problem ist gelöst. Innerhalb der Adafruit-ssd1306-Bibliothek befindet sich die Funktion "command" über die man die man die von nurazur genannten Parameter abrufen kann. Der Code zum abrufen lautet dann:

    Code
    1. # turn display off
    2. disp.command(Adafruit_SSD1306.SSD1306_DISPLAYOFF)
    3. #turn display on
    4. disp.command(Adafruit_SSD1306.SSD1306_DISPLAYON)


    Aktuell bin ich nur zu doof das ganze in ne funktionierende IF-Schleife zu packen, die sich merkt ob das Display grade aus oder an ist. Aber da wird sich mein Fehler schon finden lassen.


    Vielen Dank für eure Hilfe!


    Gruß

    Bra!nPa!N

  • Wenn du den Zustand des Displays (on/off) nicht abfragen kannst, dann setze z.B. eine Variable beim An-, bzw. Abschalten. Die Variable setzt du auf on oder off oder 1 (an) oder 0 (aus) und fragst diese Variable dann ab, wenn gewünscht. Übriegends, IF ist keine Schleife, wie z.B. while oder for.

  • Aktuell bin ich nur zu doof

    Wie frage ich nach Hilfe?


    nur wo war die Frage?


    die sich merkt ob das Display grade aus oder an ist.


    du schaltest AN -> merke AN (Stichwort: Variable) und nutze die Info zur passenden Zeit

    du schaltest AUS -> merke AUS (Stichwort: Variable) und nutze die Info zur passenden Zeit


    Da du aber nicht besonders redseelig bist bleibt für uns nur Schweigen übrig.


    Man könnte dir ja nun ein Programm in C vorsetzen, nur nutzt dir das?

    Ich denke hier wäre der Moment gekommen wo du klein anfangen könntest, GPIO Port setzen, lesen.

    Texte ausgeben, lesen

    Von 1 -10 zählen und alle Quadratzahlen von 1 - 10 ausgeben.

    Rausspringen, die schleife beenden wenn 16 erreicht wird.

    Bedingungen abfragen testen, Verzweigungen.


    vergiss es ich habe nur laut gedacht....:stumm:

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr

  • Vielen Dank für den Hinweis daxb, habe es heute morgen auch mit Variablen versucht und mich vermutlich irgendwo vertan. Hatte aber keine Zeit mehr um den Fehler zu suchen.


    Das mit der IF-Schleife werde ich mir merken, versprochen. Erst recht nach Linus Link xD


    Den Beitrag hatte ich übrigens mit meinem letzten Post geschlossen jar, deshalb auch keine weitere Frage geschrieben...Aber vielen Dank für deine charmante Art <3