加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機的太陽能路燈控制系統(tǒng)

10/21 09:43
1800
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

簡介:太陽能路燈控制系統(tǒng)51單片機練手項目,簡單可復制。 帶太陽能充電功能,oled顯示, 白天根據(jù)光強判斷開關(guān)燈晚上開燈,二級菜單可以設(shè)置時間日期。 太陽能充電:傳統(tǒng)鋰電池電芯片TP4056,使用6V太陽能板,給3.7V18650電池充電。

經(jīng)過資料顯示 18650電池盡量不要讓其電壓低于2.7V,所以后級供電電路(5V升壓電路)MT3608啟動引腳EN腳 連接了LM393制成的電壓比較器。和電池電壓比較,電池電壓低于2.7v,MT3608啟動腳拉低關(guān)斷。

供電:使用升壓芯片MT3608給單片機供電,讓電池電壓穩(wěn)定在5.1V,來提供穩(wěn)定電壓。

#include "reg52.h"

#include "oled.h"

#include "bmp.h"

#include <stdio.h>

#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;//設(shè)置比特率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);//按鍵消抖

  • 有需要資料的可了解一下.docx

相關(guān)推薦

電子產(chǎn)業(yè)圖譜