本帖最后由 arbot 于 2013-5-17 10:27 编辑
//参考
继电器 http://wiki.dfrobot.com.cn/index ... 8%E6%A8%A1%E5%9D%97(SKU:_DFR0017)
Arduino Nano 3.0 328 http://item.taobao.com/item.htm? ... Rh6z&id=4151143935&
Nano传感器扩展板 http://item.taobao.com/item.htm? ... PhNU&id=1953436185&
---------------------------
//硬件
Arduino Nano 3.0 328+Nano传感器扩展板 2件套含usb线
http://item.taobao.com/item.htm? ... l05Z&id=8904041799&
红外套装 含线 http://item.taobao.com/item.htm? ... nuIS&id=7864450125&
继电器 含线 http://item.taobao.com/item.htm? ... k9rxh&id=3463488037
---------------------------
//测试代码 获得红外代码
#include <IRremote.h>
const int irReceiverPin = 11; //红外接口
IRrecv irrecv(irReceiverPin);
decode_results results;
void setup()
{
pinMode(Relay, OUTPUT); //将接口5,改为输出模式
Serial.begin(9600); // 开启串口,波特率为9600,测试时使用,可以在串口监视器中接收到红外编码
irrecv.enableIRIn(); // 启动红外解码
}
void loop()
{
if (irrecv.decode(&results))// 解码成功,把数据放入results变量中
{
Serial.println(results.value, HEX);//以16进制换行输出接收代码,显示在串口监视器
irrecv.resume(); // 继续等待接收下一组信号
}
delay(600); //延时600毫秒,做一个简单的消抖
}
---------------------------
//测试代码 红外控制继电器开关LED灯 连接方式 参考继电器网页
#include <IRremote.h>
const int irReceiverPin = 11; //红外接口
const int Relay = 5; //继电器接口
IRrecv irrecv(irReceiverPin);
decode_results results;
void setup()
{
pinMode(Relay, OUTPUT); //将接口5,改为输出模式
pinMode(13, OUTPUT); //将接口13,改为输出模式,接LED灯
digitalWrite(13,HIGH); //将接口13,关闭
irrecv.enableIRIn(); // 启动红外解码
}
void loop()
{
if (irrecv.decode(&results))// 解码成功,把数据放入results变量中
{
if(results.value==0xFD08F7){ //按键1
digitalWrite(Relay,LOW);//继电器 开
delay(1000); //等待1秒
digitalWrite(Relay,HIGH);//继电器 关
}
if(results.value==0xFD8877){ //按键2
digitalWrite(Relay,LOW);//继电器 开
delay(5000); //等待5秒
digitalWrite(Relay,HIGH);//继电器 关
}
irrecv.resume(); // 继续等待接收下一组信号
}
}
---------------------------------------
//正式代码 红外控制继电器开关电脑 连接图在附件
#include <IRremote.h>
const int irReceiverPin = 11; // 红外接口
const int Relay = 5; // 继电器接口
IRrecv irrecv(irReceiverPin);
decode_results results;
void setup()
{
pinMode(Relay, OUTPUT); // 将接口5,改为输出模式
irrecv.enableIRIn(); // 启动红外解码
}
void loop()
{
if (irrecv.decode(&results)) // 解码成功,把数据放入results变量中
{
if(results.value==0xFD08F7) // 按键1 冷启动 以及 在系统中关机
{
digitalWrite(Relay,LOW); // 继电器 开
delay(1000); // 等待1秒
digitalWrite(Relay,HIGH); // 继电器 关
}
if(results.value==0xFD8877) // 按键2
{
digitalWrite(Relay,LOW); // 继电器 开
delay(5000); // 等待5秒 强制关机
digitalWrite(Relay,HIGH); // 继电器 关
}
irrecv.resume(); // 继续等待接收下一组信号
}
} |