Servus Leute,
ich bin Zu zeit an einem Projekt worin ich mit einem Barcodescanner arbeite.
Ich habe es hinbekommen mit dem Barcodescanner zu scannen und die Daten auszulesen.
Das Problem aber ist, die Daten bzw. die Werte werden nur am Seriellen Monitor ausgelesen und nicht an der Oled I2C LCD (Die LCD Funktioniert perfekt, habe beispiel Codes verwendet).
Kann mir bitte jemand helfen (: ??
Woran könnte es liegen ??
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(4); //OLED_RESET 4
#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, change Adafruit_SSD1306.h");
#endif
long interval = 10000; // Schaltet alle 10 Sekunden den Leser ein
long previousMillis = 0;
String Daten;
String alkohol = ("614229136845\r");
String wasser = ("2141204\r");
String ausweis = ("0241\r");
char Head1, Head2, Types, Lens, Adress1, Adress2, CRC1, CRC2, Dummy;
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //define I2C Adress
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(25, 0);
display.println("scannen");
display.display();
display.clearDisplay();
Serial.begin(9600);
while (!Serial)
{
;
}
Serial1.begin(9600);
while (!Serial1)
{
;
}
}
void loop() {
if (Serial1.available()) {
Head1 = Serial1.read();
Head2 = Serial1.read();
Types = Serial1.read();
Lens = Serial1.read();
Adress1 = Serial1.read();
Adress2 = Serial1.read();
Dummy = Serial1.read();
CRC1 = Serial1.read();
CRC2 = Serial1.read();
Daten = Serial1.readString();
Serial.println(Daten);
if (Daten == wasser)
{
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(25, 0);
display.println("wasser");
display.setTextSize(2);
display.display();
display.clearDisplay();
delay(2000);
}
if (Daten == alkohol)
{
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(25, 0);
display.println("Alkohol");
display.display();
display.clearDisplay();
delay(2000);
}
/*
else if ((Daten != wasser)||(Daten != alkohol))
{
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_logisoso16_tr);
u8g2.setCursor(10,30);
u8g2.print("zikkim");
u8g2.sendBuffer(); // transfer internal memory to the display
delay(2000);
}
*/
if (Serial.available()) {
Serial1.write(Serial.read());
}
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(25, 0);
display.println("barcode scannen");
display.display();
display.clearDisplay();
delay(2000);
byte message[] = {0x7E, 0x00, 0x08, 0x01, 0x00, 0x02, 0x01, 0xAB, 0xCD }; // Sende Einschalten
Serial1.write(message, sizeof(message));
}
delay(500);
}
}