購(gòu)得兩塊arduino板子,想試試其通訊能力,于是寫下如是程序,居然沒(méi)有打麻煩,奇怪!
接線:兩個(gè)板子各用電池供電,將兩塊板子的 D1、D0交叉聯(lián)接。
char ss;
int i=10;
void setup()
{
Serial.begin(9600); //設(shè)置串口速度
pinMode(13,OUTPUT);//一般13口上都有一個(gè)已經(jīng)接好的LED,所以用這個(gè)口子,少接些元件
}
void loop()
{
if(i>0)//啟動(dòng)時(shí)的開關(guān)信號(hào),這樣可以避免主程序陷入死循環(huán)
{Serial.print('a');//先向從機(jī)發(fā)一個(gè)‘a(chǎn)’,
i=0;}
ss=Serial.read();//再讀串口,接受從機(jī)的字符‘b’
if(ss=='b')
{
digitalWrite(13, HIGH);
delay(300);
digitalWrite(13, LOW);
delay(300);//讓13腳的LED閃爍
ss=0;
i=10;//讓i重新賦值
}
}
// 從機(jī) :
//收到主機(jī)發(fā)來(lái)的a.LED閃爍,向主機(jī)發(fā)一個(gè)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(chǎn)'后向主機(jī)發(fā)一個(gè)’b'
}
|