?
1. 功能說明
現(xiàn)在都市的生活越來越忙,很多人都沒有時間和精力來管理一些細節(jié)上的東西,比如,在合適的陽光溫度時間內(nèi)晾曬衣服。針對這來問題開始研究,通過對智能晾衣架控制系統(tǒng)的設(shè)計與實現(xiàn)的不斷探究,得到了比較好的設(shè)計思路。
使用CC2530單片機的ADC接口采集雨滴傳感器的模擬值,得到雨滴傳感器的雨滴測量值之后,與預(yù)先設(shè)置的閥值進行對比,是否要打開或者收回晾衣桿,這個晾衣桿的伸縮采用步進電機進行模擬;并且還支持語音控制、手動控制晾衣桿的伸縮。
![image-20220111111849127](https://file.elecfans.com//web2/M00/46/06/poYBAGKQLmeAdWO7AAU0aedz_tU574.png)
2. 硬件介紹
2.1 CC2530開發(fā)板
![image-20220111112235136](https://file.elecfans.com//web2/M00/46/06/pYYBAGKQLmeAdAOqAANoio9Pdso186.png)
2.2 雨滴傳感器
![image-20220111112304127](https://file.elecfans.com//web2/M00/46/06/poYBAGKQLmeAV2VBAAKMSDeq5lU589.png)
2.3 步進電機
![image-20220111112335963](https://file.elecfans.com//web2/M00/46/06/pYYBAGKQLmeAGt9DAADgEa8qtLs727.png)
2.4 MR-LD3320語音識別模塊
![image-20220111112450786](https://file.elecfans.com//web2/M00/46/06/poYBAGKQLmiAddoxAAKg2iUtn6k712.png)
3. 源代碼
![image-20220111113249381](https://file.elecfans.com//web2/M00/46/06/pYYBAGKQLmiAMHkEAACZLX49Rtk574.png)
3.1 雨滴傳感器數(shù)據(jù)采集
代碼下載鏈接: https://download.csdn.net/download/xiaolong1126626497/75318366
/*===================ADC初始化函數(shù)====================*/
void Init_ADC0()
{
P0SEL |= 0x01; //P0_0端口設(shè)置為外設(shè)功能
P0DIR &= ~0x01; //P0_0端口設(shè)置為輸入端口
APCFG |= 0x01; //P0_0作為模擬I/O使用
}
?
?
/*===================讀取ADC的數(shù)據(jù)====================*/
u16 Get_ADC0_Value()
{
//存放采集的ADC數(shù)據(jù)
u16 adc_dat=0;
u8 dat[2];
ADCIF = 0;
//參考電壓選擇AVDD5引腳,256抽取率,AIN0通道0
ADCCON3 = (0x80 | 0x10 | 0x00);
while(!ADCIF); //等待A/D轉(zhuǎn)換完成,
dat[0]= ADCL; //讀取ADC數(shù)據(jù)低位寄存器
dat[1]= ADCH; //讀取ADC數(shù)據(jù)高位寄存器
adc_dat=dat[1]<<8|dat[0];
?return adc_dat;
}
?
// P0.6
void Init_ADC6(void)
{
? ?APCFG ?|=1<<6; ?//PCFG[7:0]選擇P0.7- P0.0作為模擬I/O
? ?P0SEL ?|= 0x01;
? ?P0DIR ?&= ~0x01; ?
? ?
? ?P0SEL |= (1<<6); ? ? ?//P0_6端口設(shè)置為外設(shè)功能
? ?P0DIR &= ~(1<<6); ? ? //P0_6端口設(shè)置為輸入端口
? ?APCFG |= 1<<6; ? ? ? ?//P0_6作為模擬I/O使用
}
?
?
//讀取光敏傳感器的值 P0.6
u16 Get_ADC6_Value( void )
{
?u16 reading = 0;
?
?/* Enable channel */
?ADCCFG |= 0x40;
?
?/* writing to this register starts the extra conversion */
?ADCCON3 = 0x86;// AVDD5 引腳 00: 64 抽取率(7 位ENOB) 0110: AIN6
?
?/* Wait for the conversion to be done */
?while (!(ADCCON1 & 0x80));
?
?/* Disable channel after done conversion */
?ADCCFG &= (0x40 ^ 0xFF); //按位異或。如1010^1111=0101(二進制)
?
?/* Read the result */
?reading = ADCL;
?reading |= (u16) (ADCH << 8);
?
?reading >>= 8;
return (reading);
}
![poYBAGDYdXCAWkKMAAAAK8RNs4s030.png](https://file.elecfans.com/web2/M00/03/FB/poYBAGDYdXCAWkKMAAAAK8RNs4s030.png)
3.2 步進電機控制代碼
typedef unsigned char uchar;
typedef unsigned int uint;
?
#define A1 P0_4 //定義步進電機連接端口
#define B1 P0_5
#define C1 P0_6
#define D1 P0_7
?
uchar phasecw[4] ={0x80,0x40,0x20,0x10};//正轉(zhuǎn) 電機導(dǎo)通相序 D-C-B-A
uchar phaseccw[4]={0x10,0x20,0x40,0x80};//反轉(zhuǎn) 電機導(dǎo)通相序 A-B-C-D
?
void MotorData(uchar data)
{
A1 = 1&(data>>4);
B1 = 1&(data>>5);
C1 = 1&(data>>6);
D1 = 1&(data>>7);
}
?
//ms延時函數(shù)
void Delay_MS(uint x)
{
uint i,j;
for(i=0;i
![poYBAGDYdXCAWkKMAAAAK8RNs4s030.png](https://file.elecfans.com/web2/M00/03/FB/poYBAGDYdXCAWkKMAAAAK8RNs4s030.png)
3.3 串口初始化-接收語音識別指令
uint lenU1 = 0;
uchar tempRXU1;
#define MAXCHAR 81
uchar RecdataU1[MAXCHAR];
?
unsigned char dataRecv;
unsigned char Flag = 0;
?
void clearBuffU1(void)
{
int j;
for(j=0;j
![poYBAGDYdXCAWkKMAAAAK8RNs4s030.png](https://file.elecfans.com/web2/M00/03/FB/poYBAGDYdXCAWkKMAAAAK8RNs4s030.png)
?
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
傳感器
+關(guān)注
關(guān)注
2553文章
51407瀏覽量
756626 -
單片機
+關(guān)注
關(guān)注
6043文章
44621瀏覽量
638584 -
CC2530
+關(guān)注
關(guān)注
19文章
221瀏覽量
58230
發(fā)布評論請先 登錄
相關(guān)推薦
![](https://file.elecfans.com/web2/M00/46/D9/poYBAGKWFFCAHZ32AAIdFeBapD8663.jpg)
基于CC2530的SDHC卡讀寫設(shè)計
提出了將SDHC卡作為CC2530的外部存儲設(shè)備實現(xiàn)數(shù)據(jù)存儲的方法。SDHC卡具有體積小、存儲容量大的特點,通過CC2530組建的無線傳感網(wǎng)絡(luò)適用于工業(yè)監(jiān)測,而將SDHC卡與CC2530相結(jié)合
發(fā)表于 05-02 14:28
?3631次閱讀
![基于<b class='flag-5'>CC2530</b>的SDHC卡讀寫設(shè)計](https://file1.elecfans.com//web2/M00/A6/32/wKgZomUMPDaAA_AdAAATxzDvRes620.jpg)
cc2530的PWM實現(xiàn)
CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM 和許多其它強大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有
發(fā)表于 11-07 18:43
?4048次閱讀
![<b class='flag-5'>cc2530</b>的PWM實現(xiàn)](https://file1.elecfans.com//web2/M00/A6/DF/wKgZomUMQPyAcrhyAAAWp7XX4LQ650.png)
cc2530芯片有哪些功能
CC2530是專門針對IEEE 802.15.4和Zigbee應(yīng)用的單芯片解決方案,經(jīng)濟且低功耗。 CC2530有四種不同的版本:CC2530-F32 / 64 / 128 / 256。分別帶有
發(fā)表于 11-08 11:05
?2.3w次閱讀
CC2530的數(shù)據(jù)手冊和CC2530的應(yīng)用手冊免費下載
CC2530是一個真正的系統(tǒng)芯片(SOC)解決方案,適用于IEEE 802.15.4、ZigBee和RF4CE應(yīng)用。它能夠以非常低的總物料清單成本構(gòu)建強健的網(wǎng)絡(luò)節(jié)點。CC2530將領(lǐng)先的射頻收發(fā)器
發(fā)表于 01-18 08:00
?126次下載
![<b class='flag-5'>CC2530</b>的數(shù)據(jù)手冊和<b class='flag-5'>CC2530</b>的應(yīng)用手冊免費下載](https://file.elecfans.com/web1/M00/82/9C/o4YBAFxBPjiAflGWAADgaCagG8E211.png)
CC2530芯片的基本特性和CC2530無線模塊的設(shè)計
本文介紹了CC2530芯片的基本特性,論述了以CC2530芯片為核心的無線通信模塊的硬件設(shè)計和調(diào)試軟件設(shè)計,在介紹設(shè)計規(guī)范和模塊結(jié)構(gòu)的基礎(chǔ)上,采用TI公司的CC2530芯片作為主控制芯片設(shè)計出具
發(fā)表于 02-11 08:00
?97次下載
![<b class='flag-5'>CC2530</b>芯片的基本特性和<b class='flag-5'>CC2530</b>無線模塊的設(shè)計](https://file.elecfans.com/web1/M00/85/23/pIYBAFxhGfaAG_TvAACNLv2U-qs759.png)
CC2530 芯片介紹
簡介 CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM 和許多其它強大的功能。CC2530 有四種不同的閃存版本
發(fā)表于 01-03 11:00
?4035次閱讀
cc2530繼電器模塊使用
CC2530繼電器模塊是一款基于TI公司的低功耗無線通信芯片CC2530的繼電器應(yīng)用模塊。它能實現(xiàn)物聯(lián)網(wǎng)設(shè)備之間的遠程控制,廣泛應(yīng)用于家庭自動化、工業(yè)控制、智能農(nóng)業(yè)等領(lǐng)域。本文將詳細介紹CC2
評論