Arduino使用apc220无线通信

来源:互联网 发布:csp漫画软件 编辑:程序博客网 时间:2024/06/10 08:48

这个星期刚刚开始接触 Arduino研究,网上找了一下,使用apc220开发的都是使用了一块扩展板来使用的说明,我这里比较郁闷的就是因为我不没有买那扩展板,所以只好自己想办法解决这个问题,首先我看了下apc220业务员发给我的说明书pdf,看了后原来apc220也是用RX和TX进行数据交换的,那就好办了,我们的arduino板上刚刚也是这样通信的,于是动手。。使了apc公司给的设置软件和驱动,把两个apc220的空中比特率设为19200,本机比特率也一样

未命名

这里我们一定要把两块apc板的"RF TRx rate"和"Series rate"都设为一样的,就算你想设定的比特率和我不一样,你也要两块apc220设为一样,因为它们要通信正确就必须要参数都一样。

这是 arduino的结构图:

arduino_board

以下是接线方式:

未命名11

 

以下是实物图:

未命名12

以下是全图:

未命名13

ok..硬件部份完成,接下来是写一个小程序来验证一下它们是否生效了.

void setup()
{
  Serial.begin(19200);
  pinMode(13, OUTPUT);
}

void loop()
{
  if (Serial.available() > 0)
  {
    int incoming = Serial.read();
    if ((char)incoming == 'h')
    {
      digitalWrite(13, HIGH);
      Serial.println("On");
    }
    else if ((char)incoming == 'l')
    {
      digitalWrite(13, LOW);
      Serial.println("Off");
    }
  }
}

功能是:接收到的数据如果是h则把13这个发光二极管拉到高电位,如果是l则拉到低电位。使用的通信比特率是19200,这个一定要与我们用设置工具所设定的比特率一样。

 

ok... 可以运行了。大家测试吧。我也是个初学者,有不对的地方请高手们指正!

 

补充:过了几天我再次重新测试这个无线组件,发现原来我写错了一些东西,不过这可能是apc220洗板的时候洗错引脚说明造成的。

问题解决:其实刚好arduino上的TX,RX引脚与apc220的TX,RX引脚调换。也就是说让arduino的TX接apc220的RX引脚.剩下的也照接上就可以正常工作了。