智能追光锂电充电系统设计
阻对环境的敏感性,导致环境中的散光造成的同一规格的光敏电阻在相同照度下电阻值不同。为此,在每个光敏电阻前加黑色筒状遮体,使光敏电阻的基准电阻值基本相同,为检测光源时三者电阻值的比较有统一标准,提高光源检测的精确度。
采集的电压值为模拟量,提高了光源检测的空间精度,模拟量亦可以作比较,赋相应的比例系数、微分系数代入舵机控制软件模块。光敏电阻检测光源电路图如图17所示。
在实际使用中发现,当出现外界干扰信号,供电电源的电压不足等情况时,会造成舵机抖动,所以我们采用独立的单片机和独立的电源完成追
光,避免了信号干扰和电压不足产生的抖动,同时,也避免了因舵机“抢电”造成的其他模块电压不稳定的问题。
独立电源来自锂电池,通过PT1301 IC芯片升压后供舵机使用,并且添加负载指示灯(蓝色)和锂电池电压过低报警指示灯(黄色)。详细资料请参见附录二。
其中,主要程序如下:
#define steer_center 60
#define right_limit 100
#define left_limit 20
#define KP 10 //比例系数
sbit pwm=P3^7;
uchar rg1,rg2,rg3;
uchar last_pwm_value_init; //上一次舵机输出值初始化
uchar control_pwm; //舵机PWM输出值
uchar last_control_pwm; //上一次舵机PWM输出值
void get_analog() //采集三路光敏电阻采光系统中的电压值
{
rg1=GetADCResult(0);
rg2=GetADCResult(1);
rg3=GetADCResult(2);
}
uchar analog_analyse()
{
get_analog();
if(last_pwm_value_init==0)
{
last_control_pwm=steer_center;
last_pwm_value_init=1; //初始化完成
}
if(rg2-rg1>0rg3>=rg2)
control_pwm=last_control_pwm-(rg2-rg1)*KP/80;
else if(rg2-rg3>0rg1>=rg2)
control_pwm=last_control_pwm+(rg2-rg3)*KP/80;
else if(rg1-rg2>0rg3-rg2>0)
{
if(rg280)
{
control_pwm=last_control_pwm;
}
//else //control_pwm=last_control_pwm+(rg1-rg2)*8/80-(rg3-rg2)*8/80; //也进行角度调节
}
else
control_pwm=steer_center;
if(control_pwm=left_limit)
control_pwm=left_limit;
else if(control_pwm>=right_limit)
control_pwm=right_limit;
last_control_pwm=control_pwm; //保存上一次舵机输出值
return control_pwm;}
void main()
{
uchar PWM;
InitADC(); //AD初始化
Init_PCA(); //PCA扩展定时器初始化
while(1)
{
PWM=analog_analyse();
jd=PWM;
Delay(12);
}
}
void PCA_ISR()interrupt 7
{
CCF1=0;
CCAP1L=value;
CCAP1H=value>>8;
value+=25;
if(cnt = jd) //判断0.025ms次数是否小于角度标识jd=20-100
pwm=1; //小于,PWM输出高电平
else
pwm=0; //大于则输出低电平
if (cnt>=800)
cnt=0;
else
cnt++; //0.025ms次数加1 ,次数始终保持为800 即保持周期为20ms
}
(8)主控单元
方案一:采用AVR 单片机 ,AVR单片机的I/O口是真正的I/O口,能正确反映I/O口输入/输出的真实情况。工业级产品,具有大电流(灌电流)10~40 mA,可直接驱动可控硅SCR或继电器,节省了外围驱动器件。
AVR单片机内带模拟比较器,I/O口可用作A/D转换,可组成廉价的A/D转换器。ATmega48/8/16等器件具有8路10位A/D。
部分AVR单片机可组成零外设元件单片机系统,使该类单片机无外加元器件即可工作,简单方便,成本又低。
图18 AVR MCU管脚分布
AVR单片机可重设启动复位,以提高单片机工作的可靠性。有看门狗定时器实行安全保护,可防止程序走乱(飞),提高了产品的抗干扰能力。AVR MCU管脚分布如图18所示。
方案二:采用新一代增强型8051单片机STC12C5A60S2,此单片机具有两路PWM/PCA功能;8路10位A/D采集,转换速度25万次/秒;双串口;内部集成MAX810专用复位电路;具有60K的用户程序空间;内部集成掉电检测电路;可扩展为4个16位定时器;7路外部中断;工作频率范围为0-35MHZ,相当于普通8051的0-420MHZ;指令代码完全兼容传统的8051单片机。
综上两种方案,因所需的A/D检测通道较多,我们选用方案二中的STC12C5A60S2单片机作为主控芯片。
其管脚排列如图19所示。
图19 STC12C5A60S2管脚排列
单片机的时钟电路和复位电路分别如图20和图21所示。
时钟电路:
图20 时钟电路
复位电路:
图21复位电路
此外,系统需要与上位机进行通信,采用MAX232做电平转换,以使单片机的TTL电平和RS232协议的电平相同。
具体电路如图22所示。
图22 MAX232转串口 图23 RC滤波
在使用A/D功能时,为消除信号干扰,在P1口设计RC滤波电路,如图23所示。
4、软件流程
(1)充电管理
在
智能追光 太阳能 CN3063 锂电池充电 AVR单片机 相关文章:
- 嵌入式碟式太阳能热发电控制器研制与应用(06-28)
- 太阳能光伏逆变器选用需遵循正确方法(12-09)
- 现有光伏和太阳能并网系统的电池后备电源选项(12-09)
- 空气能热水器和太阳能热水器对比浅析(12-09)
- 浅析太阳能逆变器的功能以及分类(12-09)
- 太阳能电池组件功率计算(12-09)