ARDUINO与APC220实现无线通信的例子

硬件简介

简要介绍ARDUINO和ACP220无线串口通信模块。

ARDUINO

Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE)。在这里插入图片描述

ARDUINO可以做什么

  • Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器 对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。.
    你可以自己自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载. 硬件参考设计 (CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地 根据你自己的要求去修改他们.

本项目通过ARDUINO与APC220无线通信模块,实现无线发送与接收字符串的功能。

APC220

  • APC220模块是高度集成半双工微功率无线数据传输模块,其嵌入高速单片机和高性能射频芯片,能够透明传输任何大小的数据,而用户无需编写复杂的设置与传输程序,同时小体积宽电压运行,具有较远的传输距离,丰富便捷的软件编程设置功能。
    在这里插入图片描述

ARDUINO与APC220引脚图

  • ARDUINO
    在这里插入图片描述

  • APC220

标号定义说明
1GNDGND
2VCC3.3V-5V
3EN电源使能端,≥1.6V或悬空使能,≤0.5V休眠
4RXDURAT输入口,TTL电平
5TXDURAT输出口,TTL电平
6AUXURAT信号,接收为低,发送为高
7SET设置参数,低有效

注意引脚排列顺序。如图所示
在这里插入图片描述

ARDUINO代码

发送端
功能:定时发送字符A 和B
代码片.

//发送端
int ButtonState;
//int ButtonLastState;


void setup(){
//put your setup code here
  Serial.begin(9600);
   pinMode(LED_BUILTIN, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11,INPUT_PULLUP);
    digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
    digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
}
void loop(){
//put your main code here
// digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)

ButtonState=digitalRead(11);  //判断pin11是否有高电平输入

    if(ButtonState)
    {
        Serial.print("A");
        delay(1000);
        Serial.print("B");
        //digitalWrite(LED_BUILTIN, LOW);   // turn the LED off (HIGH is the voltage level)
        delay(1000);
     }
     else
     {
      /    
      
      }
   }
  

接收端
功能,当接收到字符A时,返回 This is A 字符串;当接收到字符B时,返回This is B字符串。
代码片.

//接收端
void setup(){
//put your setup code here
  Serial.begin(9600);
 //pinMode(13,OUTPUT);
   pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
}
void loop(){
//put your main code here
 // digitalWrite(LED_BUILTIN, HIGH);  
int val = Serial.read();
if(val!=-1){
                   if(val=='A'){
                        // digitalWrite(13,HIGH);
                         delay(1000);
                         Serial.print("this is A");
                                     } 
                  if(val=='B'){
                        // digitalWrite(13,LOW);
                         delay(1000);
                         Serial.print("this is B");
                      }
               }
}
 

接线

发送端
Arduino 的TX RX 与APC220的TX RX 交叉连接。这里我用Arduino的pin12、13端子输出高电平为APC220供电。其中pin12接SET端子(注意:这个SET端子需要接高电平,不接的话没法通信。还有,注意APC220上的端子标签,是否与图示相反。我的APC220端子就与说明书上排列顺序正好相反,接线的时候看说明书接,怎么也通不上,还是需要看看实物上的引脚排列顺序再接线),pin13接VCC。pin11我接的一个物体识别模块,当检测到指定物体时输出高电平到pin11上,发送端才开始工作,发出A B 字符。你们可以简化下程序,把这个pin11的判定条件去掉。
在这里插入图片描述
接收端
接收端与发送端类似,接线也相同,就是程序稍有不同,大家看看程序就明白了。
玩Arduino与 APC220通信我也是第一次。花了三天时间摸熟悉。白天上班没时间,天天搞到晚上1 2 点。在看到串口调试工具上终于出现字符的时候,真是开心了。哈哈哈。
大家可以交流交流,共同进步。 QQ:3386026295

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值