Hallo,
ich habe mir einen Sketch geschrieben und am Anfang ging auch das Display.
Nur habe ich irgend etwas geöscht oder falsch geändert dass nu8n mein Display immer dunkel bleibt.
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
#include "U8glib.h"
#define PIN_8 8
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); // I2C / TWI
float Batt1V = 9.00,Batt2V = 10.00,Batt3V = 11.00,Batt4V = 14.00,Batt5V = 15.00,i = 0;
float GW1 = 10.01;
float GW2 = 14.00;
String Batt1Aus ;
void page0();
const char *text = "Rene-Batteriemonitor";
void page1();
void page2();
void page3();
void page4();
const int pageCount = 5;
int p;
void (*pages[pageCount])()={page0,page1, page2, page3,page4};
int duration [pageCount] ={10000,6500,6500,6500,6500};
String Bout;
String text1 = "i.O";
String text2 = "n.iO";
void setup() {
pinMode(PIN_8, INPUT_PULLUP);
u8g2.begin();
u8g2.setPowerSave(0);
}
void loop() {
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.firstPage();
u8g2.sendBuffer();
do {
(*pages[p])();
} while( u8g2.nextPage() );
u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.sendBuffer();
delay(duration[p]);
p = p+1;
if (p == pageCount)
p=1;
// rebuild the picture after some delay
void clearOLED();
delay(1000);
}
void page0(){
u8g2.setCursor(25,24);
Batt1Aus = "Rene Gorlt";
u8g2.print(Batt1Aus);
u8g2.setCursor(0,45);
Batt1Aus = "Batteriemonitor";
u8g2.print(Batt1Aus);
u8g2.setCursor(40,63);
Batt1Aus = "V0.1";
u8g2.print(Batt1Aus);
}
void page1() {
// graphic commands to redraw the complete screen should be placed here
u8g2.setCursor(0,11);
if ((Batt1V > GW1) && (Batt1V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 1=" + String(Batt1V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,24);
if ((Batt2V > GW1) && (Batt2V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 2=" + String(Batt2V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,37);
if ((Batt3V > GW1) && (Batt3V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 3=" + String(Batt3V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,50);
if ((Batt4V > GW1) && (Batt4V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 4=" + String(Batt4V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,63);
if ((Batt5V > GW1) && (Batt5V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 5=" + String(Batt5V) + "V " + Bout;
u8g2.print( Batt1Aus);
}
void page2(){
u8g2.setCursor(0,11);
if ((Batt1V > GW1) && (Batt1V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 6=" + String(Batt1V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,24);
if ((Batt2V > GW1) && (Batt2V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 7=" + String(Batt2V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,37);
if ((Batt3V > GW1) && (Batt3V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 8=" + String(Batt3V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,50);
if ((Batt4V > GW1) && (Batt4V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 9=" + String(Batt4V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,63);
if ((Batt5V > GW1) && (Batt5V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 10=" + String(Batt5V) + "V " + Bout;
u8g2.print( Batt1Aus);
}
void page3(){
u8g2.setCursor(0,11);
if ((Batt1V > GW1) && (Batt1V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 11=" + String(Batt1V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,24);
if ((Batt2V > GW1) && (Batt2V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 12=" + String(Batt2V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,37);
if ((Batt3V > GW1) && (Batt3V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 13=" + String(Batt3V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,50);
if ((Batt4V > GW1) && (Batt4V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 14=" + String(Batt4V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,63);
if ((Batt5V > GW1) && (Batt5V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 15=" + String(Batt5V) + "V " + Bout;
u8g2.print( Batt1Aus);
}
void page4(){
u8g2.setCursor(0,11);
if ((Batt1V > GW1) && (Batt1V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 16=" + String(Batt1V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,24);
if ((Batt2V > GW1) && (Batt2V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 17=" + String(Batt2V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,37);
if ((Batt3V > GW1) && (Batt3V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 18=" + String(Batt3V) + "V " + Bout;
u8g2.print( Batt1Aus);
// int zustandTaster = digitalRead(PIN_8);
if (digitalRead(PIN_8) == LOW) {
u8g2.setCursor(0,50);
if ((Batt4V > GW1) && (Batt4V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 19=" + String(Batt4V) + "V " + Bout;
u8g2.print( Batt1Aus);
u8g2.setCursor(0,63);
if ((Batt5V > GW1) && (Batt5V < GW2)){ Bout = text1;
} else { Bout = text2; }
Batt1Aus = "Batt. 20=" + String(Batt5V) + "V " + Bout;
u8g2.print( Batt1Aus);} else {}
}```
