购得两块arduino板子,想试试其通讯能力,于是写下如是程序,居然没有打麻烦,奇怪!
接线:两个板子各用电池供电,将两块板子的 D1、D0交叉联接。
char ss;
int i=10;
void setup()
{
Serial.begin(9600); //设置串口速度
pinMode(13,OUTPUT);//一般13口上都有一个已经接好的LED,所以用这个口子,少接些元件
}
void loop()
{
if(i>0)//启动时的开关信号,这样可以避免主程序陷入死循环
{Serial.print('a');//先向从机发一个‘a’,
i=0;}
ss=Serial.read();//再读串口,接受从机的字符‘b’
if(ss=='b')
{
digitalWrite(13, HIGH);
delay(300);
digitalWrite(13, LOW);
delay(300);//让13脚的LED闪烁
ss=0;
i=10;//让i重新赋值
}
}
// 从机 :
//收到主机发来的a.LED闪烁,向主机发一个b
char ss;
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop()
{
ss=Serial.read();
if(ss=='a')
{
digitalWrite(13, HIGH);
ss=0;
delay(300);
digitalWrite(13, LOW);
delay(300);
}
Serial.print('b');//收到‘a'后向主机发一个’b'
}
|