软件部分
主控部分用的的是Arduino Uno,使用了arduino IDE 1.04,部分代码如下:
//端口定义
#include
#include
#include
#define servopin 7
#define sensor 0
#define BL 9
LCD5110 myGLCD(2,3,4,5,6);//CLk-SCK,Din-MOSI,DC,RST-IO,CS-CE
extern uint8_t SmallFont[];
RFID rfid(10,8); //D10–读卡器MOSI引脚、D5–读卡器RST引脚
//4字节卡序列号,第5字节为校验字节
unsigned char serNum[5];
//写卡数据
unsigned char writeDate[16];
String comdata = “”;
……
//舵机驱动定义
void servopulse(int angle)//定义一个脉冲函数
{
int pulsewidth=(angle*11)+500; //将角度转化为500-2480的脉宽值
digitalWrite(servopin,HIGH); //将舵机接口电平至高
delayMicroseconds(pulsewidth); //延时脉宽值的微秒数
digitalWrite(servopin,LOW); //将舵机接口电平至低
delayMicroseconds(20000-pulsewidth);
}
//工作使能
long randNumber = random(0, 20);
unsigned char i,tmp;
unsigned char status;
unsigned char str[MAX_LEN];
unsigned char RC_size;
while (Serial.available() > 0)
{
comdata += char(Serial.read());
delay(2);
}
for(int i=0;i<16;i++)
{
writeDate=comdata;
}
//找卡
rfid.isCard();
//读取卡序列号
if (rfid.readCardSerial())
{
Serial.print(“The card’s number is : “);
Serial.print(rfid.serNum[0]);
Serial.print(” , “);
Serial.print(rfid.serNum[1],BIN);
Serial.print(” , “);
Serial.print(rfid.serNum[2],BIN);
Serial.print(” , “);
Serial.print(rfid.serNum[2],BIN);
Serial.print(” , “);
Serial.print(rfid.serNum[4],BIN);
Serial.println(” “);
if(rfid.serNum[0]==205||rfid.serNum[0]==21||rfid.serNum[0]==85||rfid.serNum[0]==117){
for(int i=0;i<100;i++)
{
servopulse(45);
if(rfid.serNum[0]==205||rfid.serNum[0]==117)
{
myGLCD.clrScr();
Serial.println(“Welcome Mr.Xiao”);
myGLCD.print(“Welcome”,int(randNumber)+20,int(randNumber));
myGLCD.print(“Mr.Xiao”,int(randNumber)+20,int(randNumber)+20);
analogWrite(BL,HIGH);
}
if(rfid.serNum[0]==85)
{
myGLCD.clrScr();
Serial.println(“Welcome Mr.Yang”);
myGLCD.print(“Welcome”,int(randNumber)+20,int(randNumber));
myGLCD.print(“Mr.Yang”,int(randNumber)+20,int(randNumber)+20);
digitalWrite(BL,HIGH);
}
if(rfid.serNum[0]==21)
{
myGLCD.clrScr();
Serial.println(“Welcome Mr.Huang”);
myGLCD.print(“Welcome”,int(randNumber)+20,int(randNumber));
myGLCD.print(“Mr.Huang”,int(randNumber)+20,int(randNumber)+20);
digitalWrite(BL,HIGH);
}
} //引用脉冲函数
delay(3000);
for(int i=0;i<100;i++)
{
servopulse(0);
}
}
}
if (!rfid.readCardSerial()){
digitalWrite(servopin,LOW);
digitalWrite(BL,LOW);
}
rfid.halt(); //指挥卡进入睡眠模式
}
这里有两个库文件。(RFID.h, LCD5110_CN.h)
软件部分
主控部分用的的是Arduino Uno,使用了arduino IDE 1.04,部分代码如下:
//端口定义
#include
#include
#include
#define servopin 7
#define sensor 0
#define BL 9
LCD5110 myGLCD(2,3,4,5,6);//CLk-SCK,Din-MOSI,DC,RST-IO,CS-CE
extern uint8_t SmallFont[];
RFID rfid(10,8); //D10–读卡器MOSI引脚、D5–读卡器RST引脚
//4字节卡序列号,第5字节为校验字节
unsigned char serNum[5];
//写卡数据
unsigned char writeDate[16];
String comdata = “”;
……
//舵机驱动定义
void servopulse(int angle)//定义一个脉冲函数
{
int pulsewidth=(angle*11)+500; //将角度转化为500-2480的脉宽值
digitalWrite(servopin,HIGH); //将舵机接口电平至高
delayMicroseconds(pulsewidth); //延时脉宽值的微秒数
digitalWrite(servopin,LOW); //将舵机接口电平至低
delayMicroseconds(20000-pulsewidth);
}
//工作使能
long randNumber = random(0, 20);
unsigned char i,tmp;
unsigned char status;
unsigned char str[MAX_LEN];
unsigned char RC_size;
while (Serial.available() > 0)
{
comdata += char(Serial.read());
delay(2);
}
for(int i=0;i<16;i++)
{
writeDate=comdata;
}
//找卡
rfid.isCard();
//读取卡序列号
if (rfid.readCardSerial())
{
Serial.print(“The card’s number is : “);
Serial.print(rfid.serNum[0]);
Serial.print(” , “);
Serial.print(rfid.serNum[1],BIN);
Serial.print(” , “);
Serial.print(rfid.serNum[2],BIN);
Serial.print(” , “);
Serial.print(rfid.serNum[2],BIN);
Serial.print(” , “);
Serial.print(rfid.serNum[4],BIN);
Serial.println(” “);
if(rfid.serNum[0]==205||rfid.serNum[0]==21||rfid.serNum[0]==85||rfid.serNum[0]==117){
for(int i=0;i<100;i++)
{
servopulse(45);
if(rfid.serNum[0]==205||rfid.serNum[0]==117)
{
myGLCD.clrScr();
Serial.println(“Welcome Mr.Xiao”);
myGLCD.print(“Welcome”,int(randNumber)+20,int(randNumber));
myGLCD.print(“Mr.Xiao”,int(randNumber)+20,int(randNumber)+20);
analogWrite(BL,HIGH);
}
if(rfid.serNum[0]==85)
{
myGLCD.clrScr();
Serial.println(“Welcome Mr.Yang”);
myGLCD.print(“Welcome”,int(randNumber)+20,int(randNumber));
myGLCD.print(“Mr.Yang”,int(randNumber)+20,int(randNumber)+20);
digitalWrite(BL,HIGH);
}
if(rfid.serNum[0]==21)
{
myGLCD.clrScr();
Serial.println(“Welcome Mr.Huang”);
myGLCD.print(“Welcome”,int(randNumber)+20,int(randNumber));
myGLCD.print(“Mr.Huang”,int(randNumber)+20,int(randNumber)+20);
digitalWrite(BL,HIGH);
}
} //引用脉冲函数
delay(3000);
for(int i=0;i<100;i++)
{
servopulse(0);
}
}
}
if (!rfid.readCardSerial()){
digitalWrite(servopin,LOW);
digitalWrite(BL,LOW);
}
rfid.halt(); //指挥卡进入睡眠模式
}
这里有两个库文件。(RFID.h, LCD5110_CN.h)
举报