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

这篇具有很好参考价值的文章主要介绍了单片机设计_自动追光系统、光源跟踪系统(AT89C51 光敏电阻 步进电机)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

想要更多项目私wo!!!

一、电路设计

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

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

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

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

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

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

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

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

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

转动。

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

二、运行结果

单片机设计_自动追光系统、光源跟踪系统(AT89C51 光敏电阻 步进电机),单片机,单片机,嵌入式硬件,c语言,物联网

 文章来源地址https://www.toymoban.com/news/detail-670531.html

单片机设计_自动追光系统、光源跟踪系统(AT89C51 光敏电阻 步进电机),单片机,单片机,嵌入式硬件,c语言,物联网

 

三、部分代码

 

#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,"    ");
	}


}

 

 

到了这里,关于单片机设计_自动追光系统、光源跟踪系统(AT89C51 光敏电阻 步进电机)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于单片机的自动浇花系统设计

    摘要:快节奏的生活导致人们忙于工作而无暇顾及家中植物的及时浇水,影响了植物的生长发育, 也降低了其种植成功率。针对上述问题,该文设计了一种自动浇花系统,该系统能在无人环境下 根据土壤湿度情况自动启动,完成浇水动作,解决种植户的后顾之忧。该系统采

    2024年02月22日
    浏览(34)
  • 基于单片机智能自动浇花系统设计

    ** 单片机设计介绍,基于单片机智能自动浇花系统设计   基于单片机的智能自动浇花系统是一种可以自动感知周围环境,并执行相应动作的系统。通过使用传感器检测土壤湿度和气温等指标,当土壤干燥或气温过高时,系统会自动打开水泵,并通过水管将水流到花盆中来进

    2024年02月04日
    浏览(34)
  • 基于单片机的自动停车收费系统的设计

    欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式   本课题对自动停车收费系统进行研究,介绍了基于STM32F103C6T6单片机的一种停车场的自动停车收费系统的设计。该基于STM32F103C6T6单片机完成的自动

    2024年01月17日
    浏览(33)
  • 基于单片机设计的自动门控制系统

    随着科技的不断发展,自动门成为公共场所、商业建筑和住宅社区等地的常见设施。自动门的出现使得进出门的操作更加便捷,提高了人们的生活质量和工作效率。为了实现自动门的开关控制,本项目基于单片机设计了一套自动门控制系统。 本项目的主控芯片选择了STC89C52,

    2024年02月02日
    浏览(48)
  • 【单片机毕业设计】【mcuclub-dz-177】基于32单片机的自动扶梯控制系统设计

    项目名:基于32单片机的自动扶梯控制系统设计 项目名:扶梯(实物) 项目编号:mcuclub-dz-177 单片机类型:STM32F103C8T6 具体功能: 1、通过MX1508驱动两个直流电机模拟上下扶梯(一个正转代表上行,一个反转代表下行) 2、每个扶梯都有两个红外对射管,进行人数计数,如果扶

    2024年02月21日
    浏览(56)
  • 单片机实验——水塔自动抽水系统设计(基于Proteus仿真)

    自来水供水是现代生活的一大特点,水塔作为储水装置是自来水系统必不可少的重要设施,让水塔保持一定的水量是自来水不断供的必要条件,本设计模拟自来水系统中水塔的自动抽水机制,设计分为控制系统和虚拟水塔两部分,参考电路如下: 虚拟水塔模拟水塔的功能,水

    2024年02月05日
    浏览(27)
  • 基于单片机的自动门系统-设计说明书

    资料查找方式: 特纳斯电子(电子校园网):搜索下面编号即可 T1552204C-LW 本论文基于单片机技术设计与实现了一款功能强大的自动门系统,主要用于提升门的安全性和便利性。系统充分利用红外线感应器和温度传感器,实现精准数据的收集和处理。同时,系统集成了内藏式

    2024年01月17日
    浏览(39)
  • 单片机毕业设计 stm32宠物自动喂食系统

    Hi,大家好,学长今天向大家介绍一个 单片机项目 基于stm32的宠物自动喂食系统 大家可用于 课程设计 或 毕业设计 为了解决主人不在家而无法正常对宠物进行饮水喂食, 导致宠物身体不健康这一情况, 为此学长设计了宠物自动饮水喂食器。 宠物自动饮水喂食器主要由单片

    2024年02月03日
    浏览(32)
  • 仿真设计|基于单片机的全自动洗衣机模拟系统

    目录 具体实现功能 设计介绍 51单片机简介 设计思路 设计内容 程序(Keil5) 仿真实现(protues8.7) 全部资料 模拟全自动洗衣机工作过程,以电机替代洗衣机电机。 可以显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间(洗衣程序可自定义,时间

    2024年03月13日
    浏览(57)
  • 【C51】基于51单片机的自动输液监控系统设计与实现

      随着科技进步,我国的医疗设施不断完善,逐渐达到现代化水平。在当今的医疗环境下,病患更关心自己是否能够及时进行有效的治疗,医护人员对患者进行输液过程的全程监控。医生治疗的效果明显提高,不仅节约大量的时间,同时能够接受大量需要治疗的患者。自动输

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包