1 簡(jiǎn)介
Hi,大家好,這里是丹成學(xué)長(zhǎng),今天向大家介紹一個(gè) 單片機(jī)項(xiàng)目
基于單片機(jī)的智能感應(yīng)垃圾桶設(shè)計(jì)與實(shí)現(xiàn)
大家可用于 課程設(shè)計(jì) 或 畢業(yè)設(shè)計(jì)
單片機(jī)-嵌入式畢設(shè)選題大全及項(xiàng)目分享:
https://blog.csdn.net/m0_71572576/article/details/125409052文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796236.html
2 緒論
2.1 課題背景與目的
學(xué)長(zhǎng)設(shè)計(jì)的系統(tǒng)主要使用 STC89C52 單片機(jī)為基礎(chǔ)設(shè)計(jì)并開(kāi)發(fā)一個(gè)智能垃圾桶系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)智能開(kāi)蓋, 垃圾裝滿語(yǔ)音報(bào)警的功能。設(shè)計(jì)主要以單片機(jī)為控制中心,通過(guò)紅外傳感器檢測(cè)探測(cè)范圍內(nèi)有人與否, 如果有, 經(jīng)過(guò)單片機(jī)控制啟動(dòng)步進(jìn)電機(jī), 打開(kāi)桶蓋, 再經(jīng)過(guò)延時(shí)設(shè)定時(shí)刻后, 自動(dòng)關(guān)閉垃圾桶蓋。 步進(jìn)電機(jī)通過(guò)線的正反纏繞實(shí)現(xiàn)桶蓋的開(kāi)啟與關(guān)閉。 通過(guò)紅外對(duì)管模塊, 檢測(cè)垃圾桶內(nèi)的垃圾高度超過(guò)限定高度與否, 如果裝滿, 單片機(jī)控制語(yǔ)音播放芯片, 喇叭播放語(yǔ)音提示人們處理垃圾。
3 系統(tǒng)設(shè)計(jì)
這次學(xué)長(zhǎng)設(shè)計(jì)的主要使用 STC89C52 單片機(jī)為基礎(chǔ)設(shè)計(jì)并開(kāi)發(fā)一個(gè)智能垃圾桶系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)智能開(kāi)蓋, 垃圾裝滿語(yǔ)音報(bào)警的功能。
設(shè)計(jì)主要以單片機(jī)為控制中心,通過(guò)紅外傳感器檢測(cè)探測(cè)范圍內(nèi)有人與否, 如果有, 經(jīng)過(guò)單片機(jī)控制啟動(dòng)步進(jìn)電機(jī), 打開(kāi)桶蓋, 再經(jīng)過(guò)延時(shí)設(shè)定時(shí)刻后, 自動(dòng)關(guān)閉垃圾桶蓋。 步進(jìn)電機(jī)通過(guò)線的正反纏繞實(shí)現(xiàn)桶蓋的開(kāi)啟與關(guān)閉。 通過(guò)紅外對(duì)管模塊, 檢測(cè)垃圾桶內(nèi)的垃圾高度超過(guò)限定高度與否, 如果裝滿, 單片機(jī)控制語(yǔ)音播放芯片, 喇叭播放語(yǔ)音提示人們處理垃圾。
主要內(nèi)容包括:
-
- 人體檢測(cè)功能
-
- 步進(jìn)電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)
-
- 垃圾高度檢測(cè)功能
-
- 語(yǔ)音播放報(bào)警功能
3.1 系統(tǒng)架構(gòu)
整個(gè)由單片機(jī)系統(tǒng)、紅外對(duì)管傳感器模塊、電機(jī)驅(qū)動(dòng)模塊、語(yǔ)音報(bào)警模塊、穩(wěn)壓模塊組成。 兩個(gè)紅外對(duì)管傳感器模塊作為單片機(jī)主要的信號(hào)輸入源, 單片機(jī)處理輸入信號(hào)后, 將控制信號(hào)輸出到電機(jī)驅(qū)動(dòng)模塊和語(yǔ)音模塊, 完成本系統(tǒng)的設(shè)計(jì)功能。
穩(wěn)壓模塊則是在使用非 USB 供電時(shí), 使系統(tǒng)的輸入電壓保持在 5V, 是保證工作時(shí)系統(tǒng)的穩(wěn)定性所必須的模塊。
通過(guò)人體檢測(cè)模塊中的紅外對(duì)管傳感器檢測(cè)出有人, 把此信號(hào)傳輸給單片機(jī),單片機(jī)收到該信號(hào)處理后控制電機(jī)驅(qū)動(dòng)模塊進(jìn)行開(kāi)蓋, 人離開(kāi)后經(jīng)延時(shí)一段時(shí)間后自動(dòng)關(guān)蓋。 當(dāng)垃圾高度達(dá)到設(shè)定高度時(shí), 垃圾檢測(cè)模塊中的紅外對(duì)管傳感器發(fā)送信號(hào)至單片機(jī), 單片機(jī)接收處理后控制語(yǔ)音模塊播放語(yǔ)音報(bào)警。 結(jié)構(gòu)框圖如圖所示。
3.2 硬件部分
3.2.1 傳感器模塊
常用的用于檢測(cè)判斷移動(dòng)物體的傳感器有熱釋電傳感器、 紅外對(duì)管傳感器和超聲波傳感器。 熱釋電傳感器廣泛應(yīng)用人體檢測(cè), 比如樓道感應(yīng)燈, 但對(duì)人體的移動(dòng)方向有要求, 平行于傳感器方向移動(dòng)靈敏度最高。和熱釋電紅外傳感器對(duì)比,紅外對(duì)管傳感器能夠檢測(cè)的最小距離相對(duì)小, 反應(yīng)靈敏, 且不易受環(huán)境光干擾而產(chǎn)生誤輸出。 而超聲波測(cè)距模塊價(jià)格較高且感應(yīng)角度不大于 15 度, 使用條件非常有限。
3.2.2 語(yǔ)音模塊
語(yǔ)音模塊常用 ISD 系列產(chǎn)品, 比如 ISD1820 和 ISD4004。 ISD4004 模塊需要擴(kuò)展很多外圍電路并需要使用額外單片機(jī)進(jìn)行語(yǔ)音錄制存儲(chǔ), 增加了電路的復(fù)雜度。 ISD1820 是美國(guó) ISD 公司推出一種單片 8~20 秒語(yǔ)音錄制兼播放芯片, 它的基本結(jié)構(gòu)與 1110、 1420 系列完全相同, 只能錄放一段語(yǔ)音。
3.2.3 電機(jī)及其驅(qū)動(dòng)模塊
由于該系統(tǒng)需要控制垃圾桶的開(kāi)蓋及開(kāi)蓋角度, 直流電機(jī)只能通過(guò)通電時(shí)間和電流極性來(lái)控制其工作, 不適合搭配單片機(jī)使用, 而步進(jìn)電機(jī)可以很簡(jiǎn)單精確地控制其輸出軸旋轉(zhuǎn)角度以及方向。 步進(jìn)電機(jī)可分反應(yīng)式、 永磁式和混合式三種, 永磁式步進(jìn)電機(jī)輸出力矩足夠本設(shè)計(jì)所需且動(dòng)態(tài)性能較好。 所以本設(shè)計(jì)使用反應(yīng)式來(lái)驅(qū)動(dòng)垃圾桶開(kāi)蓋。
3.2.4 穩(wěn)壓模塊
中單片機(jī)所工作電壓為 5V, 其他模塊也均可以在 5V 電壓下運(yùn)行,即需要將 7.5V 直流電源降壓為 5V 輸入電壓。 由于本次設(shè)計(jì)供電電源為 7.5V,LM78 系列壓差不能小于 3V, 而且經(jīng)查資料發(fā)現(xiàn), AMS1117-5.0 型號(hào)穩(wěn)壓芯片與LM7805 相比在發(fā)熱量上相比有很好的降低, 所以本次設(shè)計(jì)選用 AMS1117-5.0 型號(hào)穩(wěn)壓模塊。
3.3 軟件部分
程序工作流程如下: 紅外傳感器檢測(cè)到有人時(shí), 單片機(jī)控制步進(jìn)電機(jī)打開(kāi)桶蓋, 傳感器模塊感應(yīng)到人離開(kāi)后, 經(jīng)延時(shí)后垃圾箱蓋將自動(dòng)關(guān)閉。 當(dāng)紅外對(duì)管傳感器檢測(cè)到垃圾高度超過(guò)設(shè)定時(shí)單片機(jī)控制語(yǔ)音模塊播放語(yǔ)音報(bào)警, 當(dāng)垃圾被清理后停止報(bào)警, 也可手動(dòng)關(guān)閉。
3.3.1 自動(dòng)翻蓋子程序設(shè)計(jì)
學(xué)長(zhǎng)使用的是以單雙八拍方式工作的五線四相步進(jìn)電機(jī), 自動(dòng)翻蓋的控制信號(hào)輸入為檢測(cè)人體距離的紅外對(duì)管傳感器, 輸出信號(hào)至步進(jìn)電機(jī)驅(qū)動(dòng)板, 由驅(qū)動(dòng)板直接控制步進(jìn)電機(jī)。
若有人扔垃圾則 1 秒防檢測(cè)后正轉(zhuǎn)開(kāi)蓋, 人離開(kāi)后延時(shí)3 秒, 反方向旋轉(zhuǎn)相同角度關(guān)蓋, 通過(guò) delay() 子程序改變步進(jìn)電機(jī)的旋轉(zhuǎn)速度, 通過(guò)設(shè)置 for 循環(huán)的次數(shù)來(lái)設(shè)置步進(jìn)電機(jī)旋轉(zhuǎn)的角度, 從而使桶蓋開(kāi)合合適的角度。 自動(dòng)翻蓋程序流程圖如上圖所示, 紅外 1 傳感器指檢測(cè)是否有人扔垃圾的紅外對(duì)管傳感器。
3.4 實(shí)現(xiàn)效果
無(wú)人狀態(tài)下
當(dāng)周?chē)腥顺霈F(xiàn)后,自動(dòng)打開(kāi)垃圾桶
3.5 部分相關(guān)代碼
//功能: 測(cè)試電機(jī)驅(qū)動(dòng)功能和電機(jī)連線是否正確, 左電機(jī)反轉(zhuǎn), 右電機(jī)正轉(zhuǎn), 電機(jī)轉(zhuǎn)速
由小到大。
int INA = 4; //電機(jī) A 正反轉(zhuǎn)控制端
int PWMA = 5; //電機(jī) A 調(diào)速端
int INB = 7; //電機(jī) B 正反轉(zhuǎn)控制端
int PWMB = 6; //電機(jī) B 調(diào)速端
void setup(){
pinMode(INA,OUTPUT);
pinMode(INB,OUTPUT); //配置電機(jī)輸出 IO 口為輸出
}
void loop(){
int value;
for(value = 20 ; value <= 255;value+=2){ //循環(huán)每次速度增加 2 最大到 255
motosp(-value,value);//電機(jī)速度賦值, 左電機(jī)負(fù)值為反轉(zhuǎn), 右電機(jī)正轉(zhuǎn)。
delay(50);
}
}
void motosp(int sp1,int sp2)//聲明電機(jī)速度控制函數(shù)。 括號(hào)內(nèi)定義的變量分別為左右電機(jī)
速
{
if(sp1>0) {
digitalWrite(INA, HIGH);
}
else
{
digitalWrite(INA, LOW);
}
if(sp2>0)
{
digitalWrite(INB, HIGH);
}
else
{
digitalWrite(INB, LOW);
}
analogWrite(PWMA,abs (sp1));
analogWrite(PWMB,abs (sp2));
}
//紅外感應(yīng)模塊:
int Sensor = 2;
int ina = 13;
void setup() {
pinMode(ina, OUTPUT); //13 引腳定義為輸出
Serial.begin(9600); //設(shè)置下載程序的串口的波特率為 9600
pinMode(Sensor, INPUT); //2 引腳定義為輸入
}
void loop() {
int SensorState = digitalRead(Sensor);//讀取 2 引腳的電平
while(SensorState == 1){
SensorState = digitalRead(Sensor); //2 引腳為高電平時(shí), 設(shè)置 13 引腳為高
digitalWrite(ina,HIGH);
delay(1000); //延時(shí) 1000ms
}
while(SensorState == 0){ //當(dāng) 2 引腳為低電平時(shí), 設(shè)置 13 引腳為低
SensorState = digitalRead(Sensor);
digitalWrite(ina,LOW);
}
delay(100); //延時(shí) 100ms
}
// 避障模塊:
int Sensor1 = 2;
int Sensor2 = 4 ;
int ina = 13;
int inb = 12;
void setup() {
pinMode(ina, OUTPUT); //定義輸入、 輸出引腳
pinMode(inb, OUTPUT);
Serial.begin(9600);
pinMode(Sensor1, INPUT);
pinMode(Sensor2, INPUT);
}
void loop() {
int SensorState1 = digitalRead(Sensor1);//讀取數(shù)據(jù)
int SensorState2 = digitalRead(Sensor2);
boolean Write = true; //定義布爾變量
boolean Black = true;
if(SensorState1 == 1){
Write = false;
}
if(SensorState2 == 1){
Black = false;
}
if(Write && Black){ //當(dāng)量輸入引腳同時(shí)為高時(shí), 兩輸出引腳為高
digitalWrite(ina,HIGH);
digitalWrite(inb,HIGH);
delay(1000);
}
digitalWrite(ina,LOW); //復(fù)位
digitalWrite(inb,LOW);
delay(100);
}
/*******************************************************************
篇幅有限,只展示部分代碼
********************************************************************/
單片機(jī)-嵌入式畢設(shè)選題大全及項(xiàng)目分享:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-796236.html
https://blog.csdn.net/m0_71572576/article/details/125409052
4 最后
到了這里,關(guān)于【畢業(yè)設(shè)計(jì)】基于單片機(jī)的智能感應(yīng)垃圾桶設(shè)計(jì)與實(shí)現(xiàn) - 物聯(lián)網(wǎng) stm32 嵌入式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!