本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

DIY便携式LED灯
发布时间:2021-09-06
分享到:
DIY便携式LED灯
发布时间:2021-09-06
分享到:

如果您需要灯但没有可用的插座,那么拥有一个可以容纳各种电池的LED灯会很好。

该灯可以接受很宽的电压范围 - 6 到 30V。这使它可以与您可能随身携带的不同电池一起使用,包括 18650 电池组、RC 电池、12V 铅酸等。

该灯的设计非常高效,即使在全功率下也能散发出很少的热量。调光器旋钮可用于调节功耗和光输出。当“关闭”时,灯在“睡眠”状态下消耗的功率小于 40 uA。电压和电流在一个小型 OLED 显示器上进行监控。这使您可以估计给定光照水平下的电池寿命,并根据您的情况进行调整。当电池电压过低时,该设备具有自动关闭功能。

该设备可以通过手动覆盖选项自动检测您正在使用的电池。

免责声明:

使用电池有风险。 犯错会导致电池着火。有时,由于制造或运输过程中的未知问题,即使一切正常,电池也会着火。您应该了解与您选择的电池相关的风险。即使本页中的硬件和软件已经过测试,您也不应该假设您的构建和电池可以正常运行。对于您在遵循本指南或使用提供的软件时可能遇到的问题,我不承担任何责任。建议为您的电池使用安全容器。

补给品:

  1. 所需用品:
  • 3.3V Arduino pro mini:10 美元
  • 3 个 PicoBuck LED 驱动器:48 美元
  • 10 个 3W LED(每包 5 个):16 美元
  • 128x64 I2C OLED:6 美元(运费2 美元)
  • 3.3V 稳压器 LM2936:2 美元
  • INA260 电压/电流监视器:10 美元
  • 10k 旋转电位器:1 美元
  • 2x 触觉按钮:1 美元
  • 5.5 毫米电源插孔:2 美元
  • P沟道功率MOSFET。我使用了FQP27P06,但很多都可以工作。它只需要 Vdss > 30V 和 Id > 2A(1 美元)
  • N沟道MOSFET。我最常使用BS170,但 Vdss > 30V 的任何东西都可以使用。(< 1 美元)
  • 电阻器:我使用了 3x 47k、1x 10k 和 1x 1k。
  • 印刷电路板。我使用了30x70 和 50x70 原型板。如果您想将设计发送到晶圆厂,请参阅 github 文件。
  • M2和M2.5螺栓(如果您选择使用 3D 打印外壳)。
  • 一些连接线。我认为22 号硅胶线很合适,但您可以使用现有的。
  • 可选:输入 PCB 和主 PCB 之间的连接器。我使用了8 针 JST XH连接器,但可以使用许多不同的选项。
  • 可选:一些母排针可让您插入和拔出 OLED、电源监视器和 Arduino。这有助于排除故障并在焊接时保护零件。

    2.所需工具

  • 一个 3.3V FTDI 编程器。链接的价格为 15 美元,但有许多便宜的替代品。
  • 甲烙铁和焊料
  • 组装用六角扳手。
  • 可选:处理 MOSFET时建议使用ESD 腕带。
  • 可选:面包板对于增量验证很有用。
  • 该项目还包括3D 打印外壳的.stl 文件。您可以自己打印,将文件发送给服务,或 DIY 自己的案例解决方案。

     3. 需要的软件

  • AVRDude用于将固件上传到 pro mini(免费)。
  • 可选:如果您想破解固件或编写自己的固件,请使用AVR GCC 工具。(自费)
  • 可选:如果您想破解 3D 模型文件,请使用OpenSCAD。(自费)

第 1 步:主要原理图概述

让我们先概述一下我们的发展方向。原理图显示了所有连接的最终电路。如果这些信息看起来太多,请随意跳过它,因为我们将在接下来的步骤中介绍设计:

  • 电源从 J1 左上方的引脚 2 输入。它直接馈入 INA260 功率计的 V+ 端口。
  • 功率流经 INA260 的 V- 端口。INA260 将测量通过 V+ 和 V- 的电流以及 V+ 和 GND 之间的电压
  • INA260 的 V- 连接到 2 个设备
  • 一个是左侧的LM2936 稳压器(U2)。该稳压器将电压降至 3.3V,这是 Arduino pro mini、INA260 和 OLED 所需的。虽然 pro mini 有一个内置的 3.3V 稳压器,但这个内置的稳压器无法处理 V- 上的 30V 最大额定值。pro mini 稳压器还具有更高的“静态电流”,这意味着 pro mini 处于低功耗模式时效率较低。
  • 连接到 V- 的另一个器件是PFET (Q1)。这用于切断所有 PicoBuck LED 驱动器的电源。默认情况下,47k 拉电阻 (R3) 将栅极拉至 V-,这意味着默认情况下 PFET 处于关闭状态。
  • 需要电阻器和 Q2 (NFET) 来打开 PFET。pro mini 无法直接开启PFET,因为PFET 栅极电压过高,因此使用NFET(Q2)作为中间人。电阻器 R3 和 R4 用于将 PFET 的 Vgs 规格保持在范围内。默认情况下,R2 电阻器保持 Q2 关闭。要打开 Q2,arduino pro mini 必须驱动 D7 高。R1 电阻器会消耗在开启和关闭 Q2 时可能产生的潜在振荡。
  • 回到 Q1,PFET 要么阻止(几乎所有)电流,要么允许(几乎所有)电流,具体取决于它的状态。该电流的接收器为 3 个 PicoBuck LED 驱动器,用于驱动 9 个 3W LED。
  • 让我们专注于pro mini的接口引脚
  • A4 (SDA)、A5 (SCL):这些用于通过I2C与 INA260 和 OLED 通信。I2C 是一种总线架构,意味着 A4 同时连接到 INA260 和 OLED 的 SDA。SCL 也一样。
  • A0:这连接到电位器的中心腿,用于对 LED 进行调光。
  • D4:它连接到电位计的电压(右)腿。您可以将这条腿直接连接到 3.3V 电源,但是即使灯关闭,电位器也会烧掉电源。通过使用 D4,pro mini 可以在设备关闭时切断电位计的电源,从而节省 330 uA 的电流消耗。
  • D2:这连接到“绿色”按钮。按钮的另一侧连接到 GND。这种配置称为“开漏”。基本上,pro mini 内部的一个上拉电阻将 D2 保持在 3.3V 的高电平,但是这个电压可以很容易地通过按钮之类的东西拉到地 - pro mini 会在按下按钮时检测到。
  • D3:与 D2 相同的想法,但用于红色按钮
  • D7:arduino 将这个引脚驱动到 3.3V 以打开 Q2,进而打开 Q1,从而打开 LED。要关闭 Q2,我们可以选择或将 D7 驱动至 GND,或将其重新配置为输入 (Hi-Z) 并让 R2 将栅极拉至地。固件采用后来的选择。
  • D9 : 此引脚发出 PWM 信号。它告诉 PicoBucks将 LED 调暗多少。固件通过考虑灯的状态(是否点亮?电压是否正常?)和读取电位计值来做出此决定
  • 3.3V VCC, GND : 需要给芯片供电

步骤 2:输入原理图概述

 

输入 PCB 连接在单独的板上,并通过接口电缆连接到主板。如果您自己制作机箱并希望将所有东西都放在一块板上,则不必使用接口电缆。

该板上的每个组件都在上一步中进行了描述。

第 3 步:初始 OLED 连接和固件测试

注意:考虑所有面包板步骤可选练习,以获得乐趣、教育和零件验证。如果你想跳到最终版本,请随意(祝你好运)。

对于这一步,我们只是将 Arduino Pro mini 连接到 OLED 并将固件上传到 pro mini。

我建议在这一步使用面包板。

  1. 将 pro mini 和 OLED 添加到面包板上
  2. OLED 的接线是
  • Pro Mini GND → OLED GND
  • Pro Mini VCC → OLED VCC
  • Pro Mini A4 → OLED SDA
  • Pro Mini A5 → OLED SCL

     3. 现在将您的 3.3V FTDI 编程器连接到 Arduino Pro Mini 接口引脚,如图所示,然后将 USB 电缆连接到您的 PC
现在您需要上传led_lamp.hex固件文件(链接如下)。这需要在您的计算机上安装 avrdude。

我使用的命令是:

avrdude -Cavrdude.txt -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:led_lamp.hex:i

我在 Arch Linux 和 Debian Linux 中对此进行了测试,但 avrdude 也适用于 Mac 和 Windows - 您需要调整(或省略) -P 设置以正确指向您的串行设备。以下是一些可能对 windows 或 mac 有帮助的avrdude 文档

您应该会看到错误“致命:INA260 01”。尽管报告了错误,但如果您看到此消息,一切都会顺利(因为我们尚未添加 INA260)。

led_lamp.hex

avrdude.txt

第 4 步:INA260 电流监视器设置

INA260 电流监视器用于测量 LED 的电压和电流。

现在,我们可以将它连接到面包板上(照片中的红线没有连接任何东西)

  • 连接 Pro Mini GND → INA260 GND
  • 连接 Pro Mini VCC → INA260 VCC
  • 连接 Pro Mini A4 (SDA) → INA260 SDA
  • 连接 Pro Mini A5 (SCL) → INA260 SDL

您会注意到上面的所有连接也连接到 OLED。

再次打开设备电源,您应该会看到它询问您拥有哪种类型的电池并告诉您您的电压为零。

第 5 步:添加稳压器

至此,3.3V已经由FTDI编程板提供。对于这一步,我们将安装电压调节器,以便我们可以使用任意(例如 6-30V)输入电源。这使我们能够看到 INA260 现在正在工作,并允许我们稍后为真正的 LED 供电。

此处的接线错误可能会烧毁零件。避免这种情况的一种方法是使用稳压电源并将最大电流设置为低(目前 20 mA 应该足够了)。另一种方法是将一个小保险丝与电池串联。第三种方法是在连接任何东西之前验证 3.3V 稳压器是否按预期工作。

基本接线流程如下:

  1. INA260 上的电池 + → V+
  2. 电池 - → GND
  3. INA260 V- → 稳压器 Vin
  4. 稳压器 Vout → 3.3V 轨(pro mini、OLED 和 INA260 都连接到)
  5. 稳压器地→地
  6. 按照数据表的说明将电容器放在稳压器上。

注意:

  • 该LM2936数据表呼吁输入电压→100nF的→GND和Vout的→10uF的→GND
  • 我已经用示波器确认,不按照建议使用电容会导致这部分的调节不稳定。

使一切正确的回报是固件现在将在启动时显示您的电压。我们仍然无法与该单位进行通信,但这种情况很快就会改变。

第 6 步:添加按钮和电位器

在这里,我们将按钮和电位计添加到面包板上。在下一步中,我们构建一个输入板。如果面包板没有好的组件,可以跳到下一步。

我在这一步中使用的按钮和电位器不是我在最终设计中使用的那些,只是零件盒中的一些。接线如下:

  • Pro Mini D2 → 红色按钮(左侧)
  • 红色按钮(右侧)→ GND
  • Pro Mini D3 → 绿色按钮(左侧)
  • 绿色按钮(右侧)→ GND
  • 电位器(左引脚)→ GND
  • Pro Mini A0 → 电位器(中心引脚)
  • Pro Mini D4 → 电位器(右脚)

现在您可以控制设备了。此时,设备会认为它正在控制一个真正的 LED,并且控件将像最终设计一样做出响应。在此设计中,绿色亮起,红色熄灭,电位计控制亮度。

在这里,我在 D9 和 GND 之间添加了一个临时 LED 和电阻器 (1k)。D9 是 PWM 输出,可让我们调暗 LED。在最终设计中,D9 只是 Picobuck 转换器的一个信号,但在这里我使用它通过一个小 LED 驱动电源以进行直接演示。示波器信号显示 D9 的输出。当您将电位计向右转动时,方波的占空比会发生变化,并且每个周期的更多时间都为 3.3V。这些按钮还会更改设备的状态并打开和关闭 PWM。

第 7 步:构建输入板

有关接线,请参阅步骤 2 中的示意图。为此,我使用了 70x30mm 的原型 PCB。如果您希望输入板很好地适合 3D 打印,请密切注意零件的放置。我建议将 PCB 孔数作为参考。

我用环氧树脂将电位计粘在板上。

为了将输入板连接到主板(和面包板),我使用了一个公的 8 针 JST XH 连接器(2.54 毫米针距)。您可以使用任何您想要的连接器,包括直接焊接在电线上。

第 8 步:准备一个 PicoBuck 和 3 个 LED

照片显示了 3D 打印组件上的 PicoBuck,但您还不需要该组件。

对于 PicoBuck,您可以将所有 PWM 输入短接在一起,如图所示。您还可以将电路板上的信号和 LED GND 短路(假设您使用本指南中使用的高侧 PFET 开关。如果您选择“低侧”开关,则不会将它们短路)。

我在 LED 和 picobuck 之间使用了 JST 连接。应该是没有必要的。只要您的电线是 3.5-4 英寸(90-100 毫米),您就应该能够使用没有连接器的 3D 打印圆顶。

第 9 步:接线并测试 PFET 开关

原理图在步骤 1 中。您基本上需要一个功率 PFET、任何 NFET 和 4 个电阻器。从 PFET 到 PicoBuck 的 47k 下拉是可选的 - 当 PFET 关闭时,它将允许电压降至零。

照片显示的是 FemToBuck 而不是 PicoBuck。它们可以互换使用。

注意:您还可以选择省略 PFET/NFET 开关,将 V- 从 INA260 直接插入 PicoBuck 电源输入。事情仍然会工作,因为固件的“关闭”位置也会使 D9 处的 PWM 信号变平。缺点是每个 PicoBuck 在这种配置中使用大约 1 mA 的电流,总共浪费了 3 mA,即使该装置出现关闭时也是如此。使用 PFET 可避免这种 3 mA 寄生漏极​​。

第 10 步:构建主 PCB

现在我们将面包板电路转移到 PCB 上。我使用了 50x70mm 的 PCB,这也是 3D 打印设计使用的。在连接电路板之前,我使用kicad帮助布局组件(此处的文件)。请注意,kicad 原理图包含用于 SDA 和 SCL 的 4.7k 上拉电阻。INA260 和 OLED 已经有板载上拉电阻,并且测试中从不需要 4.7k 上拉电阻,所以我没有将它们包括在我的实际布线中。

第 11 步:3D 打印和组装前面板和底板

我的 OpenSCAD 设计文件在这里,但如果您不需要任何设计更改,您可以只使用下面的 .stl 文件。

我在 PLA 中使用了 0.15mm 层高。也可以使用0.2mm的高度。PETG 或其他长丝可用于代替 PLA。我打印了带有曲面支撑的正面- 它们可能不是必需的。

底座中间有一个六角螺母孔。它可以安装一个 1/4-20 的六角螺母,然后可以将灯安装到标准的三脚架上。

前部用 M2.5 螺栓固定在底座上。6mm 到 16mm 之间的任何东西都应该可以工作。小心不要将螺栓拧得过紧,否则它们会剥落塑料。

第 12 步:3D 打印 Picobuck 支架并安装 Picobuck

PicoBuck 驱动器使用 M2.5 螺栓连接。超过6mm的应该没问题。螺栓不需要非常紧,拧得太紧会剥落塑料。

第 13 步:打印 Led Dome 并进行最终预测试

我在这张照片中同时使用了木筏和支架 - 木筏很有用,因为圆顶的顶部有一些小细节,这对第一层来说并不好。

在继续最终组装之前,将 PicoBucks 插入主板上的 PWM 端口并断言灯按预期工作

led_dome.stl(点击下载)

第 14 步:最终组装和注释

使用长度在 6 毫米到 16 毫米之间的 M2.5 螺栓将圆顶连接到底座。下面附有一个可 3D 打印的调光旋钮,您可以将其推到电位计上以完成构建。

未来设计的一些注意事项:

  • 该单元可以模块化为两个组件。一种提供电源、PWM 和监控。另一个只是所需的降压(或升压)转换器和 LED。这将允许使用不同的 LED 模块,例如平面/定向模块。或具有不同色温的 LED
  • 可以添加其他传感器,例如光敏电阻或运动检测器。

调光旋钮.stl(点击下载)

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论