你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】基于STM32单片机太阳能电池板追日光跟踪系统设计

[复制链接]
STMCU小助手 发布时间:2022-5-11 13:48
一.硬件方案
  d' P0 l: ^# A% U8 T1 T' n9 E本设计采用光电跟踪的方法,利用步进电机驱动,由光电传感器根据入射光线的强弱变化产生反馈信号到微机处理器。微机处理器运行程序,通过对跟踪机构进行控制,调整太阳能电池板的角度实现对太阳的跟踪。: m$ ~5 g1 S8 \& l0 e
主要由STM32单片机、2路光敏电阻、步进电机控制及电源组成;如图:7 w+ t$ I: E( }9 h- g5 D

6 L% x0 f2 N, S6 O$ i* D. w ]H2}$P5K7OJZ~0G2A]Z(N%5.png
/ q, I* R8 {# p# N  v+ x- c. P/ y# h4 D! O, Y' R
二.设计功能8 i7 ~) V/ g# @$ [7 g5 Y
(1)通过2个光敏电阻来检测光照,光敏电阻放在板子的2端,如果两个光敏电阻的阻值相同,则说明阳光正对,如果两个光敏阻值不同 ,则说明阳光没有正对,则,步进电机调整板子正对。
3 r) d- @6 J. v(2)预留一路光敏,属于预留未使用。. y% f9 L$ C+ r( D/ }! x
7 u% q- P; e- Q1 v4 Z
三.设计原理图
) ~7 n. Y7 u& W0 K0 S+ R1 h(1)原理图主要采用AD软件进行设计,如图:
" j+ X. u" ?4 n6 j8 }4 \- W! }+ `- Y% c# h
%5I`3)%_N_L3~9$LGDOK1QR.png 4 e- o/ ?/ M& }$ N3 Y1 ^# K
' z  m- h- U9 ]. u, k
(2)PCB图如下:
" C8 U: J6 U8 H5 y4 c+ P- X/ D+ H6 G# ~& X5 F( O
3~Z0(W(3~(QWRZT$[S7C6.png 1 e  N5 a- ^  [, X! D

( ]4 L) [$ H4 p$ A) B四.软件设计" R1 n8 P/ l% t
(1)程序流程图
/ }3 `$ ]2 k# ]. B0 |* B% n6 t4 a# T8 O# A4 `8 \1 f
F~J4SH~RE%BU8TIYB~_ZP8F.png : Q5 r0 z" x7 C& e/ `1 M: j" o* L
( B9 P# Y+ e3 v1 {7 x. K
(2)主程序源码
) j6 c+ r1 @% @1 T/ X
$ N9 Q1 v# `! f! C. N3 {  {5 N

  1. 7 ?5 t/ s& t8 h2 L' w
  2. int main(void)! b, e3 a% m! G, S# Y0 d6 [6 a
  3. {
    0 s! d$ F% ?% B3 ?7 l3 r, i
  4.         u16 adcx;
    / g6 K# a$ R' U
  5.         char midval;- Q6 S& [4 j* ~' r/ o" R* j
  6.         delay_init();                     //延时函数初始化          / G1 s+ b* K, V* y' [3 [
  7.         uart_init(115200);                 //串口初始化为115200" W7 l  S% L* q/ r1 p
  8.   TIM3_Int_Init(29,7199);//3ms           6 |3 O8 Y: [! K7 T2 _
  9.         LED_Init();                                  //初始化与LED连接的硬件接口
    4 ]* N# X  O% `" u1 e
  10.          Adc_Init();                                  //ADC初始化            8 A1 B, [$ Z8 y" r
  11.          5 s" y% F' j$ l6 r; c& j; d
  12.          while(1)//电机旋转在定时器中处理; _) Y- D8 E  k# w# s
  13.         {
    + V- d9 b" |; ^7 N1 V* i
  14.                   adcx=Get_Adc_Average(ADC_Channel_2,5);// PA2 AD转换
    ; ]/ j3 z" Y/ _9 F5 `$ W/ n
  15. //                voltA=(float)adcx*(3.3/4096)*2;                ! D( s8 j( S  O1 F$ r
  16.                         adNum1=(char)((long)adcx*999/4096);        : ]2 g% X6 B/ W: U7 D5 M2 z
  17.                         delay_ms(5);; e% U/ i: g( \9 J
  18.                         adcx=Get_Adc_Average(ADC_Channel_1,5);        // PA1
    $ W0 D8 |) Q) i4 u( Q
  19.                         adNum2=(char)((long)adcx*999/4096);4 o2 J8 L" R( S) ~. k
  20.                         if(adNum1>adNum2)//右侧光强; d5 ~0 S! @8 s- q. q7 B: {
  21.                         {
    , G; K0 p& D7 U$ w5 ^/ L9 f! }3 \
  22.                                 midval = adNum1-adNum2 ;
    6 w* Z. _7 y, y# p& J6 p
  23.                                 if(midval<10)        //左右光差不多时 停止转动
    7 r' D6 U  ^  X# ~
  24.                                 {( f3 N0 `' t& v: G' k3 i
  25.                                         MOTOR_DIR =0;5 k' O: u9 w' x5 Q" i* W
  26.                                 }
    3 z( e4 Z& n# e2 ], u% X$ v
  27.                                 else# |8 ]$ r  w% `% u: I' k/ l( R7 s
  28.                                 {MOTOR_DIR = 2;}//正转3 R6 \: p0 c1 o; v- `1 C
  29.                         }+ A5 g6 ~/ A8 s' W' U/ g* w
  30.                         else                //左侧光强
    7 v2 R/ X; l( @& O$ I1 w" G- }. M2 m
  31.                         {3 Q7 M- u& C( e  F3 I7 b
  32.                                 midval = adNum2-adNum1 ;
    . U& k# I$ Z' S+ ^) f, j
  33.                                 if(midval<10)                //左右光差不多时 停止转动
    $ v* a) F3 o# t( N8 ~2 ?$ c
  34.                                 {
    . ~/ x* T% P+ r* j* \" K) ~
  35.                                         MOTOR_DIR =0;9 D, s" ~5 F# k/ ~0 B5 p
  36.                                 }
    9 v3 A& S" G$ m6 `" T
  37.                                 else- f, L0 C+ _  W# H, g
  38.                                 {MOTOR_DIR = 1;}//反转
    , a$ j& C, X3 e, G. l% M2 O- n
  39.                         }7 G5 m0 D% L& j4 f) a5 L* c- w
  40.         $ u# O: a* n) C) \5 h6 [. I1 r6 @# ]8 y
  41.         }                                                                                            
    : W1 l4 A2 c) D2 a+ X, A# r4 _/ |
  42. }
    * {, x$ U& v' O# Z$ \0 N
复制代码

# p  B' q: y+ g3 x
  T) K3 @, ]/ y( T
5 z. _. [+ O# e, |5 e; Q( ^6 ?3 _8 _
赞 收藏 评论0 发布时间:2022-5-11 13:48

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版