Ziel des Projekts
Auf einem 2-zeiligem oder 4-zeiligem LCD mit I²C-Schnittstelle sollen Zufallszahlen angezeigt werden.
So sieht es auf einem 4-zeiligen LCD aus:


Die Helligkeit kann mit einem Potentiometer auf der Rückseite des LCDs eingestellt werden.
Schaltpläne
Arduino UNO

schwarz GND
rot 5V
grün A4
gelb A5
Wemos D1 Mini

schwarz GND
rot 5V
grün D2
gelb D1
NodeMCU

schwarz GND
rot 5V
grün D2
gelb D1
ESP32-Wroom

schwarz GND
rot 5V
grün 21
gelb 22
XIAO-ESP32-C3

schwarz GND
rot 5V
grün D4
gelb D5
ESP32-C6

schwarz GND
rot 5V
grün 23
gelb 22
Hex-Adresse LCD
Wenn dir die Adresse des LCDs nicht bekannt ist, kannst du sie mit diesem Programm herausfinden:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include "Wire.h" void setup() { Wire.begin(); Serial.begin(9600); delay(1000); Serial.print("I2C Scanner"); } void loop() { byte Fehler, Adresse; int Geraete = 0; Serial.println("Starte Scanvorgang"); for (Adresse = 1; Adresse < 127; Adresse++ ) { // Übertragung starten Wire.beginTransmission(Adresse); // wenn die Übertragung beendet wird Fehler = Wire.endTransmission(); if (Fehler == 0) { Serial.print("I2C Gerät gefunden - Adresse: 0x"); if (Adresse < 16) Serial.print("0"); Serial.print(Adresse, HEX); Serial.println(""); Geraete++; } } if (Geraete == 0) Serial.println("Keine I2C Geräte gefunden\n"); else Serial.println("Scanvorgang abgeschlossen"); delay(10000); } |
Benötigte Bibliothek

Funktionen der Bibliothek LCDIC2
| Schlüsselwort | Aktion |
|---|---|
| begin(); | LCD starten |
| setBacklight(Status); | true = Hintergrundbeleuchtung einschalten false = Hintergrundbeleuchtung ausschalten |
| home(); | Position auf links oben setzen |
| setCursor(Spalte, Zeile); | Cursor in Spalte/Zeile platzieren |
| setCursor(Status); | true = Cursor anzeigen false = Cursor verbergen |
| clear(); | Anzeige löschen |
| print("Text"); | Text anzeigen |
| blink(); | blinkender Cursor |
Das Programm
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include "LCDIC2.h" // 4-zeiliges LCD LCDIC2 lcd(0x27, 20, 4); // 2-zeiliges LCD // LCDIC2 lcd(0x3f, 16, 2); void setup() { // Zufallsgenerator starten randomSeed(analogRead(A0)); // LCD starten lcd.begin(); // Cursor "verstecken" lcd.setCursor(false); // Ausgabe auf dem LCD // Cursor auf Position 0 in Zeile 0 setzen lcd.setCursor(0, 0); lcd.print("Zufallszahlen:"); lcd.setCursor(0, 1); for (int i = 1; i <= 6; i++) { int Zahl = random(1, 7); lcd.print(String(Zahl)); lcd.print(" "); } } void loop() { // bleibt leer, Programm läuft nur einmal } |
Letzte Aktualisierung: