电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
骑行者-安全警示灯
分 享
扫描二维码分享
骑行者-安全警示灯
arduino
点阵
tilt传感
gada8881
关注
发布时间: 2020-08-28
丨
阅读: 577
# 引言: Arduino做的各种应用广泛被开源硬件爱好者喜欢。今天给大家介绍一个实用性强的arduino nano为主控的自行车灯,特别适合经常骑行的学生,项目包装了之后可以放在双肩背包或者是自行车座的后面,通常在车子做左右转弯时候会发生大的自行车倾角,这个时候数码点阵就会跟着一起亮了。这个项目利用了特别精确灵敏的倾角传感来对移动物体进行判别,达到可以在传感识别后发送指令给单片机,由单片机和跟它连在一起的8x8数码点阵来进行灯光信号的闪烁。这样就可以给后方来车一个提醒并避免交通事故。 ![](https://cf03.ickimg.com/bbsimages/202008/ba1e52f3b87f285da4095032ba704aaa.jpg) [自行车灯视频](https://v.youku.com/v_show/id_XNDgxMTY2MjA1Mg==.html?spm=a1z3jc.11711052.0.0&isextonly=1 "自行车灯") ## 第一步:展示内容 Tilt倾角传感经过倾斜后,数码点阵会进行大小两个圆形的灯光的由内向外的显示。 ## 第二步:倾斜角的计算 用一个变量值来存储变化的倾角,当倾角打到其物理侦测值时候,给出反馈。 ## 第三步:硬件搭建 所需器材:A rduino nano控制器(2);DF的tilt倾角传感器(3);nano扩展板(4);7.4v 锂电池;(5);USB数据线;(6);Max7219 8x8数码点阵 (7);连接线若干 ![](https://cf03.ickimg.com/bbsimages/202008/77a4fc2c3790a387e011befe342f913c.png) ## 第四步:了解一下关键硬件的参数 根据测试,tilt传感在垂直方向会反馈0值。这样数码点阵将空显示。 ## 第五步: 发一些硬件的图片。让人有个直观的认识 参考硬件清单图 ## 第六步:总体介绍 自行车灯设计系统是由arduino nano,倾角传感和88数码块来完成的。nano收集到倾角的反馈后,触发数码点阵完成相应的灯光图案来。 使用过后的感觉是简单实用。外壳部分还需要打磨包装。 ## 第七部:连线图 ![](https://cf03.ickimg.com/bbsimages/202008/6d79fb547cf4af4d6a1deb40326a2cfb.png) ## 第八部:代码部分的设计 代码部分的数码点阵的程序的设计思路是写出-空显示-小园-大圆。三个点阵需要显示的内容。根据需要把大小园显示的时间分隔用代码表示出来。 ```c int TiltSwitch = 3; int val ; int DIN = 8; int CS = 9; int CLK = 10; LedControl lc = LedControl(DIN, CLK, CS, 0); byte zero[8] = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}; byte inner[8] = {0x0,0x0,0x18,0x24,0x24,0x18,0x0,0x0}; byte outer[8] = {0x0,0x1C,0x3E,0x63,0x63,0x3E,0x1C,0x0}; void setup(void) { Serial.begin(9600); lc.shutdown(0, false); //The MAX72XX is in power-saving mode on startup lc.setIntensity(0, 5); // Set the brightness to maximum value lc.clearDisplay(0); // and clear the display pinMode (TiltSwitch, INPUT); } void loop() { val = digitalRead (TiltSwitch); if (val == HIGH) { Serial.print ("Value: ");//You can remove the serial print section. Serial.println (val); printByte(inner); delay(200); printByte(outer); delay(200); printByte(inner); delay(200); printByte(outer); delay(200); } else if (val == LOW) { printByte(zero); Serial.print ("Value: ");//You can remove the serial print section. Serial.println (val); //delay(100); } } void printByte(byte character []) { int i = 0; for(i = 0; i < 8; i++) { lc.setRow(0, i, character); } } ```
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
gada8881
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交