求一种基于51单片机的太阳能路灯控制系统设计方案

简介:太阳能路灯控制系统:51单片机练手项目,简单可复制。 带太阳能充电功能,oled显示, 白天根据光强判断开关灯晚上开灯,二级菜单可以设置时间日期。 太阳能充电:传统锂电池充电芯片tp4056,使用6v太阳能板,给3.7v18650电池充电。
经过资料显示 18650电池尽量不要让其电压低于2.7v,所以后级供电电路(5v升压电路)mt3608启动引脚en脚 连接了lm393制成的电压比较器。和电池电压比较,电池电压低于2.7v,mt3608启动脚拉低关断。
供电:使用升压芯片mt3608给单片机供电,让电池电压稳定在5.1v,来提供稳定电压。
#include reg52.h
#include oled.h
#include bmp.h
#include
#include ds1302.h
#include at24c02.h
sbit key_s1 = p3^2;//独立按键set
sbit key_s2 = p3^3;//独立按键ok
sbit light_in = p2^0;//光传感器输入端子
sbit light_out = p1^6;//亮灯指示灯
sbit spdt_out = p1^7;//继电器输出
//串口初始化
u8 light_flag=0,show_mode=0;
extern u8 temp[7];
//extern u8 temp_f[7];
void uartinit()
{
sm0 = 0; sm1 = 1;//串口工作方式1,8位uart波特率可变
tr1 = 1;//启动定时器1
tmod |= 0x20;//定时器1,工作模式2 8位自动重装
th1 = 0xfd;
tl1 = 0xfd;//设置比特率9600
}
void set_light(){
if(temp[2]>=6&&temp[2]<=23)
{if(light_in)
{
delay_ms(5);
if(light_in)
{light_flag=1;
light_out=1;
spdt_out=1;
}
}
else
{
light_flag=0;
light_out=0;
spdt_out=0;}
}
else {light_flag=1; light_out=1;spdt_out=1;}
}
int main(void)
{
u8 set_flag=0,set_ok=0,set_menu=0;
oled_init(); //初始化oled
oled_clear(); //oled清屏
//uartinit(); //串口初始化
read_time();
//ds1302init(); //ds1302初始化
oled_showstring(0,4,lightmode:,16);
if(light_flag){oled_showstring(80,4,open,16);}
else{oled_showstring(80,4,close,16);}
light_out=0;
spdt_out=0;
//delay_ms(200);
while(1)
{
if(key_s1 == 0)//判断set是否被按下
{
delay_ms(2);//按键消抖

汽车机油控制阀作用
用科技抗击疫情,人工智能发挥着什么作用
国产高端光刻胶新进展,KrF、ArF进一步突破!
“AI算力荒”解困的短、中、长策
Nvidia制定了清晰的AI战略,英特尔在AI芯片市场该如何反击?
求一种基于51单片机的太阳能路灯控制系统设计方案
飞行试验颤振数据实时监控系统
使用CNN进行2D路径规划
InfraScan推出下一代手持式颅内血肿检测器
乐天移动将推出一种安全的基于AI的身份验证系统
NFC天线的ESD解决方案
BC847CE6327HTSA1 原装现货
物联网快速发展,物联未来美好世界
上半年开出产能并不多,DRAM持续缺货涨价
手机屏蔽器电路图解
如何编写代码以捕获十六进制和十进制值的远程控制代码
面向电源电路的MLCC解决方案(输出电容器的最佳构成验证)
三星效仿苹果取消附送充电器,好事还是坏事?
智慧水产养殖传感器盘点
基于LAMP和MOSFET的Hi-Fi耳机放大器电路图