简介:太阳能路灯控制系统: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);//按键消抖


电芯、电池模组和电池包三者有什么区别?如...
时间:2026-03-22
电池怎么做绝缘处理?电池模组绝缘片起到什...
时间:2026-03-22
电池模组绝缘片的制造工艺有哪些,它们对电...
时间:2026-03-22
亿纬锂能麟驹系列电动两轮车电池首批发货仪...
时间:2026-03-22
在电池模组中,除了绝缘片,还有哪些措施可...
时间:2026-03-22
深度解读广汽全固态电池技术
时间:2026-03-22
广汽科技全固态电池与无图纯视觉智驾引领智...
时间:2026-03-22
天合光能新一代柔性储能电池舱Elementa 2真...
时间:2026-03-22
锂电池和超级电容器哪个更耐用
时间:2026-03-22
“固态电池”和“半固态电池”是水火不容吗...
时间:2026-03-22
住宅小区负荷与变压器容量的选择技巧
时间:2026-03-06
光伏控制器简介
时间:2026-03-06
石英灯电子变压器电路原理
时间:2026-03-06
变压器并列运行的条件浅析
时间:2026-03-06
玻璃釉电容器的结构与特点
时间:2026-03-05
电阻的标称阻值和允许偏差
时间:2026-03-05
三极管的主要参数
时间:2026-03-07
HTCC:半导体封装的理想方式
时间:2026-03-06
半导体三极管的技术参数
时间:2026-03-07
碳膜电阻如何识别_金属膜电阻器和碳膜电阻器...
时间:2026-03-05