User manual
83 84
10.5 Das OLED Display mit A/D-Umsetzer als Voltmeter
Früher hatten wir ja schon die 7-Segment-Anzeigen zur Anzeige verwendet, nun kann man das Display auch
komfortabler gestalten. Hier wird der Wert in mV ausgegeben.
Dazu wird zunächst der A/D-Umsetzer A0 verwendet und dann der Wert vom Bereich 0..1023 auf 0..5V umge-
rechnet. Dazu wird die Formel verwendet:
double mverg = (double)poti * 5000.0 / 1023.0;
Der Wert 5000.0 kann auch angepasst werden, wenn man eine genauere Ausgabe sehen möchte. Dazu muss
man eine denierte Spannungsquelle verwenden oder ein genaues Voltmeter und die tatsächliche Spannung
berechnen. Den Korrekturwert multipliziert man dann mit 5000.0 und setzt den korrigierten Wert in die Formel
ein.
+
-
9V
1A
SCLS DA
+9V
A0
A1
Tx
Rx
PD2
SCLKMOSI
PD3
PD 6
PD 4
PD 5
PD 7
A7
A3
A2
A6
NANO
to
Br ick`R`
3,3V 5V
USB
B0
SS
MISC
B1
I²C
I²C OLED 64x48
SCL
SDA
SCL
SDA
+9V
Adr:8x,Xx
+9V
1N41481N4148
// DE_29 OLED Beispiele - AD Voltmeter
#include <Wire.h>
#include <avr/pgmspace.h>
// Hier ggf Adresse anpassen 78 oder 7A je nach Schalter
#dene i2coledssd (0x7A>>1) // default ist 7A
// -------------------------OLED ----------------------------------------------
...
// -------------------------END OLED ----------------------------------------------
void setup() {
Wire.begin(); // I2C Initialisierung
i2c_oled_initall(i2coledssd); // OLED Initialisierun
}
void loop() { // Schleife
// 64x48 Pixel OLED
int poti = analogRead(A0); // Einlesen A/D-Umsetzer
char buffer[40]; // Buffer zur Umrechnung in ASCII
disp_buffer_clear(COLOR_BLACK); // Virtuellen Buffer loeschen
double mverg = (double)poti * 5000.0 / 1023.0; // ggf Korrekturfaktor.
int mvint = (int) mverg; // Umrechnen in Integer zur Anzaige
sprintf(buffer,“%4d mV“,mvint); // Ausgabe in mV als ASCII
disp_print_xy_lcd(10, 20, (unsigned char *)buffer, COLOR_WHITE, 0);
disp_lcd_frombuffer(); // dann ausgeben
delay(10); // Damit das Update nicht zu schnell wird.
}
Was passiert? Der gemessene Spannungswert wird auf dem Bildschirm in mV ausgegeben. Wenn
man an dem Poti dreht, kann man einen Bereich von ca. 0 mV bis maximal 5000mV überdecken.
Dabei wird dann die Hälfte der Betriebsspanung als Maximalwert angezeigt, also normalerweise ca.
4500 mV.










