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

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

基于51單片機的智能嬰兒看護床設(shè)計

08/23 09:40
864
服務支持:
技術(shù)交流群

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

虛擬商品不可退

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

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
  • 方案介紹
    • 1、引言
    • 2、功能設(shè)計
    • 系統(tǒng)結(jié)構(gòu)框圖
    • 3、系統(tǒng)硬件設(shè)計
    • 4、系統(tǒng)軟件設(shè)計
    • 實物圖及PCB
    • 部分源碼
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

需要源碼及原理圖文件請私信?。。。?/p>

1、引言

人們對智能化的生活越來越向往,隨著時代的快速發(fā)展單片機在我們?nèi)粘I钪袘玫囊苍絹碓綇V泛。單片機完成了由模擬電路數(shù)字電路的傳統(tǒng)設(shè)計模式過渡到以軟件設(shè)計為主體的微控制技術(shù)時代。使得單片機在各種各樣的生活場景中得到了廣泛的應用。所以催生了我利用單片機,再結(jié)合移動通信做出這款基于單片機的監(jiān)控電子嬰兒床系統(tǒng)的想法。

該嬰兒床設(shè)計針對現(xiàn)階段獨生子女父母對保姆照顧嬰兒不周的擔憂,利用單片機的控制技術(shù),并結(jié)合wt588d語音播報和搖籃設(shè)計出具有監(jiān)控功能的電子嬰兒床系統(tǒng)。當出現(xiàn)父母擔憂的幾種情況時,該系統(tǒng)在一定的時間自動提醒監(jiān)護人,并且會實時反饋信息,從而讓監(jiān)護人實時了解孩子的情況,能夠安心工作。該嬰兒床系統(tǒng)具有價錢便宜、功能實用、工作穩(wěn)定可靠等優(yōu)點。

我設(shè)計的這款監(jiān)控嬰兒床,外觀上尚需潤色不少,比如步進電機實現(xiàn)搖床功能要怎么具體的實現(xiàn),此系統(tǒng)中只用步進電機來模擬;還有具體的嬰兒床模型沒有做出來;濕度傳感器放置在哪里效果最佳,并能實現(xiàn)所要求的功能。

2、功能設(shè)計

  1. 每次嬰兒在號哭時通過聲音控制電路控制電機自動晃動,并且語音模塊會自動播報小星星輕音樂安撫嬰兒的情緒;
  2. 聲控模塊可以實時采集當前嬰兒是否哭鬧;
  3. 每次孩子撒尿?qū)е卤蛔訚窳藭r,通過濕度感應器的信號啟動自動報警,語音播報是否尿床,led指示燈亮;
  4. 步進電機通過ULN2003進行驅(qū)動,當需要安撫嬰兒時,控制電機左右旋轉(zhuǎn)來促使嬰兒安靜下來。
  5. 按鍵用來進行設(shè)置3種不同的模式,方便對不同的情況及時做出處理

系統(tǒng)結(jié)構(gòu)框圖

在這里插入圖片描述

3、系統(tǒng)硬件設(shè)計

3.1聲音電路的設(shè)計

聲控電路算是本系統(tǒng)中比較重要的一個子電路,該電路由主要由直插電容駐極體話筒MIC1、雙電壓比較器集成電路LM393、發(fā)光二極管D2、1uf電容C1、三極管Q1、電阻R4-R10組成。LM393是常用的電壓比較器,每個LM393芯片中共有兩個電壓比較器[7]。發(fā)光二極管的亮度會隨著直插電容式駐極體話筒采集的聲音的大小產(chǎn)生明亮變化,聲音越大,發(fā)光二極管越亮。通過聲控電路與步進電機驅(qū)動電路連接起來,即能實現(xiàn):
在這里插入圖片描述

3.2語音播報電路的設(shè)計

本次設(shè)計的報警模塊采用wt588d語音芯片進行語音播報和報警提示。當超聲波檢測到距離后或者是低于安全距離STC89C52單片機控制語音芯片來播報當前的內(nèi)容。
下圖為語言芯片電路引腳圖,揚聲器就是喇叭用來進行語音播報,p02是復位引腳也可以不接,只有P03口是數(shù)據(jù)引腳,Wt588d語音芯片他是通過外部的minu下載器下載相應的語音文件,比如播報歡迎光臨,那么我們就需要通過minu下載器編輯這段語音歡迎光臨。然后生成一個地址,當單片機需要播報這端語音的時候,就會發(fā)送指令給wt588d,進行語音播報。
在這里插入圖片描述
點擊“操作”→“地址設(shè)置”,能設(shè)置各個按鍵(I/O口)直接觸發(fā)的地址。
在這里插入圖片描述
在這里插入圖片描述

3.3獨立按鍵電路的設(shè)計

系統(tǒng)中一共使用了三個獨立按鍵:K1、K2和K3。本次設(shè)計按鍵主要是用來進行功能設(shè)置。當我們按下K1按鍵時,會進入到模式1,按下K2時,會進入模式二。K3進行模式三。單片機的按鍵電路其實就是一個對高低電平的檢測。我們當按鍵被按下時,單片機的IO口會檢測為低電平。單片機就會來根據(jù)電平特性判斷程序應該要執(zhí)行的操作。但是在寫按鍵函數(shù)的時候有幾點是需要我們注意的。當按鍵被按下時會產(chǎn)生抖動,所以要寫一個去抖的函數(shù)。還有就是要有短暫的延遲。按鍵和電路連接引腳:
在這里插入圖片描述

3.4模擬搖床(步進電機驅(qū)動電路)的設(shè)計

本系統(tǒng)采用步進電機驅(qū)動電路來模擬搖床系統(tǒng),由聲控電路來觸發(fā)。如圖3-5步進電機28BYJ48型四相八拍電機,電壓為DC5V。當對步進電機施加一系列連續(xù)不斷的控制脈沖時,它可以連續(xù)不斷地轉(zhuǎn)動。因為單片機的I/O口電流太小,無法驅(qū)動步進電機工作,因而要連接一個ULN2003實現(xiàn)電流的放大作用[8]。ULN2003的1B-4B端口分別連接單片機的P20-P23,端口1C-4C分別接到相對應的電機接口B、C、D、V。
在這里插入圖片描述

3.5液晶顯示電路設(shè)計

我選擇了LCD1602液晶顯示器。它是一款工業(yè)字符型液晶,可以顯示兩行數(shù)據(jù),每行可以顯示十六個符號、字母或者數(shù)字,剛好可以滿足設(shè)計的需要。它體積小巧,功耗較低,顯示效果良好,是一款非常實用的液晶顯示設(shè)備。
LCD1602液晶顯示在執(zhí)行程序指令之前要進行模塊標志位的忙信號,只有當它的忙標志位為低電平時才表示可以執(zhí)行指令。

3.6尿液檢測電路設(shè)計

檢測嬰兒是否尿床我們主要是通過水位傳感器進行采集然后通過LM393比較器進行判斷主要特點如下:
(1)工作電源電壓范圍寬,單電源、雙電源均可工作,單電源:2~36V,雙電源:±1~±18V;
(2)消耗電流小,Icc=0.8mA;
(3)輸入失調(diào)電壓小,VIO=±2mV;
(4)共模輸入電壓范圍寬,Vic=0~Vcc-1.5V;
(5)輸出與TTL,DTL,MOS,CMOS 等兼容;
(6)輸出可以用開路集電極連接“或”門;
在這里插入圖片描述

4、系統(tǒng)軟件設(shè)計

4.1 系統(tǒng)主流程圖

在這里插入圖片描述

4.2按鍵程序流程圖設(shè)計

按鍵電路有四個引腳。其中兩兩相同。我們在連接電路的時候只需要連接2個引腳就可以了。連接的方式就是上圖所示。工作遠離其實就是一個對信號的高低電平檢測。在我們按鍵被按下時,單片機引腳的IO口就會檢測為低電平。這些IO口電平特性的改變就會程執(zhí)行相應的功能操作。判斷按鍵是否按下if(K10){while(K10)去抖;mode++;模式切換 if(mode3)數(shù)字減 mode=0模式切換; else if(K20){delay_key()延遲;然后while(K20);是否按下模式為加if(mode1) {Max++;到最大 if(Max》=3){Max=1;}。4個按鍵分別表示加、減、確定和手動放水功能。在不同頁面表示不同的功能。分別用3個函數(shù)執(zhí)行不同的操作,注意進行延時操作,防止誤差。
在這里插入圖片描述

4.3步進電機流程圖

控制電動機正反轉(zhuǎn)為本次設(shè)計自動翻蓋的部分。系統(tǒng)開始工作后,判斷電機是否需要正轉(zhuǎn),若需要就依次給AB、BC、CD、DA通電實現(xiàn)正轉(zhuǎn),正轉(zhuǎn)結(jié)束后延時3m電機開始反轉(zhuǎn),即依次給AB、AD、CD、CB充電。
在這里插入圖片描述

4.4液晶屏幕流程圖設(shè)計

LCD 1602有16個引腳,其中RS、RW的值控制單片機對它的讀寫:
LCD1602液晶顯示在執(zhí)行程序指令之前要進行模塊標志位的忙信號,只有當它的忙標志位為低電平時才表示可以執(zhí)行指令。
LCD1602要顯示字符時,就要獲得該字符的現(xiàn)實的RAM地址。它內(nèi)部的控制寄存器有11條控制指令,包括清屏,光標移位等指令。

在這里插入圖片描述

實物圖及PCB

在這里插入圖片描述
在這里插入圖片描述

部分源碼

#include <reg52.h>			 //調(diào)用單片機頭文件
#include <intrins.h>
#include "lcd1602.h"
#include "StepMotor.h"

#define uchar unsigned char  //無符號字符型 宏定義	變量范圍0~255
#define uint  unsigned int	 //無符號整型 宏定義	變量范圍0~65535

#include "WT588D.h"

//按鍵引腳定義
sbit KEY1 = P3^5;
sbit KEY2 = P3^6;
sbit KEY3 = P3^7;

sbit ShiDu = P1^0;//濕度傳感器
sbit LED = P1^1;
sbit Voice = P1^2;//聲音傳感器

bit openFlag = 0;//電機開啟標志 
bit Mode = 0;//0是自動模式,1是手動模式

uint DJ_TIME = 0;//電機開啟時間

/*********************定時器1初始化******************/
void time_init()	  
{
	TMOD |= 0X10;	  
  TH1=0x4c;//50ms
  TL1=0x00; 	
	ET1 = 1;
	TR1 = 1;//開啟定時
	EA  = 1;	 	  //開總中斷
}

void keyscan()
{
		if(KEY1 == 0)//切換鍵按下
		{
				delay_ms(10);
				if(KEY1 == 0)
				{
						while(!KEY1);//等待按鍵松開
						Mode = !Mode;
            if(Mode==0)lcd_write_str(0, 1, "MODE: ZIDONG    ");			
            else lcd_write_str(0, 1, "MODE: SHOUDONG  ");	
            openFlag = 0;					
				}
		}
    if(Mode==1)//手動模式
		{
				if(KEY2 == 0)//手動開關(guān)鍵按下
				{
						delay_ms(10);
						if(KEY2 == 0)
						{
								while(!KEY2);
						
								openFlag = 1;
						}
				}
				if(KEY3 == 0)//手動開關(guān)鍵按下
				{
						delay_ms(10);
						if(KEY3 == 0)
						{
								while(!KEY3);
						
								openFlag = 0;
						}
				}
		}
}

void motoRotate()//電機處理
{
	  static uint djcount=0;
	  static bit flag = 0;

	  if(flag == 0)
		{
			  djcount++;
				if(djcount < 30)
				{
						MotorCW();//正轉(zhuǎn)
				}
				else
				{
						if(djcount < 130)
						{
								MotorStop();//電機停止
						}
						else
						{
								flag = 1;
							  djcount = 130;
						}
				}
		}
    else
		{
			  djcount--;
				if(djcount > 100)
				{
						MotorCCW();//電機反轉(zhuǎn)
				}
				else
				{
					  if(djcount<=0){flag = 0;djcount=0;}
						MotorStop();//電機停止
				}
		}
}

void main()
{
	  uint sy_count1 = 0;
	  uint sy_count2 = 0;
	  uint yuyin = 0;
	  bit flag = 0;
	
		time_init();//定時器初始化
		lcd_init();//1602初始化
		lcd_write_str(0, 0, "STATE: CLOSE    ");
    lcd_write_str(0, 1, "MODE: ZIDONG    ");

		while(1)
		{
			  keyscan();
			  if(Mode == 0)//在自動模式下
				{
						if(Voice == 0)//檢測到有聲音
						{
								if(sy_count1++ > 10)//檢測哭聲是否延續(xù)
								{
										DJ_TIME = 60;//電機開啟時間1分鐘
										openFlag = 1;//電機開啟
									  sy_count1 = 0;
									  if(ShiDu==0)Line_1A(1);//播報歌曲
								}
						}
						else
						{
								if(sy_count2++ > 200)
								{
										sy_count2 = 0;
									  sy_count1 = 0;
								}
						}
				}
        if(ShiDu==1)//檢測到尿不濕濕了
				{
						LED = 0;
					  if(flag == 0)//只播報一次
						{
								flag = 1;
							  Line_1A(0);//播報
							  yuyin = 0;
						}
						if(flag==1)
						{
								if(yuyin++ > 400)
								{
										yuyin = 0;
									  Line_1A(0);//播報
								}
						}
				}
				else
				{
						LED = 1;flag = 0;
				}
			  if(openFlag==1)//電機開啟
				{
					  lcd_write_str(0, 0, "STATE: OPEN ");
						motoRotate(); 
				}else 
				{
					  lcd_write_str(0, 0, "STATE: CLOSE");
						MotorStop();//電機關(guān)閉
				}
			  
			  delay_ms(1);
		}
}


void zd1() interrupt 3
{
	  static uchar cnt1=0;
		TH1=0x4c;//50ms
		TL1=0x00; 
	
		if(cnt1++ >= 20)//1s
		{
				cnt1 = 0;
        if(DJ_TIME > 0)
				{
						DJ_TIME--;
				}
				else
				{
						if(Mode == 0)openFlag=0;
				}
		}
}


博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實物的友友請關(guān)注、點贊,私信吧!

  • 聯(lián)系方式.txt

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
CM200C32.768KDZF-UT 1 Citizen Finedevice Co Ltd Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, ROHS COMPLIANT, PLASTIC, SMD, 4 PIN
$1.17 查看
R38-32.768-12.5 1 Raltron Electronics Corporation Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, HALOGEN FREE, ROHS AND REACH COMPLIANT PACKAGE-2
$0.06 查看
FM25CL64B-GTR 1 Cypress Semiconductor Memory Circuit, 8KX8, CMOS, PDSO8, SOIC-8

ECAD模型

下載ECAD模型
$4.24 查看

相關(guān)推薦

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