#define uchar unsigned char
uchar serNum[5];
char CardID[20];
char WohnZi[20]= "110-190-163-209-162";
void Setup()
{
.....
}
void loop()
{
status = MFRC522_Anticoll(str);
memcpy(serNum,str,16);
if (status == MI_OK)
{
snprintf(CardID, 20,"%d-%d-%d-%d-%d", serNum[0], serNum[1], serNum[2], serNum[3], serNum[4]);
Serial.println (CardID); // druckt 110-190-163-209-162 aus!
Serial.println (WohnZi); // druckt ebenfalls 110-190-163-209-162 aus!
if (CardID == WohnZi) //SB3 im Wohnzimmer
{
Serial.print("SB3 im Wohnzimmer"); // kommt hier nie an!!!
}
....
....
}
Es geht um die Bedingung if (CardID == WohnZi) {..}. Beide Variablen sind 20 (19+1) char lang. Die Inhalte sind auch (wenigstens beim Drucken) gleich lang. Für mich müsste die Abfrage mit Wahr beantwortet werden und bei Serial.print ("SB3 im Wohnzimmer); ankommen.
War eine gute Idee, aber leider waren beide Inhalte identisch. Ich habe mir die Einzelinhalte extra binär ausgeben lassen, um zu sehen, ob der Null-Terminator da ist. Auch der ist da.