arduino 红外遥控器控制LED灯
/*
日期:2016.9.1
功能:红外遥控器控制LED灯 开,关,闪烁,呼吸
元件:
跳线公公头 * 5
led 220欧电阻
红外接收管,红外遥控
接线:
红外灯面向自己从左到右分别接 IO3 ,GND ,5V
LED 负极接GND 正极串联电阻接 IO5
红外遥控器键盘1-9编码:
FF30CF 1
FF18E7 2
FF7A85 3
FF10EF 4
FF38C7 5
FF5AA5 6
FF42BD 7
FF4AB5 8
FF52AD 9
参考:http://www.arduino.cn/thread-3259-1-1.html
*/ #include <IRremote.h> int ledPin = ;
int recvPin = ;//定义红外接收器的引脚为3
IRrecv irrecv(recvPin);
decode_results results; long KEY_CODE_ONE = 0xFF30CF;
long KEY_CODE_TWO = 0xFF18E7;
long KEY_CODE_THREE = 0xFF7A85;
long KEY_CODE_FOUR = 0xFF10EF;
long KEY_CODE_LONG_PRESS = 0xFFFFFFFF;
long longPressKey = -; //长按下的那个键 void setup() {
pinMode(ledPin, OUTPUT);
irrecv.enableIRIn(); // 初始化红外接收器
Serial.begin();
} void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);//以16进制换行输出接收代码
Serial.println();//为了便于观看输出结果增加一个空行
irrecv.resume(); // 接收下一个值
} //按下1键的事件
if (results.value == KEY_CODE_ONE ) {
ledOn(ledPin);
longPressKey = KEY_CODE_ONE;
}
//长按1键的事件
if ( results.value == KEY_CODE_LONG_PRESS && longPressKey == KEY_CODE_ONE) {
ledOn(ledPin);
} //按下2键的事件
if (results.value == KEY_CODE_TWO ) {
ledOff(ledPin);
longPressKey = KEY_CODE_TWO;
}
//长按 2键的事件
if ( results.value == KEY_CODE_LONG_PRESS && longPressKey == KEY_CODE_TWO) {
ledOff(ledPin);
}
//按下 3 键的事件
if (results.value == KEY_CODE_THREE ) {
flash(ledPin, , );
longPressKey = KEY_CODE_THREE;
}
//长按 3 键的事件
if ( results.value == KEY_CODE_LONG_PRESS && longPressKey == KEY_CODE_THREE) {
flash(ledPin, , );
}
//按下 4 键的事件
if (results.value == KEY_CODE_FOUR ) {
fadeOn(, );
fadeOff(, );
longPressKey = KEY_CODE_FOUR;
}
//长按 4 键的事件
if ( results.value == KEY_CODE_LONG_PRESS && longPressKey == KEY_CODE_FOUR) {
fadeOn(, );
fadeOff(, );
}
} // led亮灯
void ledOn(int ledPin) {
digitalWrite(ledPin, HIGH);
}
// led熄灯
void ledOff(int ledPin) {
digitalWrite(ledPin, LOW);
}
//led闪烁
void flash(int ledPin, long highDuration, long lowDuration) {
digitalWrite(ledPin, HIGH);
delay(highDuration);
digitalWrite(ledPin, LOW);
delay(lowDuration);
}
//呼吸灯On
void fadeOn(unsigned int time, int increament) {
for (byte value = ; value < ; value += increament) {
Serial.println(value);
analogWrite(ledPin, value);
delay(time / ( / ));
}
}
//呼吸灯Off
void fadeOff(unsigned int time, int decreament) {
for (byte value = ; value > ; value -= decreament) {
Serial.println(value);
analogWrite(ledPin, value);
delay(time / ( / ));
}
}
arduino 红外遥控器控制LED灯的更多相关文章
- arduino入门学习实现语音控制LED灯
需要的准备的硬件arduino+PC+麦克风实现语音命令控制LED灯的亮灭. 首先需要将写好的arduino程序烧录到arduino uno主板中,下面是代码如下: int val;//定义变量val ...
- C#与Arduino通过串口通信来控制LED灯的状态
一.引言 最近摆弄了一段时间的Arduino,发现Arduino做一些电子类项目.监控.机器人.电子玩具比较容易,并且Arduino与.NET程序集成也不难.接下来介绍一个简单的小程序,C#做的一个W ...
- Arduino控制LED灯(开关控制)
问题:当使用"digitalRead(BUT) == 1"控制LED灯时会出现"digitalWrite(LED, ledState);"的值出现跳动. 原因: ...
- enc28J60 网页控制LED灯
软件IDE:Arduino 1.6.3 1.库的安装: 从https://github.com/jcw/ethercard 下载源码包,解压,复制ethercard-master文件夹到Arduino ...
- 嵌入式Linux学习入门:控制LED灯
记录自己linux学习过程,让自己能够一直坚持下去 1.原理图分析: nLED_1, nLED_2, nLED_4, 给低电平则对应LED灯亮,高电平则对应LED灯灭, S3C2440芯片GPF4-G ...
- BLE 安卓APP控制LED灯的实现(转)
源:BLE 安卓APP控制LED灯的实现 //注:参考AmoMcu源代码修改. 打开APP,检查蓝牙是否打开 BluetoothAdapter mBluetoothAdapter; final Blu ...
- 云中树莓派(4):利用声音传感器控制Led灯
云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感 ...
- 树莓派开机运行Python脚本 控制LED灯闪烁
一.新建一个开机运行文件 在 /home/pi/.config 下创建一个文件夹,名称为 autostart,并在该文件夹下创建一个led.desktop文件(文件名以.desktop结尾) 编辑le ...
- 点亮Arduino内置的LED灯
更新记录 2022年4月16日:本文迁移自Panda666原博客,原发布时间:2021年9月3日. 15块软妹币的板子镇楼. 上一篇配置好了开发环境,然后就开始搞第一个小灯的实验了. 原理相当的简单, ...
随机推荐
- php 或js 常用的正则表达式
1. 平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:2. "^\d+$" //非负整数(正整数 + 0)3. "^[0-9 ...
- RabbitMQ学习总结 第二篇:快速入门HelloWorld
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- 堡垒机 paramiko代码
#!/usr/bin/env python # Copyright (C) - Robey Pointer <robeypointer@gmail.com> # # This file i ...
- javaScript常用工具库
对应于百度前端技术学院2015年春季的课程2相关内容 https://github.com/baidu-ife/ife/tree/master/2015_spring/task/task0002 ht ...
- CL.exe的 /D 选项, Preprocessor Macro预处理器宏定义
在看"Inside COM"第10章的代码. MAKEFILE里面有几个标记我没看懂. 去网上搜也搜不到. /D_OUTPROC_SERVER_ /DWIN32 /DREGISTE ...
- Using Amazon API Gateway with microservices deployed on Amazon ECS
One convenient way to run microservices is to deploy them as Docker containers. Docker containers ar ...
- 给表追加主键-----报错ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键
由于 这次 项目 做了 数据库 迁移(从 mysql 转到oracle 用的是navicat) 的工具 所以导致很多主键都丢失了 导致数据库很多 数据的id重复 导致系统修改一条数据的时候 出现 ...
- Undefined symbols “_OBJC_CLASS_$_XXX” 问题
解决方法是点击工程,在targets界面中找到Build Phases,根据提示信息“XXX”来判断缺少什么文件,一般如果缺少自定义的文件,XXX会是缺少的类名,那么就在Complie Sources ...
- Python学习总结17:exec和eval执行求值字符串
有些时候可能会需要动态地创造Python代码,然后将其作为语句执行或作为表达式计算. 1. exec >>>exec "print 'Hello, world!'" ...
- ScrollView属性总结
结构 继承关系 public class ScrollView extends FrameLayout java.lang.Object android.view.View android.view. ...