通过光敏电阻采集信号经电压比较器送给51单片机,单片机输出信号通过uln2003驱动步进电机,求C程序啊!

通过光敏电阻采集信号经电压比较器送给51单片机,单片机输出信号通过uln2003驱动步进电机,求C程序啊!,第1张

郑重声明:不写代码,只提思路。

【0】前提

假设安装地理位置纬度值通过安装过程来调节,追踪装置只需跟随日出日落。单只光敏检测到极值点附近,作为起始位置。当两只光敏感应到相同光强时,视为中心正对太阳。此后控制电机保持两只光敏感应到相同光强。

【1】电路设计

1、通过至少两只光敏电阻双电源供电差分放大电路完成光的位置识别A,电阻应该是安装在追踪装置迎光球面上,哗唯它们的感应面夹角10~20度,两个光敏电阻中心连接线与穗芦拆追踪装置感应平面平行。其中一路电阻放大完成光强极值检测B。经过双极性ADC或多路比较器上拉送单片机检测。

2、步进电机正反转控制电路。根据实际电机接口要求完成2003控制办法。

3、12864,注意背光调节。总线或IO方式连接到单片机。

4、增加启停、复位等必要的按键。

【2】程序设计

1、完成12864的底层接口程序,根据要求编写相关应用程序。

2、根据电机正反转时序要求,设计正反转接口程序。换算角度和脉冲个数关系。

3、首次开机,用B值遍历360度,找到向阳的180度限位。也猜枣可程序锁定左右限位。根据极值锁定到太阳当前所在位置。

4、利用电路A,控制步进电机逻辑是始终保持A差分放大输出为0。

声光延时开关知道吧缺裤盯,可以参考那个电路做前级,输出高低电平给单片机驱动电路控制电机。

如果单片机带AD就更简单了,直接采光敏电阻上的电压,超过阀值就控制电机纯并动作。

电机用4相5线的好控制正反转,一片2003就能驱动;2相4线的话一般用L298驱动;

程序没什么难的,把伏和思路方法想通了相信你一天就能搞定。 动手做出实物才是耗时耗力的难点。

//******************adc0832****************************// sbit CS=P1^0//使能。 sbit CLK=P1^1//时钟 sbit Do=P1^2// 数据输出锋竖 sbit Di=P1^2//数据输入 unsigned char CH=0x02

//通道的选择:0x02就是单通道0;0x03就是单通道1; //0x00就是双通道ch0=“+”; ch0=“-” //0x01就是双通道ch0=“-”; ch0=“+”

//*****************************************************// unsigned char ADconv(void) {unsigned char i

unsigned int data_f=0,data_c=0Di=1CS=1_nop_() CS=0

Di=1//芯片使能之前的初始化。第一个下降沿 CLK=1_nop_()_nop_()

/****************************************/ CLK=0// 确定通道模式、第2个下降沿 _nop_()_nop_()CLK=1

Di=(bit)(0x02&CH)//设定通道初始化 _nop_()CLK=0_nop_()_nop_() CLK=1

Di=(bit)(0x01&CH)//设定通道初始化 .第3个下降沿 _nop_()

_nop_()

CLK=0//AD转化的初始化完成。 Di=1 CLK=1_nop_()_nop_() CLK=0_nop_() CLK=1

for(i=8i>0i--)//得到一个斗野正常排序的8位数空基喊据 {

data_f|=Dodata_f<<=1 CLK=1_nop_()_nop_() CLK=0_nop_() }

for(i=8i>0i--)//得到一个反序排列的8位数据 {

data_c<<=1data_c|=Do_nop_()CLK=1_nop_()_nop_()CLK=0_nop_()} CLK=0_nop_()

_nop_()CLK=1_nop_()_nop_()CLK=0_nop_()_nop_()CLK=1_nop_()CS=1_nop_()_nop_()return data_f}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12515139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存