//Eingang für Strommessung an Pin A1 int strom; //Ausgang für Lüfter an D3 int lufterpwm; //Widerstand Shunt in mOhm int shunt = 1; //maximaler Strom in mA int Imax = 66000; int spannung_shunt_max = Imax*shunt; int spannung_shunt; int lufterdisplay; #include #include U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); void u8g2_prepare() { u8g2.setFont(u8g2_font_t0_11_tf); u8g2.setFontRefHeightExtendedText(); u8g2.setDrawColor(1); u8g2.setFontPosTop(); u8g2.setFontDirection(0); } void setup(void) { pinMode(3, OUTPUT); u8g2.begin(); Serial.begin(9600); u8g2_prepare(); } void loop(void) { //MESSUNGEN spannung_shunt = analogRead(A1); strom = map(spannung_shunt, 0, 1023, 0, Imax); //strom berechnet! lufterpwm = map(spannung_shunt, 0, spannung_shunt_max, 0, 255); lufterdisplay = map(spannung_shunt, 0, spannung_shunt_max, 0, 100); //lufterpwm berechnet! //AUSGABEN analogWrite(3, lufterpwm); u8g2_prepare(); u8g2.clearBuffer(); //Lüftergeschwindigkeit in Prozent u8g2.drawStr(1, 1, "Luefter: "); u8g2.drawStr(70, 1, lufterpwm); u8g2.drawUTF8(100, 1, "%"); //Ausgangsstrom in Ampere u8g2.drawStr(1, 15, "Strom: "); u8g2.drawStr(70, 15, strom); Serial.println(strom); u8g2.drawStr(100, 15, "A"); u8g2.sendBuffer(); delay(500); }