0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino Nano R3实现摩托车尾灯的设计方案

科技观察员 来源:hackster.io 作者:hackster.io 2022-05-03 17:34 次阅读

介绍:

从表面上看,这是一个非常简单的项目。它读取 3 个开关并驱动 2 个 LED 灯条。但是,这不是典型的独立 Arduino 项目。将其集成到现有电气系统中存在一些细微差别。

以下是构建此项目所需的技能和项目。

如果愿意深入研究自行车的电气系统,您需要找到并利用:

开关 12V 线

左转向信号线

右转信号线

刹车灯线

三个 12V 继电器(我选择了小型簧片式继电器)

5 v 电源能够持续 5 A(不是峰值额定值)

两个 - 5x8 WS2812 LED 矩阵(或您选择的矩阵)

性能板

用于连接所有电线的接线端子

金属丝

poYBAGJX6m-AI6UcAAF23Yo2Zw8309.png

示意图注释

该项目的目标是将 Arduino 与自行车的电气系统完全隔离。这就是继电器用于触发 Arduino 引脚的原因。您可能可以使用分压器并避免使用继电器。

如果您有一辆带有 LED 转向灯的新型自行车,请检查您的灯的电压。它可能正好是 5V,所以可以直接馈入 Arduino 引脚。

你可能会觉得奇怪的是我使用模拟来读取刹车/转向信号。这样做只是为了简化原型板的焊接,所以我没有在 Arduino Nano 的一侧进行所有连接。

切换的 12V 输入线位于我自行车上现有的 10A 电路上。

不要给项目供电!每个 LED 矩阵可以消耗 2.5 A!如图所示,我有一个双输出电源,每个输出都能达到 4A,而且效果很好!两个 3 安培 BEC 电路可能也可以工作。如果您的 Arduino LED 在转向信号运行时闪烁,请使用 Arduino 专用电源,或为 Arduino 提供 12V 电源到 VIN 引脚。

poYBAGJX6nWAKIc2AAR2U9M_KEc808.png

构建电路板

我使用了 Adafruit perma 面包板(本质上是带有面包板痕迹的穿孔板)。我希望内置的痕迹能让构建更干净。这不是一个完美的解决方案,需要刮掉一些痕迹。

花时间设计PCB

放入接头以便可以更换 Nano,但这也会增加构建的厚度

拓展一下我想试试 TI MSP430 而不是 Arduino

pYYBAGJX6nqAKjqbAAa7gochOxg786.png

构建测试夹具

如果您正在修改代码,您将需要构建一个测试夹具,以便您可以在办公桌上进行开发和测试,而不是在连接到自行车的车库中进行这项工作。我建立了一个 3 按钮项目盒,为三个继电器中的每一个提供 9v。三个按钮分别代表:左、右、刹车信号,您可以测试所有组合。

poYBAGJX6n6AEJRuAANJ58OVsm8181.png

Arduino项目

我很早就了解到,最好将 LED 动画封装在类库中。这使得动画可重复使用。

类库的缺点是编写起来有点痛苦。缺乏调试工具(我习惯于使用 Microsoft Visual Studio 和 Eclipse),而且当事情不正常时,几乎没有什么线索可以说明哪里出了问题。我的最佳建议是慢慢构建功能并保存备份副本。当您遇到问题时,请仔细检查您最近所做的更改。C/C++ 中最常见的灾难性错误可能是缓冲区溢出。

编译这个 Arduino 草图需要下载 4 个库:

Adafruit neopixel 库

BlinkLed

CascadeLed

尾灯

BlinkLed 类库
在类库的头文件中查看调用序列的详细信息。您还可以在草图中找到用于实例化和调用刹车灯和行车灯的示例。将一组像素传递给光和频率。

例子:

字节最大停止 = 25;

字节 StopPix[MAXSINGLEROW] = { 3, 4, 5, 6, 7, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 35, 36 , 37, 38, 39};

BlinkLed LStopLed = BlinkLed(&lstrip, &StopPix, maxstop, R, G, B, 19);

BlinkLed RStopLed = BlinkLed(&rstrip, &StopPix, maxstop, R, G, B, 19);

CascadeLed 类库
在类库的头文件中查看调用序列的详细信息。您还可以在草图中找到用于实例化和调用转向信号信号的示例。将二维像素阵列传递给光和频率。然后该类将循环遍历像素行并按该顺序点亮它们。

警告:为简单起见,我选择创建常量来定义数组大小。为了便于使用,这会消耗一些内存。如果您选择驱动每组超过 40 个像素,您可能需要更改定义在 CascadeLed\ArrayConstants.h 中的常量。

例子:

常量字节 maxrow = 5;

常量字节 maxcol = 8;

字节 Rightpix[MAXROW][MAXCOL] = { { 0, 1, 2, 3, 4, 5, 6, 7}, { 8, 9, 10, 11, 12, 13, 14, 15}, {16, 17 , 18, 19, 20, 21, 22, 23}, {24, 25, 26, 27, 28, 29, 30, 31}, {32, 33, 34, 35, 36, 37, 38, 39}} ;

CascadeLed RightLed = CascadeLed(&rstrip, &Rightpix, maxrow, maxcol, RT, GT, BT, 80, 900);

TailLight.ino Arduino 草图
这里不多说。控制回路非常简单:

void loop() {

byte leftpin = (analogRead(LEFTPIN) > 50);

byte brakepin = (analogRead(BRAKEPIN) > 50);

byte rightpin = (analogRead(RIGHTPIN) > 50);

// animate or clear the turn signals

// PsudoOn is true when pin is high or between turn signal blinks (pin is actually low)

bool lPsudoOn = LeftLed.Blink(leftpin);

bool rPsudoOn = RightLed.Blink(rightpin);

// animate or clear the brake lights LStopLed.Blink(brakepin); RStopLed.Blink(brakepin);

// only turn on running lights. Let the overlays turn it off // Clear will interfere with overlapping lights

if (!lPsudoOn && !brakepin) LRunLed.Set(true);

if (!rPsudoOn && !brakepin) RRunLed.Set(true);

}

备注:
转向信号开关会中断像素动画,因为闪烁比一个动画序列更快。CascadeLed 类有一个超时值来吸收闪烁的“关闭”部分并假装信号仍然打开。这个伪开启被传递回主控制回路,因此它需要知道是否应该考虑开启或关闭转向信号,而不是使用当前引脚值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 继电器
    +关注

    关注

    131

    文章

    5027

    浏览量

    146079
  • 电气系统
    +关注

    关注

    1

    文章

    248

    浏览量

    24111
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184848
收藏 人收藏

    评论

    相关推荐

    车尾灯控制电路设计论文.doc

    方波,所以循环点亮这个过程所需要的时间约为0.5S*4。当S2 S1 S0 =010时候汽车右转,所以汽车尾灯右面3个灯按照R1→R1R2→R1R2
    发表于 05-29 07:53

    基于AT89S52单片机的汽车尾灯控制器设计

    本帖最后由 luna 于 2011-3-3 11:46 编辑 为了减少交通事故隐患和提高汽车、摩托车等机动车辆尾灯电路的使用寿命,本文设计了一种利用AT89S52单片机对汽车尾灯
    发表于 03-02 16:56

    基于FPGA的汽车尾灯控制电路设计与实现

    分析汽车尾灯控制 电路设计原理 ,采用 和硬件描述语言 实现车尾灯控制 电路的设计,具有可编程性、线路简单、可靠性高等特点 ,并通过仿真对结果进行了验证。 随着集成电路工艺 技术的高速发展
    发表于 11-10 09:14

    电动车尾灯改LED真相

    个关键问题其它问题就迎刃而解了。先从电路讲 燃油摩托车尾灯改LED一改就成,远没有电动车这么麻烦,电动车与燃油摩托车尾灯电路最大不同点是:刹车线,电动车刹车尾灯亮的同时,要取这个电压通过刹车线给控制器
    发表于 12-29 20:25

    如何实现车尾灯控制设计

    用multisim实现车尾灯控制设计,要能实现所有的要求
    发表于 06-24 15:34

    基于Proteus的汽车尾灯控制系统该如何去设计?

    车尾灯控制系统是由哪些部分组成的?基于Proteus的汽车尾灯控制系统该如何去设计?如何对汽车尾灯控制系统进行测试并验证?
    发表于 06-15 06:39

    数电课设汽车尾灯控制电路

    仿真的。这是汽车尾灯的要求:任务:汽车尾灯控制器设计基本设计要求:设计系统模拟汽车尾灯两侧信号,左右各有3个指示灯。汽车运行时具有如下模式:(1)汽车正向行使时,左右两侧的指示灯全部处
    发表于 07-22 06:20

    请问怎样去设计一种基于74LS138芯片的汽车尾灯控制器

    车尾灯控制器是由哪些部分组成的?怎样去设计一种基于74LS138芯片的汽车尾灯控制器?如何对基于74LS138芯片的汽车尾灯控制器进行Multisim仿真?
    发表于 08-09 07:28

    车尾灯控制设计

    车尾灯控制设计原理     当汽车左转(按下X2)Y1,Y2,Y3 车尾灯顺序点亮;当汽车右转(按下X3)Y4,Y5,Y6车尾灯顺序点亮;有紧急情况汽车临时刹车(按下X4)Y1
    发表于 12-13 14:21 70次下载

    车尾灯VHDL设计

    车尾灯VHDL设计 汽车尾灯VHDL设计 标签/分类: 1.系统设计要求     用6个发光管模拟6个汽车尾灯(左右各3个),用4个开
    发表于 08-21 15:32 4617次阅读

    车尾灯控制器制作

    车尾灯控制器制作
    发表于 01-10 08:39 1562次阅读
    汽<b class='flag-5'>车尾灯</b>控制器制作

    基于Multisim的汽车尾灯控制方案

    本文设计一种基于 Multisim 的汽车尾灯控制设计,要求实现汽车左转弯、右转弯、停止等条件下尾灯的点亮与熄灭情况。 设计要求 假设汽车尾部左右两侧各有三个指示灯(用发光二极管模
    发表于 10-08 17:17 2.7w次阅读
    基于Multisim的汽<b class='flag-5'>车尾灯</b>控制<b class='flag-5'>方案</b>

    车尾灯控制电路工作原理及设计

    车尾灯控制电路掌握着汽车尾灯的变化规律。那么汽车尾灯控制电路的工作原理及它是怎样设计的呢?作者通过搜集整理资料,对于汽车尾灯控制电路(汽车电子控制技术)相关知识进行
    发表于 11-01 17:03 6.2w次阅读
    汽<b class='flag-5'>车尾灯</b>控制电路工作原理及设计

    车尾灯逻辑检测装置的设计

    监测装置,并对汽车尾灯系统的总体设计方案、硬件电路、结构特点、工作原理及其调试方法进行了详细的分析介绍。该系统实现了正常运行、左转、右转、临时刹车等4种常用的汽车尾灯状态,且制作简单,
    发表于 11-21 10:46 15次下载
    汽<b class='flag-5'>车尾灯</b>逻辑检测装置的设计

    车尾灯气密性检测是如何做到的

    车尾灯密封不到位会使得尾灯内会出现结雾、积水、亮度低、光散射效果差等车灯问题,造成尾灯无法正常使用甚至是内部电路短路产生故障。 因此,汽车尾灯必须要做好密封处理来
    发表于 01-22 16:35 826次阅读