سلام بنده یه اردوینو مدل uno دارم که میخوام باهاش ماژول RF01D که مازول RFID هست رو راه بندازم از یه سایت برنامش رو گیر آوردم اما برنامه مشکلی که داره اینه که بعد از اینکه 5 تا کارت رو بهش زدیم مدارات عمل میکنه اما کارت ششم دیگه روی ال سیدی چیزی نمایش داده نمی شه و باید یه بار میکرو ریست شه تا دوبراه به روال عادی برگرده کدش اینه :
[code=cpp]#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12, 13);
int x;
int number[4];
int array[10];
int card1[] = {'0', '0', '0', '2', '3', '8', '7', '6', '9', '6'};
int card2[] = {'0', '0', '0', '2', '3', '8', '7', '6', '7', '5'};
int card3[] = {'0', '0', '0', '2', '3', '8', '7', '6', '8', '6'};
int card4[] = {'0', '0', '0', '2', '9', '6', '2', '4', '2', '2'};
void setup(){
Serial.begin(9600);
pinMode(5,OUTPUT);
lcd.begin(16, 2);
}
void loop(){
if (Serial.available() == 10){
for (int i = 0; i <= 9; i++){
array[i] = Serial.read();//read
if (card1[i] == array[i])number[0]++;
if (card2[i] == array[i])number[1]++;
if (card3[i] == array[i])number[2]++;
if (card4[i] == array[i])number[3]++;
}
if (number[0] == 10){
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;
delay(100);
lcd.clear();
}
else if (number[1] == 10) {
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;
delay(100);
lcd.clear();
}
else if (number[2] == 10) {
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;
delay(100);
lcd.clear();
}
else if (number[3] == 10) {
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;
delay(100);
lcd.clear();
}
number[0] = number[1] = number[2] = number[3] = 0;
Serial.end();
delay(500);
Serial.begin(9600);
}
}[/code]
اگر کسی مشکل رو میدونه همین جا جواب بده خیلی ممنونم
[code=cpp]#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12, 13);
int x;
int number[4];
int array[10];
int card1[] = {'0', '0', '0', '2', '3', '8', '7', '6', '9', '6'};
int card2[] = {'0', '0', '0', '2', '3', '8', '7', '6', '7', '5'};
int card3[] = {'0', '0', '0', '2', '3', '8', '7', '6', '8', '6'};
int card4[] = {'0', '0', '0', '2', '9', '6', '2', '4', '2', '2'};
void setup(){
Serial.begin(9600);
pinMode(5,OUTPUT);
lcd.begin(16, 2);
}
void loop(){
if (Serial.available() == 10){
for (int i = 0; i <= 9; i++){
array[i] = Serial.read();//read
if (card1[i] == array[i])number[0]++;
if (card2[i] == array[i])number[1]++;
if (card3[i] == array[i])number[2]++;
if (card4[i] == array[i])number[3]++;
}
if (number[0] == 10){
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;delay(100);
lcd.clear();
}
else if (number[1] == 10) {
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;delay(100);
lcd.clear();
}
else if (number[2] == 10) {
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;delay(100);
lcd.clear();
}
else if (number[3] == 10) {
digitalWrite(5,1);
delay(50);
digitalWrite(5,0);
lcd.setCursor(0, 0);
lcd.print("welecome"
;delay(100);
lcd.clear();
}
number[0] = number[1] = number[2] = number[3] = 0;
Serial.end();
delay(500);
Serial.begin(9600);
}
}[/code]
اگر کسی مشکل رو میدونه همین جا جواب بده خیلی ممنونم





دیدگاه