Hi Experten !
Für eine Temp. Messung bilde ich mir als Anzeige 3 St. ST7920 (128x64) Displays ein. Große weit ablesbare Ziffern ist der Wunsch.
So weit ist alles ok und klappt mit einer Einschränkung.
Sobald ich an irgend einem der Displays eine Zeile/Pixel über 55 (also relativ weit unten) anspreche
werden auf den anderen Displays diese ebenfalls angezeigt - quasi gespiegelt ohne dass ich das will.
Bleibe ich bis 55 klappt alles wunderbar.
Uno oder Mega ist kein Unterschied (beim Mega wird dann mit DHT22 langsam der Speicher knapp)
Auch mit der U82g lib - also der aktuellen klappt es nicht.
An den Fonts liegt es auch nicht
Plan B:
Display nur bis Zeile 55 nutzen (dort wollte ich min und max Werte anzeigen)
Plan C:
Jedes Display bekommt seinen eigenen Nano und ein übergeordneter Uno sammelt die Messwerte ein und steuert die Hintergrundbeleuchtung der Displays
Plan D:
andere lib die aber SW SPI kann - noch keine gefunden
Mich wundert nur dass bis Zeile 55 alles passt und ab Zeile 56-63 Mist dargestellt wird.
Hat da vielleicht noch wer eine Idee ?
#include <Arduino.h>
#include "U8glib.h"
U8GLIB_ST7920_128X64_1X disp1(6, 5, 4, U8G_PIN_NONE); // Display Beet West 6=E, 5=R/W, 4=RS
U8GLIB_ST7920_128X64_1X disp2(9, 8, 7, U8G_PIN_NONE); // Display Stiege 9=E, 8=R/W, 7=RS
U8GLIB_ST7920_128X64_1X disp3(12, 11, 10, U8G_PIN_NONE); // Display Beet Ost 12=E, 11=R/W, 10=RS
void setup(void) {
} // * * * * * Ende setup
void loop(void) {
disp1.firstPage();
do {
draw();
} while ( disp1.nextPage() );
disp2.firstPage();
do {
draw();
} while ( disp2.nextPage() );
disp3.firstPage();
do {
draw();
} while ( disp3.nextPage() );
} // *** Ende Loop ***
void draw(void) {
// disp1 = Anzeige rechts
disp1.setFont(u8g_font_helvR08); //Beschriftung
disp1.drawStr( 40, 42, "Beet West"); //Beschriftung
disp1.drawFrame(20, 32, 86, 12); //Beschriftung
disp1.drawStr(77, 55, "max"); //Beschriftung
disp1.drawStr(3, 55, "min"); //Beschriftung
// disp2 = Anzeige mitte
disp2.setFont(u8g_font_helvR08);
disp2.drawStr(50, 42, "Stiege");
disp2.drawFrame(20, 32, 86, 12);
disp2.drawStr(77, 55, "max");
disp2.drawStr(3, 55, "min");
// disp3 = Anzeige links
disp3.setFont(u8g_font_helvR08);
disp3.drawStr(40, 42, "Beet Ost");
disp3.drawFrame(20, 32, 86, 12);
disp3.drawStr(77, 55, "max");
disp3.drawStr(3, 55, "min");
} // *** Ende draw ***
LG
Viktor