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:


Schaltpläne
UNO R3

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

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

schwarz GND
rot 5V
grün 21
gelb 22
NodeMCU

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

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

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

schwarz GND
rot 3,3V
gelb 9
grün 8
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
Info
|
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: