Arduino 红外启动关闭电脑-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 16370|回复: 11

Arduino 红外启动关闭电脑

[复制链接]
发表于 2013-5-17 10:25 | 显示全部楼层 |阅读模式
本帖最后由 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();            // 继续等待接收下一组信号
}
}
未标题-1.gif
发表于 2013-5-17 14:07 | 显示全部楼层
你有广告嫌疑啊 当心被奈何打死

点评

不要老黑我好不好,我从来没删过DF的广告  详情 回复 发表于 2013-5-25 10:32
 楼主| 发表于 2013-5-25 09:36 | 显示全部楼层
Kiwi 发表于 2013-5-17 14:07
你有广告嫌疑啊 当心被奈何打死

莫名,最多不再发到这个论坛,你能自己生产硬件,不都是买的吗?你知道要找硬件,写软件的痛苦吗?开源的都有自己的品牌,你要觉的是广告就不要看,发表些意见,建议还差不多.
发表于 2013-5-25 10:05 | 显示全部楼层
建议楼主排下版,增加文字说明,可以给你加个精
发表于 2013-5-25 10:32 | 显示全部楼层
Kiwi 发表于 2013-5-17 14:07
你有广告嫌疑啊 当心被奈何打死

不要老黑我好不好,我从来没删过DF的广告
发表于 2013-5-25 10:34 | 显示全部楼层
另外,楼主可以使用32u4模拟usbkeyboard关闭电脑,不要使用继电器暴力操作,电脑可是自己的啊
发表于 2013-5-30 11:54 | 显示全部楼层
arbot 发表于 2013-5-25 09:36
莫名,最多不再发到这个论坛,你能自己生产硬件,不都是买的吗?你知道要找硬件,写软件的痛苦吗?开源的都有 ...

对不起楼主 我错了,开个玩笑,别当真,呵呵
发表于 2013-10-14 22:44 | 显示全部楼层
学习你的代码,很不错的案例!
发表于 2015-12-6 22:47 | 显示全部楼层
楼主想问一下,主板开机接口这一块是怎么接线呢?接在电脑的哪个地方?
发表于 2015-12-21 09:57 | 显示全部楼层
想法挺不错的,不过关个电脑有必要吗,而且强制关机对自己的电脑不好吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 05:27 , Processed in 0.118779 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表