sir im new to arduino my project is using RFID
when tag is shown in rfid it transmits tag information via xbee
on arduino serial data received via xbee
But when tag is shown on reader it produces output like this "16703301"
i cant predetermine this in aurdino program my code is
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String readString;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop() {
lcd.setCursor(0, 1);
while (Serial.available()) {
delay(10);
char c = Serial.read();
if (c == ',') {break;}
readString += c; }
if (readString.length() >0) {
Serial.println(readString);
if(readString == 16703301) // Here i can determine tag no only
{
Serial.print("hello");
lcd.print("hello");
}
else if(readString == 16705890)
{
Serial.print("HI");
lcd.print("hi");
}
else
{
Serial.print("enterno");
lcd.print("enter no");
}
readString="";
}
}
Moderator edit: CODE TAGS
so when tag is shown it cant execute if loop it displays enter no:
can anyone help to fix this
im using 125KHZ RFID Reader
sir i tried tht it works when i send data via serial monitor
but when this transmitted via xbee 16703301 it displaying serial data as 16703301 and showing enter no
RFID Reader sends 16703301 this data via xbee
if i connect receiver xbee to pc and opened RS232 analyzer in tht it displays 16703301 this data correctly.
BUT in aurdino
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String readString;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop() {
//expect a string like wer,qwe rty,123 456,hyre kjhg,
//or like hello world,who are you?,bye!,
lcd.setCursor(0, 1);
while (Serial.available()) {
delay(10); //small delay to allow input buffer to fill
char c = Serial.read(); //gets one byte from serial buffer
if (c == ',') {break;} //breaks out of capture loop to print readstring
readString += c; } //makes the string readString
if (readString.length() >0) {
Serial.println(readString); //prints string to serial port out
if(readString =="16703301<CR><LF>")
{
Serial.print("hello");
lcd.print("hello");
}
else if(readString == 16705890)
{
Serial.print("HI");
lcd.print("hi");
}
else
{
Serial.print("enterno");
lcd.print("enter no");
}
readString=""; //clears variable for new input
}
}
Moderator edit: CODE TAGS again.
and showing this no only 16703301
wht can i do pls help me sir
Is that really what is transmitted?
Or is it "16703301\r\n" ?
When posting code, please use the # icon on the editor's toolbar to give a code box - it avoids all sorts of potential code corruption and misinterpretation.
sir i write this program to check rfid output when i declared as char it displays card no as 16703310
but when i declare as string it displays the rfid output as 49545548515148491310
When posting code, please use the # icon on the editor's toolbar to give a code box - it avoids all sorts of potential code corruption and misinterpretation.
Put your code between the [ code ] [ / code ] tags which appear.
Stop calling me "sir" - I am not (yet) a Knight of the Realm.
in this when i declared as char it shows the card no as 16703301 but when i change the decleration as string it shows card no as 49545548515148491310
in the below prg i declered as string only #include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String readString;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop() {
//expect a string like wer,qwe rty,123 456,hyre kjhg,
//or like hello world,who are you?,bye!,
lcd.setCursor(0, 1);
while (Serial.available()) {
delay(10); //small delay to allow input buffer to fill
char c = Serial.read(); //gets one byte from serial buffer
if (c == ',') {break;} //breaks out of capture loop to print readstring
readString += c; } //makes the string readString
if (readString.length() >0) {
Serial.println(readString); //prints string to serial port out
if(readString =="16703301<CR><LF>")// here i changed to "49545548515148491310" but when card shown it is not executing this loop
{
Serial.print("hello");
lcd.print("hello");
}
else if(readString == 16705890)
{
Serial.print("HI");
lcd.print("hi");
}
else
{
Serial.print("enterno");
lcd.print("enter no");
}
readString=""; //clears variable for new input
}
}