Arduino 通过红外遥控器控制LED – 趣讨教 |
您所在的位置:网站首页 › 用遥控器控制的灯 › Arduino 通过红外遥控器控制LED – 趣讨教 |
释放双眼,带上耳机,听听看~!
在此项目中,您将使用红外(IR)接收器和Arduino通过遥控器控制3个LED。这对于重新使用旧的遥控器或在功能上给遥控器的某些按钮很有用。 该项目分为两个部分: 您将解码遥控器发送的红外信号 您将使用该信息通过Arduino执行任务(控制3个LED)目录 所需零件要遵循此项目,您需要以下部分: Arduino UNO 1x面包板 1个遥控器(某宝上面买的两块钱的即可) 1个红外接收器(我将使用TSOP4838) 3个LED 3个220欧姆电阻 杜邦线 红外线(IR)接收器介绍红外接收器是下图所示的组件。这是TSOP4838。 红外接收器引脚: 第一针:Vout 第二针:GND 第三针:Vcc当您按遥控器时,它将发送红外调制信号。这些信号包含您的接收器收集的信息。 每个按钮发送特定的信息。因此,我们可以将该信息分配给特定的按钮。 解码红外信号在项目的此部分中,您需要解码与每个按钮关联的IR信号。 原理图相应地将IR接收器连接到以下示意图。 代码要控制IR接收器,您需要 在Arduino IDE中安装IRremote库。 安装IRremote库 看文章最后面下载红外库。您的下载中应该有一个.zip文件夹 解压缩.zip文件夹,您应该得到 IRremote-master 文件夹 重命名您的文件夹 IRremote-master 到 IRremote 将 IRremote 文件夹移至Arduino IDE安装库文件夹 最后,重新打开您的Arduino IDE将以下代码复制到Arduino IDE,然后将其上传到Arduino开发板。确保选择了正确的板卡和COM端口。 /* * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv * An IR detector/demodulator must be connected to the input RECV_PIN. * Version 0.1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */#include int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value } delay(100); } 以9600的波特率打开串行监视器。 在此项目中,您要控制3个LED。选择6个按钮执行以下任务: LED1 –亮 LED1 –熄灭 LED2 –亮 LED2 –熄灭 LED3 –亮 LED3 –熄灭例如,按遥控器上的数字1。您应该在串行监视器上看到一个代码。多次按相同的按钮,以确保该按钮具有正确的代码。如果您看到诸如FFFFFFFF之类的东西忽略它,那就是错误的信号。 对其他按钮执行相同的操作。 写下与每个按钮关联的代码,因为稍后您将需要该信息。 建立最终电路在这一部分中,您将用三个LED构建电路,这三个LED将使用遥控器进行控制。 原理图请按照以下示意图组装所有零件。 代码现在,获取您在上一步中捕获的代码。您需要将代码从十六进制转换为十进制。 为此,您可以使用以下网站: www.binaryhexconverter.com/hex-to-decimal-converter 这是我的其中一个代码的转换示例: 对所有十六进制值重复该过程,然后保存 十进制 值。这些是您需要在下面的代码中替换的代码。 将以下程序下载或复制到Arduino IDE。 在案例行提供的程序中编写您自己的十进制值 ,并将其上载到Arduino板。确保选择了正确的板卡和COM端口。 程序: 示范最后,您可以使用遥控器上的按钮分别控制每个LED。 红外库IRremote下载: 点击下载红外库 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |