如何利用倾斜传感器设计一个太阳能探测器

描述

  该探测器可通过给定方向上的光强度评估太阳能的可能大小,以有效地为电池充电。

  背景

  为了用太阳能电池板为电池充电以在我的家庭办公室中运行一些设备,我根据我的预测将太阳能电池板放置在可能的最佳位置,而没有收集可靠的数据。因此,我思考了一种廉价且易于使用的机制,以根据给定方向的光强度确定太阳能电池板充电的理想位置。由于太阳能电池板产生的能量与太阳辐射量密切相关,因此我能够使用此设备更高效、更可持续地为电池充电。因此,我使用光强度值作为替代值来近似计算太阳能的大小。您可以在下面查看我用来计算太阳能的公式。

  在运行代码以计算由 10 毫米光敏电阻收集的光强度值的太阳能后,我对电池和太阳能电池板进行了实验,以确定太阳能充电性能水平的阈值:低、中、高。而且,为了显示性能水平,我为每个方向使用了不同的 LED 颜色——红色(低)、黄色(中等)、绿色(高)。

  毫不奇怪,将设备垂直放置以准确检测光强度至关重要,因此我使用了倾斜传感器(水银传感器)来检查设备是否移动到倾斜位置。而且,为了通知用户,当设备移动到倾斜位置时,我在设备上添加了一个蜂鸣器。

  在面包板上完成设计并测试代码后,我设计了一个具有独特圆形形状的 PCB(带倾斜传感器的光强度和太阳能探测器),以创建一个支持四个方向的灵活且易于使用的设备。

探测器

  第 1 步:设计和焊接带有倾斜传感器 PCB 的光强和太阳能探测器

探测器

  首先,通过使用烙铁,我连接了接头、220Ω 电阻、1K 电阻、10mm 光敏电阻、电源插孔、5mm 红色 LED、5mm 黄色 LED、5mm 绿色 LED、蜂鸣器和倾斜传感器(水银传感器)。

  PCB上的元件清单:

  A1(Arduino Nano 接头)

  P1、P2、P3、P4(10mm 光敏电阻)

  蜂鸣器(蜂鸣器)

  倾斜传感器(倾斜传感器)

  R(5mm 红色 LED)

  Y(5mm 黄色 LED)

  G(5mm 绿色 LED)

  R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12、R13(220Ω电阻)

  R14、R15、R16、R17、R18(1K 电阻)

  J1(电源插孔)

探测器

探测器

  第 2 步:大约计算太阳能

  [ E = A * r * H * PR ]是我用来近似计算太阳能量级的公式,其中:

  A是太阳能电池板的面积,

  r是效率,

  H是平均太阳辐射,

  PR为性能比或系数(一般为0.75)。

  // Define the solar panel (SP) specifications which differ amid different brands. So, change these variables with that of your solar panel.

  #define SP_area 0.0088

  #define SP_efficiency 6.2

  #define SP_coefficient 0.75

  float Solar_Panel_Energy(float Area, float Efficiency, int Radiation, float Coefficient){

  // Calculate the possible magnitude of solar energy by using the light intensity values as a substitute for radiation.

  float Energy = Area * Efficiency * Radiation * Coefficient;

  return Energy;

  }

  不要忘记更改太阳能电池板规格——面积、效率和性能比——这可能因太阳能电池板品牌而异。

  为了计算太阳能的可能大小,我在公式中使用光强度值代替太阳辐射。

  当然,这种方法并不提供准确的太阳能值,而是一个指标,用于确定用于检测给定方向上的太阳能充电性能的阈值(低、中、高)。

  注意:我通过使用我的太阳能电池板进行测试来确定每个级别的阈值:我观察到在给定的光强度和估计的太阳能值下经过的时间来为 3.7V 锂聚合物电池充满电。

  第 3 步:对 Arduino Nano 进行编程

  为每个方向定义指示器(红色、黄色、绿色)。

  为每个方向定义 LDR 引脚以收集光强度值。

  定义蜂鸣器引脚和倾斜传感器引脚。

  定义不同品牌的太阳能电池板 (SP) 规格。所以,用你的太阳能电池板改变这些变量。

  通过实验定义阈值。

  在get_Light_Intensity()函数中,从光敏电阻收集光强度数据。

  在Tilt()函数中,如果设备移动到倾斜位置,则会收到通知。

  为每个方向启动阈值检测(低、中、高)。

  在Indicate_Thresholds()函数中:

  打印所选方向及其太阳能值。

  根据每个方向的太阳能值调整阈值指示灯 (LED)。

探测器

探测器

  连接和调整

  // Connections

  // Arduino Nano :

  // direction_1_LOW

  // D4 ---------------------------

  // direction_1_MODERATE

  // D3 ---------------------------

  // direction_1_HIGH

  // D2 ---------------------------

  // direction_2_LOW

  // D7 ---------------------------

  // direction_2_MODERATE

  // D6 ---------------------------

  // direction_2_HIGH

  // D5 ---------------------------

  // direction_3_LOW

  // D8 ---------------------------

  // direction_3_MODERATE

  // D9 ---------------------------

  // direction_3_HIGH

  // D10 ---------------------------

  // direction_4_LOW

  // D13 ---------------------------

  // direction_4_MODERATE

  // A4 ---------------------------

  // direction_4_HIGH

  // A5 ---------------------------

  // Buzzer

  // D11 ---------------------------

  // Tilt Sensor

  // D12 ---------------------------

  // direction_1_LDR

  // A0 ---------------------------

  // direction_2_LDR

  // A1 ---------------------------

  // direction_3_LDR

  // A2 ---------------------------

  // direction_4_LDR

  // A3 ---------------------------

  完成并将代码上传到 Arduino Nano 后,将其连接到板上。

探测器

  特征

  1) 在串行监视器上显示每个方向的估计太阳能量

探测器

  2)对于每个方向,通过根据太阳能阈值(级别)调整的指标观察太阳能充电的性能:

  红色 - 低

  黄色 - 中等

  绿色 - 高

探测器

  3) 最后如果设备移动到倾斜位置以使用垂直光束更有效地为电池充电,则会收到通知。

探测器

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分