[arduino]红外接收测试工装
来龙去脉
- 因为项目需要使用红外传感器来辨别方向,而且还是用的非标红外通讯协议(协议主要是通过载波脉冲的间隔时间来区别);
- 需要直观地显示/测试红外信号的信息/质量,了解红外信号的在空间上的分布情况。
故做了一个小工装,能够显示接收标准代码数据和自定义的代码数据;
目标功能
- 接收38KHz红外载波信号,通过led闪烁表示接收到红外信号;
- 解码信息/调试信息能够显示在OLED屏幕上;
- 实现自定义和标准(如NEC)数据的解码;
- [TODO]增加旋转编码器
- [TODO]增加led UI,优化UI
硬件组成
- nano,(红外接收头的引脚只做输入电平的检测,故使用普通的引脚即可)
- 1838B红外接收头,带屏蔽罩一体化(集成了信号处理);
- oled 0.96寸 I2C通讯
- 支持NEC码的遥控器,用于测试
软件设计
IRremote库-通过测试NEC码,了解其工作原理
- IRremote的工作原理:在周期是50us的中断函数isr中有个红外接收装态机(https://mc.dfrobot.com.cn/thread-440-1-1.html)
- 在该状态机中记录了脉冲边沿的间隔时间计数值tick,以及间隔的次数 results.rawlen,保存在results.rawbuf[i] ;实际时间 = 50us*tick;
- 同时结果还包含了解码的类型 results.decode_type,定义在 decode_type_t中,如 NEC=8
- 接收到间隔数据后,就根据定义的解码方式进行解码,通常第一个数据为两个帧之间的间隔时间,处理时先跳过;
- NEC编码的特点是 起始位为固定560us,然后载波之后的空格space不一样来区别0/1
- 通过打印NEC码原始时间间隔数据;匹配到了与协议相符的时间数据;验证NEC的编码的解码方式,
+ 接下来就是根据自定义的时间间隔去匹配逻辑0/1
显示库
Adafruit_SSD1306
其他问题
测试中发现红外的散射能力太强,如果要测试红外信号分布的话,需要设计好光路,否则无法判别方向;
参考资源
- 红外编码原理(https://blog.csdn.net/wuhenyouyuyouyu/article/details/105900088)
- 太极创客(http://www.taichi-maker.com/oled-weather-time-tv/)
- 显示参考(https://www.jianshu.com/p/82ba466a5369)
- 红外参考(http://www.taichi-maker.com/homepage/reference-index/arduino-library-index/irremote-library/ir-send-example-1/)
- Adafruit参考(https://blog.csdn.net/dpjcn1990/article/details/103376058)
又是填坑的一天
[arduino]红外接收测试工装相关推荐
- ESP8266+红外模块制作万能网路遥控器
ESP8266+红外模块制作万能网路遥控器 通过红外模块模拟遥控发射指令 接入blinker平台,通过手机可以远程控制. 前提是先读取出你要操控设备遥控的发射码出来.参考<Arduino 红外接 ...
- Arduino 红外模块 红外接收 红外发射
需要用到IRremote库文件 红外遥控按键16进制编码,使用时添加前缀 0X 红外接收 .源代码 //***************** //红外接收模块测试 //***************** ...
- arduino灯光装置_基于Arduino的智能家居灯控系统设计
&能应用 ------ T X 阵 W S 2 8 1 2 全 彩 灯 带 R X 工 G N D r 0 引言 智能家居的概念虽然已经有了几十年,但进入我国并取 得一定发展还是最近几年的事, ...
- 自己动手做Arduino玩具(三)
使用上一节的程序虽然可以实现一个靶,但功能上实在有点太简单了,而且有一个比较严重的问题,就是由于红外管有点敏感,环境光也自动触发了管子,所以这个方案实在是有点不合适,在Arduino库中有红外线接收及 ...
- arduino笔记20:红外遥控
红外LED 红外接收器 红外遥控的通讯协议 用到一个库: arduino红外接收器: IRrecvDemo . decode()库函数用于判断红外接收器所接收到的红外信号是否可以被解 ...
- Arduino Mixly入门到精通教程
目录 1.介绍 2.实验器材和相关资料下载链接 3. Uno Plus 开发板和米思齐软件 第1小节 简单介绍 Uno Plus 开发板 第2小节 Uno Plus 开发板的驱动安装方法 第3小节 ...
- Fritzing软件绘制Arduino面包板接线图传感器模块库文件300
一.硬件接线图 二.硬件材料 1)主控板 1.1*Arduino UNO开发板 2.1*Arduino UNO R3 CH340版本 3.1*Arduino Nano开发板 4.1*Arduino M ...
- arduino 的红外遥控解码
测试发现 遥控器的角度不一样 或者有反射 导致解析的码也不一样 程序 /** IRrecvDemo-LED* =====================功能说明================ ...
- Arduino遥控小车
需要下载ArduinoIDE,代码(Arduino C): #include<IRremote.h > //红外库//左1马达 const int leftPin1=8; //左2马达 c ...
- arduino的学习过程
目录 一.引言 二.学习arduino的过程 三.学什么 1.编程思路 2.自学的习惯 3.做笔记 总结 4.灵活运用 四.怎么学 一.引言 作为一个专科大三的混子,写一篇文章给师弟师妹们,因为自己学 ...
最新文章
- 黑龙江专科大学计算机专业,黑龙江10大最好的专科学校,有你心仪的学校吗?...
- Elasticsearch启动问题:max number of threads [3753] for user [XX] is too low, increase to at least [4096]
- 单臂路由配置实验同一交换机上vlan间ping不通_【干货】什么是单臂路由?如何配置?...
- Exception在方法继承中的限制
- java绘制矩形 鼠标_如何用java在面板上用鼠标绘制出一个矩形
- ExtAspNet应用技巧(十四) - 系统设置
- 【安卓笔记】—— 页面导航 Navigation(2)
- php案例之后台数据显示-- PDO版(php data object)
- 实用Python程序设计测验 - 007:反向输出一个三位数
- java 裁剪 pdf_Java 合并、拆分PDF文档
- 什么是L2十档行情API接口
- 响应式网页设计学习笔记
- 远程网络教学系统功能(用例图)
- DeepFashion2: 一个针对衣服图片的检测、姿态估计、分割和重认证多用途基准
- centos下申请阿里云泛域名证书并自动更新
- Python练习3:求N的多次方
- 求解广州到上海用时最短的路径,使用中国地图超详细剖析Dijkstra算法思想
- Makefile 配置和使用
- 企业信息化由谁主导会更好?
- 在阿里云购买云服务器并安装宝塔面板