Einleitung
Ich war schon immer ein Freund von Displays und somit soll das Wiedicar auch eines bekommen. Auf diesem Display sollen dann Statusmeldungen und ähnliches angezeigt werden.
Zu erst werden wir zwei eigene Icons für die Bluetooth-Verbindung erstellen und diese dann auf dem Display anzeigen.
Ich zeige an einem Beispiel wie ein IIC Display an den Arduino angeschlossen und angesteuert wird. Am Ende des Beitrages zeige ich euch dann den Quellcode für das Wiedicar, integriert in den Quellcode vom ersten Teil.
Teileliste
Erklärung
Das Display benötigt eine 5V Versorgungsspannung, somit schließen wir VCC an den 5V Port des Arduino an. Der GND Pin wird am GND des Arduino angeschlossen.
Für die IIC Kommunikation benötigen wir den Pin A4 für SDA und Pin A5 für SCL.
Wir brauchen für den Sketch zwei Bibliotheken, die Wire Bibliothek und die LiquidCrystal I2C Bibliothek.
Schaltplan

Quellcode
/*
* Ein LC-Display über IIC mit dem Arduino ansteuern
*
* Display -> Arduino
* VCC -> 5V
* GND -> GND
* SDA -> A4
* SCL -> A5
*
* Author: Wiedi - https://robinw.de
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// eigene Zeichen
byte bluetooth_on[8] = {B00000,B00100,B00110,B10101,B01110,B10101,B00110,B00100};
byte bluetooth_off[8] = {B11111,B11011,B11001,B01010,B10001,B01010,B11001,B11011};
void setup() {
// Display inititalisieren
lcd.init();
// Hintergrundbeleuchtung einschalten
lcd.backlight();
// eigene Zeichen im Speicher des Displays erstellen
lcd.createChar(0, bluetooth_on);
lcd.createChar(1, bluetooth_off);
}
void loop() {
// den Cursor auf das letzte Zeichen der ersten Zeile setzen
lcd.setCursor(15, 0);
// schreibe das eigene Zeichen bluetooth_on
lcd.write(byte(0));
// warte eine Sekunde
delay(1000);
// den Cursor auf das letzte Zeichen der ersten Zeile setzen
lcd.setCursor(15, 0);
// schreibe das eigene Zeichen bluetooth_off
lcd.write(byte(1));
// warte eine Sekunde
delay(1000);
}
Quellcode des Wiedicar
/*
* Bluetoothverbindung mit dem Arduino und einem HC-05 Modul
*
* HC-05 -> Arduino
* RX -> TX
* TX -> RX
* VCC -> 3.3V
* GND -> GND
* STATE -> 2
*
* LC-Display
*
* Display -> Arduino
* VCC -> 5V
* GND -> GND
* SDA -> A4
* SCL -> A5
*
*
* Author: Wiedi - https://robinw.de
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// eigene Zeichen
byte bluetooth_on[8] = {B00000,B00100,B00110,B10101,B01110,B10101,B00110,B00100};
byte bluetooth_off[8] = {B11111,B11011,B11001,B01010,B10001,B01010,B11001,B11011};
// Variablen
const int btState = 2;
char btMessage;
bool lastState = false;
void setup() {
Serial.begin(9600);
// Display inititalisieren
lcd.init();
// Hintergrundbeleuchtung einschalten
lcd.backlight();
// eigene Zeichen im Speicher des Displays erstellen
lcd.createChar(0, bluetooth_on);
lcd.createChar(1, bluetooth_off);
// schreibe das eigene Zeichen bluetooth_off
lcd.write(byte(1));
pinMode(btState, INPUT);
}
void loop() {
// Prüfen ob ein Bluetoothgerät verbunden ist
lcd.setCursor(15, 0);
if (digitalRead(btState) != lastState) {
lastState = digitalRead(btState);
if (lastState) {
// schreibe das eigene Zeichen bluetooth_on
lcd.write(byte(0));
} else {
// schreibe das eigene Zeichen bluetooth_off
lcd.write(byte(1));
}
}
// Wenn etwas über Bluetooth gesendet wird
if (Serial.available() > 0) {
// Nachricht lesen
btMessage = Serial.read();
// Nachricht ausgeben
Serial.print("Nachricht: ");
Serial.println(btMessage);
}
}
1 Gedanke zu „Wiedicar (Teil 2) – Ein Display über den IIC Bus“
Kommentare sind geschlossen.