5597| 0
|
[项目] 骑行者-安全警示灯 |
引言: Arduino做的各种应用广泛被开源硬件爱好者喜欢。今天给大家介绍一个实用性强的arduino nano为主控的自行车灯,特别适合经常骑行的学生,项目包装了之后可以放在双肩背包或者是自行车座的后面,通常在车子做左右转弯时候会发生大的自行车倾角,这个时候数码点阵就会跟着一起亮了。这个项目利用了特别精确灵敏的倾角传感来对移动物体进行判别,达到可以在传感识别后发送指令给单片机,由单片机和跟它连在一起的8x8数码点阵来进行灯光信号的闪烁。这样就可以给后方来车一个提醒并避免交通事故。 ![]() 相关视频会在3日内奉上。 第一步:展示内容 Tilt倾角传感经过倾斜后,数码点阵会进行大小两个圆形的灯光的由内向外的显示。 第二步:倾斜角的计算 用一个变量值来存储变化的倾角,当倾角打到其物理侦测值时候,给出反馈。 第三步:硬件搭建 所需器材:A rduino nano控制器(2);DF的tilt倾角传感器(3);nano扩展板(4);7.4v 锂电池;(5);USB数据线;(6);Max7219 8x8数码点阵 (7);连接线若干 ![]() 第四步:了解一下关键硬件的参数 根据测试,tilt传感在垂直方向会反馈0值。这样数码点阵将空显示。 第五步: 发一些硬件的图片。让人有个直观的认识 参考硬件清单图 第六步:总体介绍 自行车灯设计系统是由arduino nano,倾角传感和88数码块来完成的。nano收集到倾角的反馈后,触发数码点阵完成相应的灯光图案来。 使用过后的感觉是简单实用。外壳部分还需要打磨包装。 第七部:连线图 ![]() 第八部:代码部分的设计 代码部分的数码点阵的程序的设计思路是写出-空显示-小园-大圆。三个点阵需要显示的内容。根据需要把大小园显示的时间分隔用代码表示出来。 [mw_shl_code=applescript,false]#include <Wire.h> int TiltSwitch = 3; int val ; #include <LedControl.h> 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); } }[/mw_shl_code] |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed