单片机设计_自动追光系统、光源跟踪系统(AT89C51 光敏电阻 步进电机)

想要更多项目私wo!!!


一、电路设计

        51 单片机双轴自动追光系统主要由 STC89C52RC + 5516 光敏电阻 + ADC0832 + ULN2803 + 步进电机 + LCD1602 显示屏组成。

        1.通过子电路板的上、下、左、右四个光敏电阻来感受四个方向的光强,自

动寻找光强最强的方向。四个光敏电阻的分压电路将测得的光强转换为电信号,

再通过两个 ADC0832 转换为数字量,单片机对数据进行比较处理之后进行显示

并输出控制信号通过 ULN2803 芯片驱动步进电机转动。

        2.系统共设置有两个模式,自动模式与手动模式,可通过按键切换。

        3.自动模式下分为寻光与避光模式,寻光模式下系统会自动寻找光照最强的

地方,避光模式下系统会避开光照强烈的地方,可通过按键切换。

        4.手动模式下可通过上下左右四个按键(只在手动模式有效)来控制电机的

转动。

        5.LCD1602 液晶屏实时显示 ADC 芯片转换的光敏数值

二、运行结果

7e452666f9024584b4d0c91c294a1c74.png

 

92a8280335134b4b968f0cb7878b15c7.png

 


三、部分代码

 

#include <reg52.h>
#include "Delay.h"
#include "ADC0832.h"
#include "LCD1602.h"
#include "StepMotor.h"

#define uchar unsigned char	//ºê¶¨Òå
#define uint  unsigned int	//ºê¶¨Òå

#define Light_Sensty  3		 //¸Ð¹âÁéÃô¶È

sbit Key_Pattern = P3^4;	//ģʽÇл»
sbit Key_Blk_or_Lgt = P3^5;	//×Ô¶¯Ñ°/±Ü¹â
sbit Key_Up   	=	P3^0; 	//ÉÏ°´¼ü 
sbit Key_Down 	= 	P3^1; 	//Ï°´¼ü 
sbit Key_Left 	= 	P3^2; 	//×ó°´¼ü 
sbit Key_Right	= 	P3^3; 	//ÓÒ°´¼ü 

uchar Up_data,Down_data,Right_data,Left_data;//X,Y·½ÏòµÄ¹âÕÕÊýÖµ
bit flag_Blk_or_Lgt;	//ÓÃÓÚÇл»Ñ°ºÚ¡¢Ñ°¹â
bit flag_Auto_or_Hand;	//ÓÃÓÚÇл»×Ô¶¯¡¢ÊÖ¶¯


uchar code *DIS1=" Welcome to use ";
uchar code *DIS2=" Wait a jiff    ";
uchar code *DIS3="                ";
uchar code table[]={0,1,2,3,4,5,6,7,8,9};//ÏÔʾÊý×ÖÂë±í

/********************************************************************
* Ãû³Æ : void DataDisplay(void)
* ¹¦ÄÜ : »ñÈ¡¹âÕÕÊýÖµµÄ¸ö¡¢Ê®¡¢°ÙλµÄÊý 
* ÊäÈë : ÎÞ
* Êä³ö : ÎÞ
***********************************************************************/
typedef struct LIGHT 	 
{
	uchar bai1,shi1,ge1; //ÉÏÏÂ
	uchar bai2,shi2,ge2; //×óÓÒ
}LIGHT1;
LIGHT1 AD1,AD2;

void DisplayInit(void)
{
	L1602_string(1,1,DIS1);//¿ª»úÏÔʾ
   	L1602_string(2,1,DIS2);   
   	DelayMs(200);
   	L1602_char(2,13,'.');
   	DelayMs(200);
   	L1602_char(2,14,'.');
   	DelayMs(200);
   	L1602_char(2,15,'.');
   	DelayMs(300);  
   	L1602_string(1,1,"U:000 D:000 Auto");	//¿ª»úÏÔʾ
   	L1602_string(2,1,"L:000 R:000 Sun ");
}

/********************************************************************
* Ãû³Æ : void DataDisplay(void)
* ¹¦ÄÜ : ¹âÕÕÊýÖµÏÔʾ
* ÊäÈë : ÎÞ
* Êä³ö : ÎÞ
***********************************************************************/
void DataDisplay(void)
{
	uchar i;
	for(i=0;i<5;i++)
	{Up_data = Adc0832_Read_1(0);}Delayus(100); 	//»ñÈ¡ÉÏ·½µçѹֵ			   

	for(i=0;i<5;i++)
	{Down_data = Adc0832_Read_1(1);}Delayus(100); 	//»ñÈ¡Ï·½µçѹֵ			   

	for(i=0;i<5;i++)
	{Right_data = Adc0832_Read_2(0);}Delayus(100);	//»ñÈ¡ÓÒ·½µçѹֵ 		

	for(i=0;i<5;i++)
	{Left_data = Adc0832_Read_2(1);}Delayus(100);	//»ñÈ¡×ó·½µçѹֵ
	
	

	AD1.bai1 = Up_data/100%10;	  	//·ÖÀë°Ùλ
	AD1.shi1 = Up_data/10%10;	  	//·ÖÀëʮλ
	AD1.ge1  = Up_data%10;		  	//·ÖÀë¸öλ

	AD1.bai2 = Down_data/100%10;
	AD1.shi2 = Down_data/10%10;
	AD1.ge2  = Down_data%10;

	AD2.bai1 = Right_data/100%10;
	AD2.shi1 = Right_data/10%10;
	AD2.ge1  = Right_data%10;

	AD2.bai2 = Left_data/100%10;
	AD2.shi2 = Left_data/10%10;
	AD2.ge2  = Left_data%10;

	L1602_char(1,3,table[AD1.bai1]+0X30); //ÏÔʾ°Ùλ
	L1602_char(1,4,table[AD1.shi1]+0X30); //ÏÔʾʮλ
	L1602_char(1,5,table[AD1.ge1]+0X30);  //ÏÔʾ¸öλ
	DelayMs(5);							  //ÑÓʱ5ºÁÃë
	L1602_char(1,9,table[AD1.bai2]+0X30);
	L1602_char(1,10,table[AD1.shi2]+0X30);
	L1602_char(1,11,table[AD1.ge2]+0X30);
	DelayMs(5);
	L1602_char(2,3,table[AD2.bai1]+0X30);
	L1602_char(2,4,table[AD2.shi1]+0X30);
	L1602_char(2,5,table[AD2.ge1]+0X30);
	DelayMs(5);
	L1602_char(2,9,table[AD2.bai2]+0X30);
	L1602_char(2,10,table[AD2.shi2]+0X30);
	L1602_char(2,11,table[AD2.ge2]+0X30);
	DelayMs(5);

	if(flag_Auto_or_Hand)	 //×Ô¶¯Ä£Ê½Ê±ÏÔʾ
	{
		L1602_string(1,13,"Auto");
		if(flag_Blk_or_Lgt)
		{
			L1602_string(2,13,"Sun ");
		}
		else
		{
			L1602_string(2,13,"Dark");
		}
	}
	else				    //ÊÖ¶¯Ä£Ê½Ê±ÏÔʾ
	{
		L1602_string(1,13,"Hand");
		L1602_string(2,13,"    ");
	}


}

 

 

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 基于STC89C51单片机的太阳能板双轴自动追光系统的研究与设计: 太阳能电池板是将太阳能转化为电能的装置,但是由于太阳的角度和位置的变化,使得太阳能电池板的效率受到了一定的影响。为了最大限度地利用太阳能,设计了基于STC89C51单片机的太阳能板双轴自动追光系统。 本系统基于STC89C51单片机进行控制,通过红外传感器探测太阳的位置来实现精确的自动追踪。系统通过连接两个舵机来控制太阳能电池板的水平和垂直方向的旋转,确保电池板始终朝向太阳。 在系统设计中,首先需要引入红外传感器进行太阳位置的检测。红外传感器安装在太阳能电池板上方的支架上,它可以发射红外光并接收反射回来的红外光。通过比较接收到的红外信号和预设的阈值,可以判断出太阳的位置。 接着,使用STC89C51单片机对红外传感器的输出进行采样和处理。当太阳偏离预设位置时,单片机将通过PWM信号控制舵机的转动来调整太阳能电池板的角度,保证其始终朝向太阳。 同时,单片机还可以接收来自其他传感器的输入,如光强传感器可以实时检测太阳能电池板的光照强度,一旦光强低于一定阈值,系统可以根据预先设定的算法,调整太阳能电池板的角度以保持最大的太阳能转换效率。 最后,通过LCD显示模块,可以实时显示系统的工作状态和太阳能电池板的角度等信息,提供人机交互界面。 基于STC89C51单片机的太阳能板双轴自动追光系统的研究与设计将提高太阳能电池板的工作效率,实现对太阳能的最大化利用。同时,该系统还具备稳定性高、响应速度快等优点,具有广泛的应用前景。 ### 回答2: 基于STC89C51单片机的太阳能板双轴自动追光系统是一种利用光敏电阻感应太阳光角度变化的智能化控制系统。 该系统由太阳能板、光敏电阻、舵机和STC89C51单片机等组成。太阳能板通过光敏电阻感应到太阳的光线角度变化,并将信号输入到STC89C51单片机中。单片机通过接收到的信号,计算出太阳的位置,然后控制舵机实现太阳能板的自动转向。 在设计中,首先需要根据环境条件和需求选择合适的太阳能板和光敏电阻。然后,将光敏电阻单片机进行连接,通过模拟输入引脚接收光敏电阻的信号。 接下来,编写程序控制单片机进行信号处理和计算。通过读取光敏电阻的电压值,将其转换为太阳的角度。然后,根据太阳的当前位置和期望位置,计算出舵机需要旋转的角度。 最后,通过PWM信号控制舵机的转动,使太阳能板随着太阳的移动而自动调整位置。当太阳能板保持垂直于太阳光时,太阳能板具有最佳的能量捕捉效率。 这种基于STC89C51单片机的太阳能板双轴自动追光系统具有自动调节和高效能量收集的特点。它可以广泛应用于太阳能发电系统、太阳能热水器等领域,实现可持续能源的利用和节能环保。 ### 回答3: 基于STC89C51单片机的太阳能板双轴自动追光系统是一项研究与设计的项目,旨在利用太阳能板收集太阳能的效率,通过自动跟踪太阳的运动以最大化能源利用。 该系统设计包括以下主要模块:太阳能板、双轴追踪机构、光敏电阻、电机驱动电路以及STC89C51单片机控制模块。 首先,太阳能板是该系统的能量收集主要部件,其将太阳光转化为电能。太阳能板安装在双轴追踪机构上,具有水平和垂直两个轴,可以自动跟踪太阳的位置。 使用光敏电阻传感器监测环境光线强度,传感器会将环境光线强度的变化转化为电信号,传递给STC89C51单片机。 接下来,STC89C51单片机控制模块是该系统的核心,它通过接收光敏电阻传感器的信号,计算光线的方向和强度,并通过控制电机驱动电路实现太阳能板的自动跟踪。 在程序设计方面,STC89C51单片机会根据环境光线强度的变化计算出太阳的方位角和仰角,并与预设值进行比较,以确定太阳能板的转动方向和角度。然后,单片机控制电机驱动电路,通过改变电机的转速和方向,实现太阳能板的自动转动,保持其与太阳光的正交。 通过这样的设计,太阳能板双轴自动追光系统可以根据太阳的运动自动调整角度和方向,使太阳能板始终与太阳光保持正交,从而最大程度地收集太阳能,提高太阳能的利用效率。 总的来说,基于STC89C51单片机的太阳能板双轴自动追光系统是一种具有高效能源利用的智能控制系统,可以在太阳能应用领域具有潜在的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值