极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 40343|回复: 20

求助

[复制链接]
发表于 2014-10-28 14:00:50 | 显示全部楼层 |阅读模式
如何用红外遥控器“—”  ,“+”来调节LED灯的亮度!
回复

使用道具 举报

发表于 2014-10-28 14:37:01 | 显示全部楼层
你得先知道加按键的实际编码值,然后在loop里边加个if语句,来判断是否与接收到的编码一致,如果一致则让变量value加加,让后用anlongWrite函数将value从PWM端口输出(Uno的是3、6、9、10、11),这样就可以控制LED的亮度了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 14:40:39 | 显示全部楼层
业余小玩家 发表于 2014-10-28 14:37
你得先知道加按键的实际编码值,然后在loop里边加个if语句,来判断是否与接收到的编码一致,如果一致则让变 ...

有类似的参考例子吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 14:46:13 | 显示全部楼层
业余小玩家 发表于 2014-10-28 14:37
你得先知道加按键的实际编码值,然后在loop里边加个if语句,来判断是否与接收到的编码一致,如果一致则让变 ...

帮个忙!有点急!不太懂!刚刚接触!
回复 支持 反对

使用道具 举报

发表于 2014-10-28 15:06:27 | 显示全部楼层
你手中现在有什么了,能做出来什么了,都说一下。

就是你现在有什么东西,是什么型号的

硬件东西之间差别蛮大的。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 15:10:29 | 显示全部楼层
zoologist 发表于 2014-10-28 15:06
你手中现在有什么了,能做出来什么了,都说一下。

就是你现在有什么东西,是什么型号的

arduino开发板!红外遥控器和红外接收头(H50038)!LED灯!
回复 支持 反对

使用道具 举报

发表于 2014-10-28 15:12:06 | 显示全部楼层
XIAOBAI 发表于 2014-10-28 15:10
arduino开发板!红外遥控器和红外接收头(H50038)!LED灯!

LED 是多少 V 的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 15:15:21 | 显示全部楼层
zoologist 发表于 2014-10-28 15:12
LED 是多少 V 的?

发光二极管1.7v左右!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 15:20:28 | 显示全部楼层
zoologist 发表于 2014-10-28 15:06
你手中现在有什么了,能做出来什么了,都说一下。

就是你现在有什么东西,是什么型号的

能给个例子参考一下吗?
回复 支持 反对

使用道具 举报

发表于 2014-10-28 15:31:44 | 显示全部楼层
XIAOBAI 发表于 2014-10-28 15:15
发光二极管1.7v左右!

噢  就是说你手上现在有 uno 遥控模块 和一个 1.7v 二极管

那么你首先调试遥控模块,用它控制你uno上面的pin13的led

做完了这个之后,再尝试调整PWM输出

用PWM来模拟电压的变化就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 15:37:08 | 显示全部楼层
zoologist 发表于 2014-10-28 15:31
噢  就是说你手上现在有 uno 遥控模块 和一个 1.7v 二极管

那么你首先调试遥控模块,用它控制你uno上面 ...

我可以让灯亮!但不会调节灯亮度!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 15:38:39 | 显示全部楼层
zoologist 发表于 2014-10-28 15:31
噢  就是说你手上现在有 uno 遥控模块 和一个 1.7v 二极管

那么你首先调试遥控模块,用它控制你uno上面 ...

这是让灯亮的程序!怎么修改灯亮度!
#include <IRremote.h>

int RECV_PIN = 11;   //红外线接收器OUTPUT端接在pin 11
int LED1 = 10;        // 定义LED引脚为10
IRrecv irrecv(RECV_PIN);   // 定义IRrecv 对象来接收红外线信号
decode_results results;   //解码结果放在decode_results构造的对象results里
void irdisplay(unsigned long value)  //  按下按键后,显示本遥控对应的按键
{
  switch(value){         //判定按下的是哪个按键,串口显示按钮名称
  case 0xFFA25D:
    Serial.println("POWER");
    digitalWrite(LED1, LOW);    //电源键按下,执行关闭LED灯
    break;
  case 0xFFE21D:
    Serial.println("MUTE");
    digitalWrite(LED1, HIGH);        //静音键按下,执行点亮LED灯
    break;
  case 0xFFA857:
    Serial.println("-");

    break;
  case 0xFF906F:
    Serial.println("+");
    break;
      }
}

void setup()
{
  pinMode(LED1,OUTPUT);          // 定义LED为输出引脚
   Serial.begin(9600);          //开启串口通信,并设定波特率为9600
  irrecv.enableIRIn();          //启动红外解码
}
void loop() {
  if (irrecv.decode(&results))  
  {
    //解码成功,收到一组红外线信号  
    irdisplay(results.value);   
    irrecv.resume();         
  }  

}
回复 支持 反对

使用道具 举报

发表于 2014-10-28 15:53:28 | 显示全部楼层
XIAOBAI 发表于 2014-10-28 14:40
有类似的参考例子吗?

你现在做到哪一步了?
回复 支持 反对

使用道具 举报

发表于 2014-10-28 15:54:58 | 显示全部楼层
LED接到PWM脚,用它控制输出不同占空比的值。

现在手边没有,回头给你试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 15:58:45 | 显示全部楼层
zoologist 发表于 2014-10-28 15:54
LED接到PWM脚,用它控制输出不同占空比的值。

现在手边没有,回头给你试试

谢谢!非常感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 22:18 , Processed in 0.038544 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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