【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}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)