用WS2812做一个自行车转向尾灯

2023-10-31 05:10
文章标签 转向 ws2812 自行车 尾灯

本文主要是介绍用WS2812做一个自行车转向尾灯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用WS2812做一个自行车转向尾灯

这段时间锻炼的少了,血糖又有上升的趋势,就把我的破自行车修了一下,开始骑行。但夜间骑行不安全,就考虑加一个尾灯。
把零件盒里的电子垃圾扒拉了一下,找到一块ws2812b,8联封装好的那种,一块以前买的的arduino nano,再从老婆的旧电动车上拆了一个转向开关总成,然后就开始组装了。
【实现功能】
我要实现的功能很简单,从车把上控制尾灯的开关及左转右转。正常情况下,尾灯以呼吸灯的形式提醒后车,转向的时间采用向左或向右的流水灯显示。
【所需配件】
1、Arduino nano一个。
在这里插入图片描述

2、Ws2812b-8 LED组件一个。
在这里插入图片描述

电源开关一个(尾灯白天断电关闭,夜间需要时通电打开)、双向开关一个(控制左转和右转)实际上我用一个电动车的转向总成控制,上面有大灯开关和转向开关(还有一个喇叭开关,空置不用)。
在这里插入图片描述

10K电阻两个(用于转向灯的分流)

【程序代码】
程序如下:

/** 本实例用于实现自行车电子尾灯,主要功能是实现夜行警示及右转、右转提示* 主要元器件包括:* 1、一块arduino nano(控制灯光显示及变化)* 2、一块8联ws2812B-8彩色LED* 3、一块9v层叠电池(普通的电量小不奈用,我用的是一个可充电的)* 4、三位开关、电源开关(也可以使用一个电动车的转向开关总成)* 5、10K色环电阻两个(用于分流)* 源码所涉及库文件到:https://download.csdn.net/download/hnkkfan/72395780下载*/#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif#define PIN 6   //ws2812b的din接在arduino的D6上#define NUMPIXELS   8 // LED数量为8// 定义灯珠对象
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);int delayval = 500; // 延时变量
int Pin_Left=A0;//设置左转信号接A0
int Pin_Right=A1;//设置右转信号接A1void setup() {#if defined (__AVR_ATtiny85__)if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif// End of trinket special codepixels.begin(); // 初始化对象.
}void loop() 
{if(digitalRead(Pin_Left)==HIGH)//如果按下左转{turnLeft();}else{if(digitalRead(Pin_Right)==HIGH)//如果按下右转{turnRight();}else//什么也没按{turnFlash();}}}
void turnLeft()
{for(int i=NUMPIXELS;i>0;i-=2){//方法pixels.setPixelColor(s, pixels.Color(r,g,b))用于设置灯珠,s为第几个灯珠,rgb为红绿蓝分量,0-255.pixels.setPixelColor(i-1, pixels.Color(255,80,0)); pixels.setPixelColor(i-2, pixels.Color(255,80,0));pixels.show(); // 在ws2812b上更新LED显示信息delay(delayval); }//下面的循环用于熄灭全部灯珠for(int i=0;i<NUMPIXELS;i++){pixels.setPixelColor(i, pixels.Color(0,0,0)); pixels.show();    }delay(delayval); }
void turnRight()
{for(int i=0;i<NUMPIXELS;i+=2){pixels.setPixelColor(i, pixels.Color(255,80,0)); pixels.setPixelColor(i+1, pixels.Color(255,80,0));pixels.show(); delay(delayval); }for(int i=0;i<NUMPIXELS;i++){pixels.setPixelColor(i, pixels.Color(0,0,0));pixels.show(); }delay(delayval); 
}
void turnFlash()
{for(int i=255;i>0;i-=64){pixels.setPixelColor(3, pixels.Color(i,0,0));pixels.setPixelColor(4, pixels.Color(i,0,0));pixels.setPixelColor(2, pixels.Color(0,i,0));pixels.setPixelColor(5, pixels.Color(0,i,0));pixels.setPixelColor(1, pixels.Color(0,0,i));pixels.setPixelColor(6, pixels.Color(0,0,i));pixels.setPixelColor(0, pixels.Color(i,i/2,0));pixels.setPixelColor(7, pixels.Color(i,i/2,0));pixels.show();delay(250);}for(int i=0;i<255;i+=64){pixels.setPixelColor(3, pixels.Color(i,0,0));pixels.setPixelColor(4, pixels.Color(i,0,0));pixels.setPixelColor(2, pixels.Color(0,i,0));pixels.setPixelColor(5, pixels.Color(0,i,0));pixels.setPixelColor(1, pixels.Color(0,0,i));pixels.setPixelColor(6, pixels.Color(0,0,i));pixels.setPixelColor(0, pixels.Color(i,i/2,0));pixels.setPixelColor(7, pixels.Color(i,i/2,0));pixels.show();delay(250);}}

【线路连接】
接线如下图:
在这里插入图片描述

安装后用3d打印机简单做了一个盒子,上盖用白色的PLA材料(我本来想用透明的,但手头没有),做完后固定到自行车后座下面,然后把开关总成固定在车把上,一个有转向提示功能的尾灯就完成了。

【效果】
安装后的效果如下:
在这里插入图片描述

通电尾灯呼吸状态
在这里插入图片描述

左转时的流水灯
在这里插入图片描述

右转时的流水灯

做完了试下,夜行时,偶就是最靓的仔!

这篇关于用WS2812做一个自行车转向尾灯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/313029

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

基于51单片机的智能小车转向控制系统设计与实现

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机设计精品

国产航顺HK32F030M:WS2812 炫彩LED灯驱动笔记(C51/STM32/HK32)

WS2812B参数 3528 幻彩雾状 贴片式发光二极管 XL-3528RGBW-WS2812B

从Python转向MicroPython使用详解

概要 随着物联网(IoT)设备的普及和嵌入式系统的广泛应用,MicroPython逐渐成为Python开发者们探索嵌入式编程的重要工具。MicroPython是一种精简版的Python,专为资源受限的设备而设计,能够在微控制器和其他嵌入式设备上运行。对于习惯使用Python的开发者而言,转向MicroPython可能会有一些挑战和变化。本文将详细介绍如何从Python顺利转向MicroP

【项目篇】WS2812 炫彩LED灯驱动笔记(C51/STM32)

优信电子:51系列驱动WS2812 3528 幻彩雾状 贴片式发光二极管 XL-3528RGBW-WS2812B C51 驱动 使用 C51 单片机(如 8051 系列)驱动 WS2812 全彩 LED 需要仔细考虑 WS2812 的时序要求,因为 WS2812 使用的是单线通信协议,而 8051 系列单片机没有硬件支持这种协议。通常,我们需要手动生成符

基于carsim的线控转向仿真(2)--齿条力观测

观测器更详细的介绍文章可以关注博主以下两篇文章 从小车倒立摆系统看系统建模控制LQR+LQE仿真_lqr平衡小车仿真模型-CSDN博客 好玩的直流电机调速实验、PID、极点配置、LQR、观测器;不讲大道理_观测器极点配置-CSDN博客 三个实例迅速掌握经典卡尔曼滤波用法_卡尔曼滤波 温度估计-CSDN博客 本篇文章中,博主使用matlab提供的kalman函数,进行观测器设计。 一、系统

Springboot自行车网上商城---附源码130948

摘 要   近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用。简单的流程、便捷可靠的支付方式、快捷畅通的物流快递、安全的信息保护都使得电子商务越来越赢得网民们的青睐。越来越多的商家使用计算机来开展业务、销售、宣传各种产品。各种商业系统和软件已经解放了企业的双手,并使企业能够最大限度地获得利益。因此,计算机技术在商业领域占有非常重要的

在Worpress增加网站的二级目录,并转向到站外网站

在WordPress中,你可以通过添加自定义重定向来实现将某个二级目录(例如 www.example.com/subdir)重定向到站外网站。可以通过以下几种方法来实现: 方法一:使用 .htaccess 文件 如果你的服务器使用Apache,你可以通过编辑 .htaccess 文件来设置重定向规则。 找到 .htaccess 文件: 通常位于你网站的根目录(public_html 或

90 岁老人靠一辆自行车年赚 170 亿,捷安特如何打造山地车极致产品力?

一位富家小开在中年时经商失败,38岁时从零开始创业,最终在自行车整车市场占据了70%的份额,他是怎么做到的? 一家曾为美国自行车品牌代工的台湾工厂,成功从ToB转型为ToC业务,从90%的代工业务转变为全球最大的自行车生产商,他们是如何实现这一飞跃的? 捷安特是一个典型的通过极致产品力创造品牌的范例,更多中国企业在应对跨周期、跨区域竞争时,必须认识到“极致产品力正成为最重要、最核心的品

基于carsim的线控转向仿真(1)--carsim车辆模型目标角度跟踪

一、Rwa转向执行总成建模  Rwa包括齿轮齿条机构、转向组件以及转向执行电机;如下图,电机输出轴通过齿轮减速增扭后,再经过一个半径为rp的小齿轮,直接带动齿条左右移动。齿条的移动通过转向摇臂,带动车轮转动,整套系统从电机的转动,转换为齿条的左右移动,再转换成车轮的左右摆动。 1、转向电机建模 在线控转向中,转向电机是一个执行器,上层给多少需求力矩,电机控制器便响应多少力矩。这里,我们用