硬件简介
简要介绍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
标号 | 定义 | 说明 |
---|---|---|
1 | GND | GND |
2 | VCC | 3.3V-5V |
3 | EN | 电源使能端,≥1.6V或悬空使能,≤0.5V休眠 |
4 | RXD | URAT输入口,TTL电平 |
5 | TXD | URAT输出口,TTL电平 |
6 | AUX | URAT信号,接收为低,发送为高 |
7 | SET | 设置参数,低有效 |
注意引脚排列顺序。如图所示
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