1. 程式人生 > 實用技巧 >410【畢設課設】基於51微控制器太陽能鋰電池無線藍芽APP光照控制路燈系統

410【畢設課設】基於51微控制器太陽能鋰電池無線藍芽APP光照控制路燈系統

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

51微控制器太陽能鋰電池無線藍芽APP光照控制路燈122
本系統由STC89C52微控制器、太陽能電池板、鋰電池充放電保護、
升壓模組、藍芽模組、高亮LED燈、A/D取樣PCF8591、光照檢測。
1、通過太陽能給鋰電池充電,具有充電保護。鋰電池通過升壓升壓到
5V給整個微控制器系統供電;
2、上電預設自動狀態,通過光敏電阻檢測光照,進而控制燈的亮度,
天越黑,燈越亮;分0-4檔。
3、可以通過手機APP,通過藍芽控制燈的亮滅,點選“關閉”將關閉
Led;點選“開啟”將根據光照情況控制led燈即步驟2的作用。
4、微控制器檢測太陽能電池板的電壓,並將太陽能是否在給電池充電狀態
傳送給手機,手機APP相應狀態顯示。

藍芽傳送控制命令:
*C# //關閉led燈
*O# //開啟led燈 根據光照情況控制led燈

裝置傳送資料:
例子:*BYD1# //BY電池在充電 BN電池不在充電 D表示檔位1代表1檔
例子:*BND2# //BY電池在充電 BN電池不在充電 2檔


unsigned char i ;

unsigned char dis0[15]; //串列埠傳送內容

void Init_Timer0(void);//函式宣告
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);

void main (void)
{
	Init_Timer0();        //定時器0初始化
	
	UART_Init();		//串列埠初始化

	ledLigh = 0;
	DelayMs(200);          //延時有助於穩定	
	ledLigh=1;
	while(1)         //主迴圈
	{
		lighVolt=(float)ReadADC(0)*5.15/255;		//計算出電壓 *3表示分壓值//**All notes can be deleted and modified**//
		DelayMs(10);          //延時有助於穩定
		sunVolt=(float)ReadADC(1)*5.15*2/255;		//計算出電流
		if(ledCtrFlag == 0)
		{
			if(lighVolt<0.5)			   //電壓對比確定亮滅程度
			{pwmLed = 1;}
			else if((lighVolt<1.8))
			{pwmLed = 2;}