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

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

[复制链接]
STMCU小助手 发布时间:2022-5-11 13:48
一.硬件方案- o! [/ c* j! ~! ~  ^/ D
本设计采用光电跟踪的方法,利用步进电机驱动,由光电传感器根据入射光线的强弱变化产生反馈信号到微机处理器。微机处理器运行程序,通过对跟踪机构进行控制,调整太阳能电池板的角度实现对太阳的跟踪。
8 s# P: ^1 A% F6 ?$ Q& K# G7 D/ {主要由STM32单片机、2路光敏电阻、步进电机控制及电源组成;如图:
. N* b4 f3 M* M* m3 \1 I$ b& B, A
]H2}$P5K7OJZ~0G2A]Z(N%5.png 2 i; Y1 V. L9 h1 B! }" O6 V' V
' {% V% E. I3 ~4 K3 s( |5 c- e  Q
二.设计功能) [1 m$ ?9 T. n- y0 ?6 A
(1)通过2个光敏电阻来检测光照,光敏电阻放在板子的2端,如果两个光敏电阻的阻值相同,则说明阳光正对,如果两个光敏阻值不同 ,则说明阳光没有正对,则,步进电机调整板子正对。8 a) W; T) `2 G" {4 M8 Q
(2)预留一路光敏,属于预留未使用。+ }- `2 H: L) `' C
& x0 p7 z8 r; n5 n% |
三.设计原理图
( C7 Y* G) k2 Y% z9 ?6 c' d, i(1)原理图主要采用AD软件进行设计,如图:" E+ Y% f: E) w" ?
1 R& W- v2 Q8 E; M% m& O% _
%5I`3)%_N_L3~9$LGDOK1QR.png ! a& V. W& v9 n1 |  K" a

3 H) B" t% C4 U8 R  L3 {: W% X(2)PCB图如下:# e/ e; V: ^/ w$ G" q

3 Y3 Z# z  S+ `4 k, J' Q. |# S 3~Z0(W(3~(QWRZT$[S7C6.png
, U6 h( Q, z, L4 I4 ~9 H. R; w! O9 A9 {: S! g3 R, U
四.软件设计; W/ f7 _' A' `0 ^1 Y' {% D
(1)程序流程图/ u6 n* s! T( N' {1 C5 a
9 Z) Q& G! R2 o; j0 }
F~J4SH~RE%BU8TIYB~_ZP8F.png
% Y5 K- o# j( ^1 u- _$ U% F& M! y7 Z
(2)主程序源码
: ^# T: P& X0 B
  K' w) m  K+ o: O8 P3 c
  1. 4 ]8 k2 a* |3 a2 ^
  2. int main(void)8 l6 E* c5 s* }8 i7 }: ]( C' J
  3. { 8 j9 X, m) S& q9 u5 j
  4.         u16 adcx;
    ! P8 l6 W. S: `
  5.         char midval;
    ! O5 Q3 f9 T' b$ ~; W
  6.         delay_init();                     //延时函数初始化         
      o2 y) J% a8 r2 G6 ?" p5 {7 D
  7.         uart_init(115200);                 //串口初始化为115200
    1 t; X1 l! o7 b$ v# Y
  8.   TIM3_Int_Init(29,7199);//3ms           ) u* k' Z# ?. ?7 w1 A% B
  9.         LED_Init();                                  //初始化与LED连接的硬件接口
    6 J) {, D* D8 s3 y9 N/ Z7 C2 Z
  10.          Adc_Init();                                  //ADC初始化            
    4 \7 M' ~  F( j" n; Q! Z
  11.          
    " g' A+ K- D( g0 Y! m0 o# l
  12.          while(1)//电机旋转在定时器中处理$ G2 Z$ e8 M/ w# L9 e
  13.         {
    8 W0 w4 I; r) X" x, @2 ]* v
  14.                   adcx=Get_Adc_Average(ADC_Channel_2,5);// PA2 AD转换- e7 p8 Z% B8 Q% l0 B! K
  15. //                voltA=(float)adcx*(3.3/4096)*2;                # a3 w6 \4 E+ h5 d+ Q( F5 x6 D
  16.                         adNum1=(char)((long)adcx*999/4096);        * @5 s, e9 R9 N  N. t
  17.                         delay_ms(5);
    ( |- l. L9 ?' }  H( S; ?
  18.                         adcx=Get_Adc_Average(ADC_Channel_1,5);        // PA1
    ! ~3 w$ D& o2 Q9 c: f- u
  19.                         adNum2=(char)((long)adcx*999/4096);  c' n  e& J( Q# r' J; I/ {
  20.                         if(adNum1>adNum2)//右侧光强" A4 a7 J; c) a4 V( o
  21.                         {
    - W* O) `0 \. |. b, Y5 J
  22.                                 midval = adNum1-adNum2 ;9 w$ g6 O5 c5 p- y/ k
  23.                                 if(midval<10)        //左右光差不多时 停止转动6 ]. ]& X1 y1 |: b4 m. C
  24.                                 {+ F3 q5 M  b% T- I5 V: ]8 H
  25.                                         MOTOR_DIR =0;
    ( R8 Y( G5 ?% U' z' f7 i
  26.                                 }$ M2 }$ C" r2 ]! G0 c9 p
  27.                                 else
    5 z9 u, [) X$ k5 f4 X1 w
  28.                                 {MOTOR_DIR = 2;}//正转6 h- h' [8 P: \& `9 }2 s
  29.                         }
    0 j; _  i% P7 t' W  {: c
  30.                         else                //左侧光强
    ; q  ]4 g- c* n6 d
  31.                         {
    - J/ X% A4 y& W0 J/ g, B. K
  32.                                 midval = adNum2-adNum1 ;
    $ \$ a+ _' A0 z! o' T: R4 |9 _
  33.                                 if(midval<10)                //左右光差不多时 停止转动
    , ]; B# t; \8 a6 G4 t0 q
  34.                                 {9 q, n3 f' L- o3 U* K9 [0 ~
  35.                                         MOTOR_DIR =0;+ W5 \# p% s' ]7 s
  36.                                 }
    " [5 e5 e+ b, z! R# m5 K; D
  37.                                 else
    & z& V% {2 g- I+ r( `
  38.                                 {MOTOR_DIR = 1;}//反转
    ' M2 A: y' s. C/ k
  39.                         }6 H* z) f' D+ S9 U3 h
  40.         
    ! u; s/ x( p  P% N
  41.         }                                                                                            
    : f$ o  D) U9 K0 E
  42. }/ r& [% P# L# R, s5 |
复制代码
6 `; k9 y% F4 [9 j
9 J8 X: c5 T. A1 c; Z2 J
. a) C4 }, X* D
收藏 评论0 发布时间:2022-5-11 13:48

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版