|
//主机程序
int button_open =4;//开关按钮连在数字端口4
char flag;//向从机发送灯的亮灭标志
void setup()
{
pinMode(button_open, INPUT);
Serial.begin(9600);//设置串行通信的波特率
}
void loop()
{
//如果开灯按钮按下
if( digitalRead(button_open)==LOW)
{
flag='a';
Serial.print(flag);//向从机发送灯亮标志
}
else
{
flag='b';
Serial.print(flag);//向从机发送灯灭标志
}
delay(20);//延时,等待数据发送成功
}
//从机程序
int ledpin=9;//声明LED的数字接口编号
int val;//接受主机发来的LED灯状态标志
void setup()
{
pinMode(ledpin,OUTPUT);//设置LED灯为输出
digitalWrite(ledpin,HIGH);//初始化是LED灯熄灭
Serial.begin(9600);//设置串行通信的波特率
}
void loop()
{
if(Serial.available()>0) //查询串口有无数据
{
val=Serial.read();//读取主机发送的数据
if(val=='a')//如果主机发送字符'a',则点亮LED
{
digitalWrite(ledpin,LOW);//LED点亮
}
if(val=='b')//如果主机发送字符'b',则熄灭LED
{
digitalWrite(ledpin,HIGH);//LED熄灭
}
}
//用APC220无限数传向上位机传数据不能太快
//如果delay(40)会出问题
delay(80);
}
|
|