骑行者-安全警示灯
引言:Arduino做的各种应用广泛被开源硬件爱好者喜欢。今天给大家介绍一个实用性强的arduino nano为主控的自行车灯,特别适合经常骑行的学生,项目包装了之后可以放在双肩背包或者是自行车座的后面,通常在车子做左右转弯时候会发生大的自行车倾角,这个时候数码点阵就会跟着一起亮了。这个项目利用了特别精确灵敏的倾角传感来对移动物体进行判别,达到可以在传感识别后发送指令给单片机,由单片机和跟它连在一起的8x8数码点阵来进行灯光信号的闪烁。这样就可以给后方来车一个提醒并避免交通事故。https://v.youku.com/v_show/id_XNDgxMTY2MjA1Mg==.html 相关视频会在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收集到倾角的反馈后,触发数码点阵完成相应的灯光图案来。使用过后的感觉是简单实用。外壳部分还需要打磨包装。
第七部:连线图第八部:代码部分的设计代码部分的数码点阵的程序的设计思路是写出-空显示-小园-大圆。三个点阵需要显示的内容。根据需要把大小园显示的时间分隔用代码表示出来。#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 = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
byte inner = {0x0,0x0,0x18,0x24,0x24,0x18,0x0,0x0};
byte outer = {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);
}
}
页:
[1]