在众多对Arduino进行远程控制的解决办法里,用无线电(RF)进行控制估计是最简单最经济的做法。虽然RF只能实现简单的几个按钮的控制,但想想众多遥控车的遥控器上,以及我们日常生活中开车门的钥匙上都是基于这一技术,我们决对应该好好想想将它用在互动作品上究意能产生出怎样的效果来;-)
我做的这一组RF模块由发射模块和接收模块组成,能够提供4路发射和4路接收功能,也就是说如果你用它来遥控小车的话,正好能够对应成上下左右这几个方向键。下面这个是发射模块:
与之对应的接收模块:
要实验这两个模块,只需要用数字连接线将他们与传感器扩展板连接就可以了,在我的实验里我把发射模块的第一个通道接在Arduino数字I/O端口的管脚7上,与之对应的则把接收模块的第一个通道接在Arduino数字I/O端口的管脚8上:
我想在实验中达到的目的是按下一个按钮的时候,RF发射模块发射相应的信号,接收模块在接收到这个信号后,再点亮Arduino上的LED。因此我在Arduino数字I/O端口的2号管脚上接了一个数字按钮模块,用来接收人的输入:
硬件连接好之后,再将相应的程序下载到Arduino里面:
int ledPin = 13;
int switchPin = 2;
int sendPin = 7;
int recvPin = 8;
int value = 0;
void setup() {
pinMode(switchPin, INPUT);
pinMode(recvPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(sendPin, OUTPUT);
}
void loop() {
value = digitalRead(switchPin);
if (HIGH == value) {
digitalWrite(sendPin, HIGH);
} else {
digitalWrite(sendPin, LOW);
}
value = digitalRead(recvPin);
if (HIGH == value) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
上电后测试该工程,当按钮被按下的时候,RF发射模块会发射信号,同时接收模块会收到该信号,最后点亮连接在数字I/O端口13号管脚上的LED。
有同学说这不还是有线吗?但请注意一下发射模块和接收模块之间,我们没有用到任何连接线,因此你实际上可以在两个Arduino上做这个实验,一个Arduino上接发射模块,一个Arduino上接接收模块,并且这两个Arduino之间可以相隔比较远的距离。另外,发射模块其实也可以用一个兼容的遥控器来代替,这样你就能拿一个遥控器来控制Arduino,而不是非得用两个Arduino。

No tags






ilovezeno · 2008/06/29 at 11:07 AM
这个要不自己写个协议搞个数字传输比较有前途阿…..
Randy · 2008/08/02 at 9:52 PM
I am sorry I don’t write Chinese, I wish I could read your blog too. But I know how to use an Arduino. I live in Beijing. I like all the things for sale you have on Taobao I wish to buy some of them pleas let me know if I can. Hope you can write me back. Thanks Randy
Author comment by flamingoeda · 2008/08/02 at 11:16 PM
Sure, please contact me freely if you want. I have sent a mail to you
ingiltere dil okulu · 2008/10/05 at 5:35 AM
Why this web site do not have other languages support?
sosox · 2009/02/23 at 4:56 PM
for upstairs :
because it’s to many information for Ardiuno in English…
sosox · 2009/02/23 at 6:16 PM
想问下这2个模块用的RF芯片型号 不知道有没有它们的资料呢 如果有可以发给我下吗^^ 3q~