/* OLED Magisches Auge mit dunklem Fächer wie EM85
armin - September 2024
Hardware:
Arduino nano V3 clone
1,3" OLED mit SH1106 Chip, I2C-Interface: A4 - SDA, A5 - SCK
Analogeingang an A0
Software
Arduino IDE V1.8.10
Grafiktreiber: https://github.com/olikraus/U8g2_Arduino
*/
#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // 1.3" Display Test
int wert = 0;
int wertalt = 0;
int diff = 0;
//---------------
void setup(void) {
u8g2.begin();
anzeige();
}
//---------------
void loop(void) {
wert = 5*wert + analogRead(A0)/7; // Filter
wert = wert / 6;
if(wert < 1) {
wert = 1;
}
if (wert > 100) {
wert = 100;
}
diff = abs(wert - wertalt); // nur anzeigen wenn sich etwas ändert
if (diff >1) {
wertalt = wert;
anzeige();
}
}
//---------------
void anzeige() {
u8g2.clearBuffer();
u8g2.setDrawColor(1); // hell
u8g2.drawBox(50,0, 70,63); // Hintergrund weiss
u8g2.drawDisc(50,31,31, U8G2_DRAW_ALL); // Kreisbogen unten weiss
u8g2.setDrawColor(0); // dunkel
u8g2.drawBox(0,30, 127,3); // Strich in der Mitte
u8g2.drawFilledEllipse(110, 31, 28, 14, U8G2_DRAW_ALL); // Ellipse oben
u8g2.drawBox(113,16, 16,31); // Feld oben
u8g2.drawFilledEllipse(116, 31, 28, 13, U8G2_DRAW_ALL); // 2. Ellipse oben
u8g2.drawTriangle(0,wert-70, 100,31, 0,63-wert+70); // Fächer dunkel
u8g2.sendBuffer();
}