ESP8266 mit OLED Display in Blinddeckel

Begonnen von tomster, 11 März 2016, 13:52:13

Vorheriges Thema - Nächstes Thema

wingfighter

#60
OK. Das ist ja schon mal gut.
Ja, die while(1)-Schleife lässt es endlos cyclen.
Was macht das Sketch denn, wenn das Display schwarz ist?

Überprüfe bitte auch mal, ob alle Anschlüsse, die in der unten stehenden Zeichnung mit GND verbunden sind, auch auf GND liegen.

tomster

#61
Ohh, Mann. Das hab ich total übersehen, dass E, R/W und D10-D15 und CPU auf Low gezogen werden müssen...
Peinlich, peinlich  :-[

tomster

Zitat von: wingfighter am 05 April 2016, 15:47:39
Überprüfe bitte auch mal, ob alle Anschlüsse, die in der unten stehenden Zeichnung mit GND verbunden sind, auch auf GND liegen.

Ändert leider am Verhalten auch nix. Das Display wird zwischendrin immer noch schwarz...

wingfighter

Eine Idee hätte ich noch.
Ich habe den VCC-Anschluss des DHT auf einem GPIO-Pin (D7) liegen, weil ich testen wollte, ob seine eventuelle Eigenwärme das Messergebnis verfälscht.
Diesen Pin schalte ich nur zum Messen kurz auf HIGH. Wenn Du da zufällig vom Display eine Leitung dran hast, kann das auch zu Deinem beschriebenen Effekt kommen.
Der Schalten passiert in Zeile 1597 und wird alle 10s aufgerufen. Kannst diese und die Zeile zum Ausschalten ja mal auskommentieren.

tomster

Hab bei mir nix an D7 hängen, aber ich probiere das morgen trotzdem Mal aus. Hab testweise ein 2. Set aufgebaut. Gleicher Effekt. Zudem scheint das Display einen Fehler zu haben, weil auf der rechten Seite viele Pixelstörungen angezeigt werden.

tomster

Bringt leider, fast wie erwartet, keine Besserung. Keine Ahnung was da nicht stimmen kann.

Hast Du eine andere CPU-Freq? Ich hab die standardmäßigen 80MHz im Arduino IDE eingestellt.

wingfighter

#66
Ich habe bei mir an den Stadardeinstellungen nichts geändert. CPU läuft  mit 80 MHz.

Kannst Du mir bitte nochmal sagen, was in der Zeit passiert, wenn das Display dunkel ist? Also was wird dann in auf der seriellen Konsole ausgegeben?

Gibt es jemanden der anderen Thread-Leser, der das Sketch schon mal erfolgreich  oder -los testen konnte?



tomster

Passieren tut in der Zeit nicht viel, zumindest ausgabeseitig. Ein paar Messages der MQTT-Devices kommen rein:

Connecting to pillepalle
.........
WiFi connected
192.168.0.52
Starting UDP
Local port: 2390
sending NTP packet...
packet received, length=48
Seconds since Jan 1 1900 = 3668930471
Unix time = 1459941671
The MEZ time is 11:21:11
06.04.2016
Sommerzeit
!new Time set
Attempting MQTT connection...Connecting to MQTT server
Connected to MQTT server
Set Subscribe to : fhem/Display/#
Message arrived: topic: fhem/Display/2
Length: 2
Payload: 77
Payload message_buff[]: 77
Message arrived: topic: fhem/Display/1
Length: 3
Payload: 8.0
Payload message_buff[]: 8.0

wingfighter

Das sieht aber normal aus.
Da würde ich in der Tat auf das Display tippen.

Auf GitHUB habe ich ja unter Example auch ein Testscript liegen. Das basiert auf der Empfehlung aus der Display-Doku bzw. ist von der Herstellerseite.
Vielleicht solltest Du das mal testen, um die Ansteuerung des Display und das Display selber als Fehlerursache ausschließen zu können.

https://github.com/wingfighter/ESP8266_OLED_NHD-1.69-160128UGC3/tree/master/Example/NHD-1.69-160128UGC3_Test_ESP8266.ino

tomster

Den Example-Sketch habe ich schon auf beiden Systemen ausprobiert.
Bei dem mit den Pixelfehlern schaut es so aus als hätte der Treiberchip auf dem Flachbandkabel einen Wackelkontakt-> Streifen über Streifen. Durch Rumdrücken auf dem Chip wird es deutlich besser. Ich vermute also Garantiefall.

Das andere System (mein bisheriges Testsystem) zeigt einwandfrei das "Testbild". Dauerhaft ohne schwarzen Bildschirm in wunderbaren Farben.
Mit deinem DHT-Sketch:
Beim Booten wird erst kurz eine Displayseite sichtbar. Quasi wie als hätte das Display den letzten Status vor dem Ausschalten "gespeichert". Dieser wird aber sofort durch den Sketch "geblanked". Dann ist für 10-20 Sekunden alles schwarz und es erscheint (in 7 von 10 Fällen) das Temperaturdisplay, dann das Luftfeuchtedisplay des DHTs. Dann wird der Bildschirm wieder schwarz. Beim nächsten oder übernächsten Cycle kommen dann die Displays des definierten MQTT-Devices hinzu. Erst meist mit 0.00, dann irgendwann auch mit Werten. Jeweils unterbrochen von unterschiedlich langen Schwarzzeiten (~10-120 Sekunden).

tomster

#70
Ha!
Hab den Schuldigen ausgemacht. Der Sketch kommt nicht klar damit, wenn der Fotowiderstand nicht dranhängt.
Ich hab im Code die Zeilen 1617ff auskommentiert und nun geht's!

// Read analog port A0
//   sensor_value  = analogRead(SENSOR);
//   int x = (sensor_value * 100 / 1023);
    // Set Driving to OLED
//    OLED_Driving_Current_160128RGB(223 * x / 100, 197 * x / 100, 179 * x / 100); //OLED initialization


Spiel mich grad parallel ein bisschen mit den Schriftarten. So ganz mag das aber noch nicht hinhauen. Ich hab bislang einfach die HEX-Angaben geändert, auf eine Robot Font. Da passen aber die Größen wohl noch nicht so richtig...

unsigned char Verdana[][148] = {
  {

    // @256 '0' (29 pixels wide)
    0x00, 0x3F, 0x80, 0x00, //           #######
    0x00, 0xFF, 0xE0, 0x00, //         ###########
    0x01, 0xFF, 0xF0, 0x00, //        #############
    0x03, 0xF1, 0xF8, 0x00, //       ######   ######
    0x07, 0xC0, 0x7C, 0x00, //      #####       #####
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x00, 0x0F, 0x00, //     ####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x0F, 0x00, 0x0F, 0x00, //     ####            ####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x07, 0xC0, 0x7C, 0x00, //      #####       #####
    0x03, 0xF1, 0xF8, 0x00, //       ######   ######
    0x01, 0xFF, 0xF8, 0x00, //        ##############
    0x00, 0xFF, 0xE0, 0x00, //         ###########
    0x00, 0x3F, 0x80, 0x00, //           #######
  },
  {
    // @384 '1' (29 pixels wide)
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x07, 0xFF, 0x80, 0x00, //      ############
    0x07, 0xFF, 0x80, 0x00, //      ############
    0x07, 0xFF, 0x80, 0x00, //      ############
    0x07, 0xFF, 0x80, 0x00, //      ############
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
  },
  {
    // @512 '2' (29 pixels wide)
    0x00, 0x3F, 0xC0, 0x00, //           ########
    0x00, 0xFF, 0xF0, 0x00, //         ############
    0x01, 0xFF, 0xF8, 0x00, //        ##############
    0x03, 0xF9, 0xFC, 0x00, //       #######  #######
    0x07, 0xC0, 0x7C, 0x00, //      #####       #####
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x3E, 0x00, //                   #####
    0x00, 0x00, 0x3C, 0x00, //                   ####
    0x00, 0x00, 0x7C, 0x00, //                  #####
    0x00, 0x00, 0x78, 0x00, //                  ####
    0x00, 0x00, 0xF0, 0x00, //                 ####
    0x00, 0x01, 0xF0, 0x00, //                #####
    0x00, 0x03, 0xE0, 0x00, //               #####
    0x00, 0x07, 0xC0, 0x00, //              #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x0F, 0x80, 0x00, //             #####
    0x00, 0x1F, 0x00, 0x00, //            #####
    0x00, 0x3E, 0x00, 0x00, //           #####
    0x00, 0x7C, 0x00, 0x00, //          #####
    0x00, 0xF8, 0x00, 0x00, //         #####
    0x01, 0xF0, 0x00, 0x00, //        #####
    0x03, 0xE0, 0x00, 0x00, //       #####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x07, 0xC0, 0x00, 0x00, //      #####
    0x0F, 0xFF, 0xFF, 0x00, //     ####################
    0x0F, 0xFF, 0xFF, 0x00, //     ####################
    0x0F, 0xFF, 0xFF, 0x00, //     ####################
  },
  {
    // @640 '3' (29 pixels wide)
    0x00, 0x3F, 0xC0, 0x00, //           ########
    0x00, 0xFF, 0xF0, 0x00, //         ############
    0x01, 0xFF, 0xF8, 0x00, //        ##############
    0x03, 0xF1, 0xFC, 0x00, //       ######   #######
    0x07, 0xC0, 0x7E, 0x00, //      #####       ######
    0x0F, 0x80, 0x3E, 0x00, //     #####         #####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x3E, 0x00, //                   #####
    0x00, 0x00, 0x3C, 0x00, //                   ####
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x3F, 0xF0, 0x00, //           ##########
    0x00, 0x3F, 0xE0, 0x00, //           #########
    0x00, 0x3F, 0xF8, 0x00, //           ###########
    0x00, 0x00, 0xFC, 0x00, //                 ######
    0x00, 0x00, 0x3E, 0x00, //                   #####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x1F, 0x00, //                    #####
    0x00, 0x00, 0x1F, 0x00, //                    #####
    0x00, 0x00, 0x1F, 0x00, //                    #####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x80, 0x3E, 0x00, //     #####         #####
    0x07, 0xC0, 0x7E, 0x00, //      #####       ######
    0x07, 0xF1, 0xFC, 0x00, //      #######   #######
    0x01, 0xFF, 0xF8, 0x00, //        ##############
    0x00, 0xFF, 0xF0, 0x00, //         ############
    0x00, 0x3F, 0xC0, 0x00, //           ########
  },
  {
    // @768 '4' (29 pixels wide)
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x01, 0xF8, 0x00, //                ######
    0x00, 0x01, 0xF8, 0x00, //                ######
    0x00, 0x03, 0xF8, 0x00, //               #######
    0x00, 0x07, 0xF8, 0x00, //              ########
    0x00, 0x07, 0xF8, 0x00, //              ########
    0x00, 0x0F, 0xF8, 0x00, //             #########
    0x00, 0x1F, 0xF8, 0x00, //            ##########
    0x00, 0x1E, 0xF8, 0x00, //            #### #####
    0x00, 0x3C, 0xF8, 0x00, //           ####  #####
    0x00, 0x3C, 0xF8, 0x00, //           ####  #####
    0x00, 0x78, 0xF8, 0x00, //          ####   #####
    0x00, 0xF8, 0xF8, 0x00, //         #####   #####
    0x00, 0xF0, 0xF8, 0x00, //         ####    #####
    0x01, 0xE0, 0xF8, 0x00, //        ####     #####
    0x01, 0xE0, 0xF8, 0x00, //        ####     #####
    0x03, 0xC0, 0xF8, 0x00, //       ####      #####
    0x07, 0xC0, 0xF8, 0x00, //      #####      #####
    0x07, 0x80, 0xF8, 0x00, //      ####       #####
    0x0F, 0x00, 0xF8, 0x00, //     ####        #####
    0x0F, 0x00, 0xF8, 0x00, //     ####        #####
    0x1F, 0xFF, 0xFF, 0x80, //    ######################
    0x1F, 0xFF, 0xFF, 0x80, //    ######################
    0x1F, 0xFF, 0xFF, 0x80, //    ######################
    0x1F, 0xFF, 0xFF, 0x80, //    ######################
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x00, 0x00, 0xF8, 0x00, //                 #####
  },
  {
    // @896 '5' (29 pixels wide)
    0x01, 0xFF, 0xFE, 0x00, //        ################
    0x01, 0xFF, 0xFE, 0x00, //        ################
    0x03, 0xFF, 0xFE, 0x00, //       #################
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x07, 0x9F, 0xC0, 0x00, //      ####  #######
    0x07, 0xFF, 0xF0, 0x00, //      ###############
    0x07, 0xFF, 0xF8, 0x00, //      ################
    0x07, 0xFF, 0xFC, 0x00, //      #################
    0x07, 0xC0, 0x7E, 0x00, //      #####       ######
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x07, 0x80, 0x1E, 0x00, //      ####          ####
    0x00, 0x00, 0x1F, 0x00, //                    #####
    0x00, 0x00, 0x1F, 0x00, //                    #####
    0x00, 0x00, 0x0F, 0x00, //                     ####
    0x00, 0x00, 0x0F, 0x00, //                     ####
    0x00, 0x00, 0x0F, 0x00, //                     ####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x80, 0x1F, 0x00, //     #####          #####
    0x07, 0x80, 0x1E, 0x00, //      ####          ####
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x07, 0xC0, 0x7C, 0x00, //      #####       #####
    0x03, 0xF1, 0xFC, 0x00, //       ######   #######
    0x01, 0xFF, 0xF8, 0x00, //        ##############
    0x00, 0xFF, 0xF0, 0x00, //         ############
    0x00, 0x3F, 0x80, 0x00, //           #######
  },
  {
    // @1024 '6' (29 pixels wide)
    0x00, 0x0F, 0xE0, 0x00, //             #######
    0x00, 0x3F, 0xFC, 0x00, //           ############
    0x00, 0xFF, 0xFC, 0x00, //         ##############
    0x01, 0xFC, 0x78, 0x00, //        #######   ####
    0x03, 0xF0, 0x00, 0x00, //       ######
    0x03, 0xC0, 0x00, 0x00, //       ####
    0x07, 0xC0, 0x00, 0x00, //      #####
    0x07, 0x80, 0x00, 0x00, //      ####
    0x07, 0x80, 0x00, 0x00, //      ####
    0x0F, 0x80, 0x00, 0x00, //     #####
    0x0F, 0x00, 0x00, 0x00, //     ####
    0x0F, 0x00, 0x00, 0x00, //     ####
    0x0F, 0x0F, 0xE0, 0x00, //     ####    #######
    0x0F, 0x3F, 0xF8, 0x00, //     ####  ###########
    0x0F, 0xF9, 0xFC, 0x00, //     #########  #######
    0x0F, 0xC0, 0x3E, 0x00, //     ######        #####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x00, 0x0F, 0x00, //     ####            ####
    0x0F, 0x00, 0x0F, 0x00, //     ####            ####
    0x0F, 0x00, 0x0F, 0x00, //     ####            ####
    0x0F, 0x00, 0x0F, 0x00, //     ####            ####
    0x0F, 0x80, 0x0F, 0x00, //     #####           ####
    0x0F, 0x80, 0x0F, 0x00, //     #####           ####
    0x07, 0x80, 0x0F, 0x00, //      ####           ####
    0x07, 0xC0, 0x1F, 0x00, //      #####         #####
    0x07, 0xC0, 0x1E, 0x00, //      #####         ####
    0x03, 0xE0, 0x3E, 0x00, //       #####       #####
    0x01, 0xF8, 0xFC, 0x00, //        ######   ######
    0x00, 0xFF, 0xF8, 0x00, //         #############
    0x00, 0x7F, 0xF0, 0x00, //          ###########
    0x00, 0x1F, 0xC0, 0x00, //            #######
  },
  {
    // @1152 '7' (29 pixels wide)
    0x1F, 0xFF, 0xFF, 0x00, //    #####################
    0x1F, 0xFF, 0xFF, 0x00, //    #####################
    0x1F, 0xFF, 0xFF, 0x00, //    #####################
    0x00, 0x00, 0x0F, 0x00, //                     ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x3E, 0x00, //                   #####
    0x00, 0x00, 0x3C, 0x00, //                   ####
    0x00, 0x00, 0x78, 0x00, //                  ####
    0x00, 0x00, 0xF0, 0x00, //                 ####
    0x00, 0x00, 0xF0, 0x00, //                 ####
    0x00, 0x01, 0xE0, 0x00, //                ####
    0x00, 0x03, 0xC0, 0x00, //               ####
    0x00, 0x03, 0xC0, 0x00, //               ####
    0x00, 0x07, 0x80, 0x00, //              ####
    0x00, 0x07, 0x80, 0x00, //              ####
    0x00, 0x0F, 0x00, 0x00, //             ####
    0x00, 0x0F, 0x00, 0x00, //             ####
    0x00, 0x0F, 0x00, 0x00, //             ####
    0x00, 0x1E, 0x00, 0x00, //            ####
    0x00, 0x1E, 0x00, 0x00, //            ####
    0x00, 0x1E, 0x00, 0x00, //            ####
    0x00, 0x3E, 0x00, 0x00, //           #####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
    0x00, 0x3C, 0x00, 0x00, //           ####
  },
  {
    // @1280 '8' (29 pixels wide)
    0x00, 0x3F, 0x80, 0x00, //           #######
    0x00, 0xFF, 0xF0, 0x00, //         ############
    0x03, 0xFF, 0xF8, 0x00, //       ###############
    0x03, 0xF1, 0xFC, 0x00, //       ######   #######
    0x07, 0xC0, 0x7C, 0x00, //      #####       #####
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x0F, 0x80, 0x3E, 0x00, //     #####         #####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x07, 0xC0, 0x3C, 0x00, //      #####        ####
    0x03, 0xE0, 0xF8, 0x00, //       #####     #####
    0x00, 0xFF, 0xF0, 0x00, //         ############
    0x00, 0x7F, 0xC0, 0x00, //          #########
    0x01, 0xFF, 0xF0, 0x00, //        #############
    0x03, 0xE0, 0x7C, 0x00, //       #####      #####
    0x07, 0x80, 0x3E, 0x00, //      ####         #####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x1F, 0x00, 0x0F, 0x00, //    #####            ####
    0x0F, 0x00, 0x1F, 0x00, //     ####           #####
    0x0F, 0x80, 0x1E, 0x00, //     #####          ####
    0x0F, 0xC0, 0x3E, 0x00, //     ######        #####
    0x07, 0xF1, 0xFC, 0x00, //      #######   #######
    0x03, 0xFF, 0xF8, 0x00, //       ###############
    0x01, 0xFF, 0xF0, 0x00, //        #############
    0x00, 0x3F, 0xC0, 0x00, //           ########
  },
  {
    // @1408 '9' (29 pixels wide)
    0x00, 0x3F, 0x00, 0x00, //           ######
    0x00, 0xFF, 0xE0, 0x00, //         ###########
    0x03, 0xFF, 0xF0, 0x00, //       ##############
    0x07, 0xF3, 0xF8, 0x00, //      #######  #######
    0x07, 0xC0, 0x7C, 0x00, //      #####       #####
    0x0F, 0x80, 0x3C, 0x00, //     #####         ####
    0x0F, 0x00, 0x3E, 0x00, //     ####          #####
    0x1F, 0x00, 0x1E, 0x00, //    #####           ####
    0x1F, 0x00, 0x1E, 0x00, //    #####           ####
    0x1E, 0x00, 0x1E, 0x00, //    ####            ####
    0x1E, 0x00, 0x1E, 0x00, //    ####            ####
    0x1E, 0x00, 0x1E, 0x00, //    ####            ####
    0x1E, 0x00, 0x1E, 0x00, //    ####            ####
    0x1F, 0x00, 0x1E, 0x00, //    #####           ####
    0x0F, 0x00, 0x1E, 0x00, //     ####           ####
    0x0F, 0x00, 0x3E, 0x00, //     ####          #####
    0x0F, 0x80, 0x3E, 0x00, //     #####         #####
    0x07, 0xC0, 0xFE, 0x00, //      #####      #######
    0x03, 0xFF, 0xFE, 0x00, //       #################
    0x01, 0xFF, 0xDE, 0x00, //        ########### ####
    0x00, 0x7F, 0x1E, 0x00, //          #######   ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x1E, 0x00, //                    ####
    0x00, 0x00, 0x3E, 0x00, //                   #####
    0x00, 0x00, 0x3E, 0x00, //                   #####
    0x00, 0x00, 0x7C, 0x00, //                  #####
    0x00, 0x00, 0xF8, 0x00, //                 #####
    0x03, 0xC3, 0xF8, 0x00, //       ####    #######
    0x07, 0xFF, 0xF0, 0x00, //      ###############
    0x07, 0xFF, 0xC0, 0x00, //      #############
    0x00, 0xFF, 0x00, 0x00, //         ########
  },
  {
    // @1536 'C' (29 pixels wide)
    0x00, 0x1F, 0xE0, 0x00, //            ########
    0x00, 0x7F, 0xFC, 0x00, //          #############
    0x01, 0xFF, 0xFE, 0x00, //        ################
    0x03, 0xF8, 0x7F, 0x00, //       #######    #######
    0x07, 0xE0, 0x1F, 0x80, //      ######        ######
    0x07, 0xC0, 0x07, 0xC0, //      #####           #####
    0x0F, 0x80, 0x07, 0xC0, //     #####            #####
    0x0F, 0x00, 0x03, 0xC0, //     ####              ####
    0x1F, 0x00, 0x03, 0xE0, //    #####              #####
    0x1E, 0x00, 0x03, 0xE0, //    ####               #####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x00, 0x00, //    ####
    0x1E, 0x00, 0x03, 0xE0, //    ####               #####
    0x1F, 0x00, 0x03, 0xE0, //    #####              #####
    0x0F, 0x00, 0x03, 0xC0, //     ####              ####
    0x0F, 0x80, 0x07, 0xC0, //     #####            #####
    0x07, 0xC0, 0x07, 0x80, //      #####           ####
    0x07, 0xE0, 0x1F, 0x80, //      ######        ######
    0x03, 0xF8, 0x7F, 0x00, //       #######    #######
    0x01, 0xFF, 0xFE, 0x00, //        ################
    0x00, 0x7F, 0xF8, 0x00, //          ############
    0x00, 0x1F, 0xE0, 0x00, //            ########
  },
  {
    // @1664 '°' (29 pixels wide)
    0x00, 0x1F, 0x00, 0x00, //            #####
    0x00, 0x3F, 0x80, 0x00, //           #######
    0x00, 0x7F, 0xC0, 0x00, //          #########
    0x00, 0xF3, 0xE0, 0x00, //         ####  #####
    0x00, 0xE0, 0xE0, 0x00, //         ###     ###
    0x00, 0xE0, 0xE0, 0x00, //         ###     ###
    0x00, 0xE0, 0xE0, 0x00, //         ###     ###
    0x00, 0xF1, 0xE0, 0x00, //         ####   ####
    0x00, 0x7F, 0xC0, 0x00, //          #########
    0x00, 0x7F, 0xC0, 0x00, //          #########
    0x00, 0x3F, 0x00, 0x00, //           ######
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
  },
  {
    // @0 '%' (29 pixels wide)
    0x0F, 0xC0, 0x00, 0x00, //     ######
    0x1F, 0xE0, 0x00, 0x00, //    ########
    0x3F, 0xF0, 0x00, 0x00, //   ##########
    0x78, 0x78, 0x04, 0x00, //  ####    ####        #
    0x70, 0x38, 0x0F, 0x00, //  ###      ###       ####
    0xF0, 0x38, 0x0E, 0x00, // ####      ###       ###
    0xF0, 0x3C, 0x1C, 0x00, // ####      ####     ###
    0xF0, 0x3C, 0x1C, 0x00, // ####      ####     ###
    0xF0, 0x3C, 0x38, 0x00, // ####      ####    ###
    0xF0, 0x38, 0x78, 0x00, // ####      ###    ####
    0x70, 0x38, 0x70, 0x00, //  ###      ###    ###
    0x78, 0x78, 0xE0, 0x00, //  ####    ####   ###
    0x3F, 0xF1, 0xE0, 0x00, //   ##########   ####
    0x1F, 0xE1, 0xC0, 0x00, //    ########    ###
    0x0F, 0x83, 0x80, 0x00, //     #####     ###
    0x00, 0x03, 0x80, 0x00, //               ###
    0x00, 0x07, 0x00, 0x00, //              ###
    0x00, 0x0F, 0x0F, 0x80, //             ####    #####
    0x00, 0x0E, 0x3F, 0xE0, //             ###   #########
    0x00, 0x1C, 0x7F, 0xF0, //            ###   ###########
    0x00, 0x3C, 0x70, 0x70, //           ####   ###     ###
    0x00, 0x38, 0xE0, 0x78, //           ###   ###      ####
    0x00, 0x70, 0xE0, 0x38, //          ###    ###       ###
    0x00, 0x70, 0xE0, 0x38, //          ###    ###       ###
    0x00, 0xE0, 0xE0, 0x38, //         ###     ###       ###
    0x01, 0xE0, 0xE0, 0x38, //        ####     ###       ###
    0x01, 0xC0, 0xE0, 0x38, //        ###      ###       ###
    0x03, 0x80, 0xF0, 0x78, //       ###       ####     ####
    0x03, 0x80, 0xF0, 0xF0, //       ###       ####    ####
    0x00, 0x00, 0x7F, 0xF0, //                  ###########
    0x00, 0x00, 0x3F, 0xE0, //                   #########
    0x00, 0x00, 0x0F, 0x80, //                     #####
  },
  {
    // @0 '%' (29 pixels wide)
    0x0F, 0xC0, 0x00, 0x00, //     ######
    0x1F, 0xE0, 0x00, 0x00, //    ########
    0x3F, 0xF0, 0x00, 0x00, //   ##########
    0x78, 0x78, 0x04, 0x00, //  ####    ####        #
    0x70, 0x38, 0x0F, 0x00, //  ###      ###       ####
    0xF0, 0x38, 0x0E, 0x00, // ####      ###       ###
    0xF0, 0x3C, 0x1C, 0x00, // ####      ####     ###
    0xF0, 0x3C, 0x1C, 0x00, // ####      ####     ###
    0xF0, 0x3C, 0x38, 0x00, // ####      ####    ###
    0xF0, 0x38, 0x78, 0x00, // ####      ###    ####
    0x70, 0x38, 0x70, 0x00, //  ###      ###    ###
    0x78, 0x78, 0xE0, 0x00, //  ####    ####   ###
    0x3F, 0xF1, 0xE0, 0x00, //   ##########   ####
    0x1F, 0xE1, 0xC0, 0x00, //    ########    ###
    0x0F, 0x83, 0x80, 0x00, //     #####     ###
    0x00, 0x03, 0x80, 0x00, //               ###
    0x00, 0x07, 0x00, 0x00, //              ###
    0x00, 0x0F, 0x0F, 0x80, //             ####    #####
    0x00, 0x0E, 0x3F, 0xE0, //             ###   #########
    0x00, 0x1C, 0x7F, 0xF0, //            ###   ###########
    0x00, 0x3C, 0x70, 0x70, //           ####   ###     ###
    0x00, 0x38, 0xE0, 0x78, //           ###   ###      ####
    0x00, 0x70, 0xE0, 0x38, //          ###    ###       ###
    0x00, 0x70, 0xE0, 0x38, //          ###    ###       ###
    0x00, 0xE0, 0xE0, 0x38, //         ###     ###       ###
    0x01, 0xE0, 0xE0, 0x38, //        ####     ###       ###
    0x01, 0xC0, 0xE0, 0x38, //        ###      ###       ###
    0x03, 0x80, 0xF0, 0x78, //       ###       ####     ####
    0x03, 0x80, 0xF0, 0xF0, //       ###       ####    ####
    0x00, 0x00, 0x7F, 0xF0, //                  ###########
    0x00, 0x00, 0x3F, 0xE0, //                   #########
    0x00, 0x00, 0x0F, 0x80, //                     #####
  },
  {
    // @128 '.' (29 pixels wide)
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x00, 0x00, 0x00, //
    0x00, 0x0F, 0x00, 0x00, //             ####
    0x00, 0x0F, 0x00, 0x00, //             ####
    0x00, 0x0F, 0x00, 0x00, //             ####
    0x00, 0x0F, 0x00, 0x00, //             ####
  }
};

wingfighter

Hallo Tomster

OK. Das habe ich natürlich nicht abgeprüft. Und ein offener ADC-Eingang misst Mist. Daher die unterschiedlich langen Dunkelphasen.
Ich habe jetzt in Zeile 56 eine Compiler-Direktive eingebaut, die bewirkt, dass die Helligkeitssteuerung nicht mit in das Programm übernommen wird, wenn kein Fotowiderstand angeschlossen ist.
Du müsstest den Kommentarstatus der Zeile entfernen, dann würde die Helligkeit geregelt werden.

Zudem habe ich Deinen Font eingebaut und die Ausgaben so angepasst, dass die Ausgabe wieder einigermaßen harmonisch aussieht. Wenn es eine Alternative bleibt, würde ich ebenfalls über eine Compiler-Direktive #VERDANA oder #ROBOT dem Anwender die Entscheidung überlassen, welchen Font er bevorzugt.

Beide Änderungen sind im angehängten Sketch berücksichtigt.

Gruß wingfighter


tomster

#72
Hab's gerade ausprobiert. Funktioniert technisch einwandfrei. Ich glaube aber, ich muss an der Schriftgröße der Robot Font und dem Gesamtdesign noch ein bissl arbeiten. Die Zahlenwerte müssen irgendwie größer werden, damit das vom Design her passt, finde ich. Vielleicht muss das doch Roboto Thin werden...
Auch muss ich noch versuchen die Einheiten (%,°C, etc.) kleiner  zu bekommen. Die nehmen sonst nur unnötig Platz für die eigentliche Anzeige des Werts weg.

Zudem stellt sich die Frage, ob man auch Piktogramme für Wetter oder Sonstiges aufnehmen sollte. Das kommt zwar letztendlich auf den verfügbaren Speicher an, aber es ist wahrscheinlich sinnvoll sich jetzt im Vorfeld Gedanken zu machen, wie es hernach aussehen soll. Der Sketch muss ja irgendwie für den User leicht verständlich sein, damit er die einzelnen Displays nach seinen Wünschen gestalten kann.

In meinem Fall soll das Display ja in erster Linie morgens einen schnellen Überblick über die Uhrzeit geben, und ob das Wetter dazu auffordert sofort das Haus zu Verlassen und Skifahren zu gehen, oder ob man sich nicht noch Mal umdreht und noch eine Stunde mutzelt. Von daher die Wetter-Piktogramme. Ich weiß, schon seeehr speziell, aber ich bin halt trotz Skifahraffinität ein fauler Stefften und steh ungern früh auf nur um dann festzustellen, dass gar kein Lift fährt weil es zuviel Wind hat ;-)

Hier Mal so ein grober Vorschlag:

tomster

Nur kurz als Update zur Hardware:
Ich muss feststellen, dass nun auch das zweite Display die ersten Vertikalstreifen zeigt. Ich weiß nicht, ob ich eine schlechte Charge erwischt habe, oder ob es sich möglicherweise um einen Konstruktionsfehler handelt. Ich habe dabei die Flachbandfolie, bzw. den darauf befestigten Treiberchip im Verdacht...

Omega-5

Zitat von: tomster am 07 April 2016, 15:12:20
Ich habe dabei die Flachbandfolie, bzw. den darauf befestigten Treiberchip im Verdacht...

Diese Folien sind sehr empfindlich. Das Problem gab es früher auch beim LEGO MINDSTORMS NXT. Besonders der Übergang Folie-Display ist nicht ohne.
Es gibt auch entsprechende Warnungen im erweiterten Datenblatt. http://www.newhavendisplay.com/specs/precautions.pdf

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),