基于STM32单片机太阳能电池板追日光跟踪系统设计
 发布时间 
 阅读量: 
 阅读量 
一.硬件方案
本设计方案采用了光电追踪技术,并通过步进电机驱动实现能量输送。该系统通过光电传感器检测入射光线强度的变化来发送反馈信号至微机处理器,在运行相应的程序后,在控制追踪机构的同时调节太阳能电池板的角度以追踪太阳位置。主要包含STM32单片机、两组光敏电阻、受控步进电机以及电源模块。
二.设计功能
(1)利用两个光敏电阻进行光照检测,并将它们安装在板子两端。若两电阻阻值相等,则表明阳光正照;若阻值不一致,则说明阳光未正对。随后进行步进电机的校准以实现正确角度的调整。
(2)已预先设置了一条光敏通道作为备用连接。该通道目前处于闲置状态。
三.设计原理图
(1)原理图如图:

(2)PCB图如下:

四.软件设计
主程序源码
    int main(void)
    { 
    	u16 adcx;
    	char midval;
    	delay_init();	    	 //延时函数初始化	  
    	uart_init(115200);	 	//串口初始化为115200
      TIM3_Int_Init(29,7199);//3ms  	 
    	LED_Init();		  		//初始化与LED连接的硬件接口
     	Adc_Init();		  		//ADC初始化	    
    	 
    	 while(1)//电机旋转在定时器中处理
    	{
    		  adcx=Get_Adc_Average(ADC_Channel_2,5);// PA2 AD转换
    //		voltA=(float)adcx*(3.3/4096)*2;		
    			adNum1=(char)((long)adcx*999/4096);	
    			delay_ms(5);
    			adcx=Get_Adc_Average(ADC_Channel_1,5);	// PA1
    			adNum2=(char)((long)adcx*999/4096);
    			if(adNum1>adNum2)//右侧光强
    			{
    				midval = adNum1-adNum2 ;
    				if(midval<10)	//左右光差不多时 停止转动
    				{
    					MOTOR_DIR =0;
    				}
    				else
    				{MOTOR_DIR = 2;}//正转
    			}
    			else		//左侧光强 
    			{
    				midval = adNum2-adNum1 ;
    				if(midval<10)		//左右光差不多时 停止转动
    				{
    					MOTOR_DIR =0;
    				}
    				else
    				{MOTOR_DIR = 1;}//反转
    			}
    	
    	}											    
    }
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读
        资料链接:https://pan.baidu.com/s/1IaZkBke5xCw333xBCI30tA?pwd=masi
提取码:masi
全部评论 (0)
 还没有任何评论哟~ 
