Problem mit RC522 und 20x4 lcd (i2c)


hallo liebe community,
ich bin neu hier.
ich arbeite gerade einem projekt und habe dazu ein 20x4 lcd über i2c und einen rfid chip reader (rc522) meinen arduino mega angeschlossen. ich habe beide komponenten einzeln getestet und sie funktionieren perfekt.
der code soll eigentlich nur die gelesene karten id durch das lcd ausgeben.
aber wie ihr in den angehängten bildern sehen könnt liest er die id korrekt aber fügt dieser auf dem lcd komische zeichen hinzu, sodass er auf 9 stellen kommt. ich hab jetzt schon mit mehreren variablen rumprobiert aber irgendwie hab ich überall ein ähnliche problem.

wäre super wenn ihr mir dabei helfen könntet herauszufinden, ich falsch mache  :)

lg
tobi

mein code:
#include <spi.h>
#include <mfrc522.h>
#include <wire.h>
#include <liquidcrystal_i2c.h>
#define ss_pin 53
#define rst_pin 5
mfrc522 mfrc522(ss_pin, rst_pin);
liquidcrystal_i2c lcd(0x27, 16, 4);

void setup()
{
serial.begin(9600);
spi.begin();
mfrc522.pcd_init();
lcd.begin();
wire.begin();


}

void loop()
{



if ( ! mfrc522.picc_isnewcardpresent())
{
return;
}

if ( ! mfrc522.picc_readcardserial())
{
return;
}

long code=0; // als neue variable fügen wir „code" hinzu, unter welcher später die uid als zusammenhängende zahl ausgegeben wird. statt int benutzen wir jetzt den zahlenbereich „long", weil sich dann eine größere zahl speichern lässt.

for (byte = 0; < mfrc522.uid.size; i++)
{
code=((code+mfrc522.uid.uidbyte)*10); // nun werden wie auch vorher die vier blöcke ausgelesen und in jedem durchlauf wird der code mit dem faktor 10 „gestreckt". (eigentlich müsste man hier den wert 1000 verwenden, jedoch würde die zahl dann zu groß werden.
}

serial.print("die kartennummer lautet:"); // zum schluss wird der zahlencode (man kann ihn nicht mehr als uid bezeichnen) ausgegeben.
serial.println(code);
lcd.setcursor(0,0);
lcd.print("die kartennummer ");
lcd.setcursor(0,1);
lcd.print("lautet:");// zum schluss wird der zahlencode (man kann ihn nicht mehr als uid bezeichnen) ausgegeben.
lcd.setcursor(0,2);
lcd.println(code);
}

auf lcd kein println(), sondern nur print() verwenden.

gruß tommy


Arduino Forum > International > Deutsch (Moderator: uwefed) > Problem mit RC522 und 20x4 lcd (i2c)


arduino

Comments

Popular posts from this blog

Error compiling for board Arduino/Genuino Uno.

Installation database is corrupt

esp8266 (nodemcu 0.9) client.write très lent ???