本文展示了如何创建一个由时间开关电池供电的太阳能充电电路,用于为 Arduino Uno 和一些外围设备(传感器、通信模块等)供电。
如果要设计远程数据记录仪,电源总是一个问题。大多数时候没有可用的电源插座,这迫使您使用一些电池为电路供电。但最终你的设备会没电了……你不想去那里充电,对吧?因此,提出了一种太阳能充电电路,以利用来自太阳的免费能量为电池充电并为您心爱的 Arduino 供电。
您将面临的另一个问题是 Arduino 的效率。即使您将其置于睡眠状态,它也会消耗大量电池电量。
例如,Arduino串行和 USB 板使用 7805 类型的电源调节器,当 Atmega IC 处于空闲模式时需要 10 mA。将这些板置于睡眠状态将减少几 mA 的总功耗,但它仍然会很高”。
如果您使用自己的电源电路绕过低效稳压器,或者使用具有相当高效电源的电路板,例如 Arduino Pro,那么睡眠对于降低功率和延长电池寿命非常有益。使用某些锂离子电池时,甚至可以完全移除调节器。
但大多数时候,您不想直接在 Arduino Uno 上使用您糟糕的焊接技能,或者不想购买更节能的设备。如果这是您的情况,本教程适合您。
另一个问题是,即使您的 Arduino 处于睡眠状态,您的传感器可能仍处于活动状态,从而耗尽您的电池电量。因此,在太阳能充电电池中添加了一个定时器电路,它只为 Arduino 供电几秒钟,然后再次将其关闭以节省电量。它适用于您的微控制器仅用于读取某些传感器、传输或保存数据以及返回休眠几分钟的应用。
此处描述的电路仍在测试中,未对所用组件进行彻底分析(模型二极管、晶体管和电阻值)。我打算稍后将此电路变成用于 Arduino Uno 的电池供电的太阳能充电板,但现在我仍在尝试和出错。因此,请随时发表评论并关注此项目,并自担风险使用它!
第 1 步:材料
您将需要以下组件来构建此太阳能供电电路:
Arduino Uno
小面包板
5V 升压器
锂电池充电器(TP4056)
6V太阳能电池
18560锂电池
电池座
1N4004 二极管 (x2)
555集成电路
2N3904 三极管(x2)
1 兆欧电阻 (x2)
100 kohm 电阻器 (x3)
10 kohm 电阻 (x1)
100 uF 电解电容器 (x2)
10 nF 陶瓷电容器 (x1)
5V 单刀双掷继电器
跳线
USB电缆
第 2 步:组装太阳能电池充电器
首先,您必须组装太阳能电池充电器电路。这使用来自一些太阳能电池的能量为电池充电,并将其电压提高到 Arduino Uno 使用的 5V。
太阳能电池连接到锂电池充电器(TP4056)的输入端,其输出连接到18560锂电池。5V 升压器也连接到电池,用于将 3.7V dc 转换为 5V dc。您可以检查图片中组件之间的连接。
一些引脚焊接到两个模块(TP4056 和升压器)的底部,以便更容易地连接到面包板。如果你不使用面包板,你可以用电线连接组件并焊接它们。
此时,您可能已经为 Arduino Uno 供电,将其连接到 booster 的 USB 连接器,您的 Arduino 将一直工作到电池耗尽。当阳光充足时,电池会自动开始充电。
请注意,TP4056 输入被限制在 4.5 和 5.5V 之间。在这个电路中,太阳能电池板和电池充电器之间没有电压限制器。可能会使用齐纳二极管来限制电压并保护您的电路。
根据您的功耗,您的电池会快速放电。如果是这种情况,请执行下一步。
第 3 步:定时器电路
有很多项目涉及 Arduinos 和一堆传感器。在大多数情况下,Arduino 会定期读取传感器并在内部存储读数或使用 Wi-Fi、蓝牙、以太网等传输它们的值。。。。。。之后,它通常进入空闲状态,直到到达下一个采样时间。
在这段空闲时间里,您可能会让 Arduino 进入睡眠状态,但这不会节省很多电量。尽管微处理器降低了其功耗,但稳压器和其他外围设备(例如您的传感器和通信模块)仍在工作,消耗了大部分电力。
此处提出的替代方案是使用外部定时器电路,该电路周期性地打开/关闭电源。当它打开时,Arduino 将执行其设置、读取传感器并保存或传输数据。所有这一切都在几秒钟内完成。之后,电路将切断电源几分钟,然后重新启动该过程。
在关闭状态期间,定时器电路仅消耗几毫安。
非稳态模式下的 555 定时器电路旨在控制 Arduino 及其外围设备何时开启/关闭。在非稳态电路中,输出电压在 Vcc (+5V)(高态)和 GND (0V)(低态)之间连续交替。该输出用于驱动继电器,该继电器将定期切断 Arduino 的电源。
通过选择 R1、R2 和 C1 的值,可以确定周期(ON/OFF 周期重复所需的时间长度)和占空比(输出打开的时间百分比)。增加 C1 将增加周期。增加 R1 会增加高电平时间 (T1),但不会影响低电平时间 (T0)。增加 R2 将增加高电平时间 (T1),增加低电平时间 (T0) 并降低占空比。
这种电路的最小占空比为 50%。这意味着,在最好的情况下,非稳态只会在一半的时间内切断电路电源,这还不够。因此决定在定时器的输出端添加一个简单的逻辑反相器(TQ1 和 R4)。这样,将选择 R1、R2 和 C1 的值,使占空比约为 90%(在逻辑反相器之前)。逆变器后,只有 10% 的时间输出为 ON。该反向输出用于驱动另一个晶体管 (TQ2),该晶体管用于驱动 5V 继电器 (K1),最终切断 Arduino 及其外围设备的电源。
在第一次模拟中使用了任意值的电阻器和电容器,以验证电路的功耗。在关断状态期间,电路指示仅消耗 0.8 mA。当电路开启(短时间)时,它消耗大约 40 mA,这会添加到 Arduino(和其他外围设备)消耗的电流中。
很难测量实际值,但 Arduino Uno 通常消耗大约 52 mA。
考虑到这些值(关闭 5 分钟和开启 27 秒),具有睡眠模式的 Arduino 将消耗大约 36 mAh。如果使用定时开关电路,耗电量只有8毫安左右。功耗降低 77% 对我来说似乎很好。您还必须考虑其余电子设备(传感器和通信模块)以及升压器和电池充电器消耗的电流,以获得精确的电流值……
第 4 步:组装定时器电路
根据原理图组装定时器电路。
以下值可用于电阻器和电容器以实现 5 分钟关闭/27 秒开启时间:
R1 = 2 兆欧
R2 = 200 千欧
R4 = 10 欧姆
R5 = 10千欧姆
C1 = 200 uF
C2 = 10 nF
值得注意的是,我使用了 SPDT 继电器的常开 (NO) 输出。我意识到有些继电器只有常闭输出,虽然它们具有相同的封装,并且所有指示都相同。
另请注意,在图片中我使用了不同的值,因为我不想等待 5 分钟才能看到我的电路工作。
图为安装在面包板上的电路。我有一个输入(+5V/GND 来自升压器)和一个输出(+5V/GND 到 Arduino)。
为时间电路供电,将 Arduino 连接到它,看看它是否工作。您会不时听到继电器被启动的声音。
第 5 步:完成电路和测试
定时器电路工作后,将其输出连接到Arduino 5V和GND引脚。它看起来像图片中的那个。
Arduino 将每 5 分钟通电一次并保持 27 秒。您可以更改这些值,为之前描述的电阻器和电容器选择不同的值。
设计一个漂亮的外壳来保护你的电路,把它放在阳光下,看看它是否有效!
第 6 步:功耗和运行时间
我想对功耗和运行时间做一些考虑。
考虑5分钟OFF和27秒ON,电路+Arduino的功耗如下:
不带开关电路(使用睡眠模式):
平均电流 (Iavg) = (Ton*Ion + Toff*Ioff ) / (Ton +Toff)
吨(Arduino 处于活动状态)= 27 秒
离子 = 51.7 mA
Toff(arduino 关闭)= 5 分钟 = 300 秒
Ioff = 34.9 毫安
Iavg = 36.3 毫安
工作电压 (Vo) = 5V
平均功率 (Pavg) = Vo * Iavg = 5 * 36.3 = 181 mW
锂离子电池容量 = 3000 mAh
电池电压 = 3.7V
功率 =3.7 * 3000 = 11100 毫瓦时
电池寿命 = 11100/181 = 61 小时 = 2.5 天
带定时开关电路:
平均电流 (Iavg) = (Ton*Ion + Toff*Ioff ) / (Ton +Toff)
吨(arduino 处于活动状态)= 27 s
离子 = 92 mA
Toff(arduino 关闭)= 5 分钟 = 300 秒
Ioff = 0.8 毫安
Iavg = 8.2 毫安
工作电压 (Vo) = 5V
平均功率 (Pavg) = Vo * Iavg = 5 * 8.2 = 41 mW
锂离子电池容量 = 3000 mAh
电池电压 = 3.7V
功率 =3.7 * 3000 = 11100 毫瓦时
电池寿命 = 11100/41 = 270 小时 = 11 天
此处未考虑 TP4056 和升压器的功率损耗,这两种情况肯定会缩短电池寿命。
这里要注意的重要一点是,该定时器电路还将节省一些降低传感器功率的能量,而睡眠模式将继续降低微处理器的消耗。
-
充电电路
+关注
关注
32文章
243浏览量
53634 -
电池供电
+关注
关注
0文章
255浏览量
22150 -
Arduino
+关注
关注
188文章
6468浏览量
186954
发布评论请先 登录
相关推荐
评论