pcDuino与Arduino通过xbee模块实现双灯互控

我们两清 提交于 2020-03-02 19:37:52

xbee模块主要功能是实现无线数据通信,利用xbee模块分别与pcDuinoArduino连接,通过串口读写数据,可以轻松实现二者之间的数据传输。在pcDuino端按下开关按钮控制arduino端的LED灯亮,反之arduino端的开关则控制pcDuino端的LED灯。

Xbee模块

图片1

LED灯控制部分

图片2

原理图

图片3

线路连接:

1、通过T-board 连接pcDuinoxbee模块,T-board上的电平开关必须打到5V

图片4

图片5

2、Arduino部分

图片6

注意:xbee的波特率设置为9600

线路连好之后,编译运行程序代码。运行成功后,按下pcDuino这端的LED灯开关,红色LED灯亮

图片7

按下arduino这端的LED灯开关,绿灯亮

图片8

两个开关同时按下时

图片9

程序代码:

Code for pcDuino

#include <core.h>

#include "Serial.h"

#define led_pin  9

#define button_pin 10

unsigned char flag;

void setup()

 { 

 //Initialize serial and wait for port to open:

pinMode(led_pin,OUTPUT);

        pinMode(button_pin,INPUT);

   int rate = 9600;

   Serial.begin(rate); 

   while (!Serial) 

  {

     ; // wait for serial port to connect. Needed for Leonardo only

   } 

} 

void loop()

 { 

  if (Serial.available() > 0) 

{

                char receive = Serial.read();

                if(receive=='a')         flag++;

     if( (flag%2) )    digitalWrite(led_pin,HIGH);  //LED off

                else                       digitalWrite(led_pin,LOW);   //LED on 

   }

        if(digitalRead(button_pin)==LOW)

        {

delay(10);

if(digitalRead(button_pin)==LOW)

Serial.print('b');

                delay(200);

}

}

 

Code for arduino

#include <SoftwareSerial.h>

#define RxD 11

#define TxD 12

#define led_pin 9

#define button_pin 10

unsigned char flag;

SoftwareSerial mySerial(RxD,TxD);

void setup()

{

    pinMode(RxD, INPUT);

    pinMode(TxD, OUTPUT);

    pinMode(led_pin,OUTPUT);

    pinMode(button_pin,INPUT);

    mySerial.begin(9600);               // the Bee baud rate  

}

void loop()

{

    if(digitalRead(button_pin)==LOW)

    {

      delay(10);

      if(digitalRead(button_pin)==LOW)

      mySerial.print('a');

      delay(200);

    }

     if(mySerial.available())

    {

       char RX = mySerial.read();

       if(RX=='b') flag++;

       if(flag%2) digitalWrite(led_pin,HIGH);

       else       digitalWrite(led_pin,LOW);

    }  

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!