?
1. 功能說明
現(xiàn)在都市的生活越來越忙,很多人都沒有時間和精力來管理一些細(xì)節(jié)上的東西,比如,在合適的陽光溫度時間內(nèi)晾曬衣服。針對這來問題開始研究,通過對智能晾衣架控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的不斷探究,得到了比較好的設(shè)計(jì)思路。
使用CC2530單片機(jī)的ADC接口采集雨滴傳感器的模擬值,得到雨滴傳感器的雨滴測量值之后,與預(yù)先設(shè)置的閥值進(jìn)行對比,是否要打開或者收回晾衣桿,這個晾衣桿的伸縮采用步進(jìn)電機(jī)進(jìn)行模擬;并且還支持語音控制、手動控制晾衣桿的伸縮。

2. 硬件介紹
2.1 CC2530開發(fā)板

2.2 雨滴傳感器

2.3 步進(jìn)電機(jī)

2.4 MR-LD3320語音識別模塊

3. 源代碼

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(二進(jìn)制)
 ?
 ?/* Read the result */
 ?reading = ADCL;
 ?reading |= (u16) (ADCH << 8); 
 ?
 ?reading >>= 8;
 
 return (reading);
}

3.2 步進(jìn)電機(jī)控制代碼
typedef unsigned char uchar;
typedef unsigned int uint;
?
#define A1 P0_4 //定義步進(jìn)電機(jī)連接端口
#define B1 P0_5
#define C1 P0_6
#define D1 P0_7
?
uchar phasecw[4] ={0x80,0x40,0x20,0x10};//正轉(zhuǎn) 電機(jī)導(dǎo)通相序 D-C-B-A
uchar phaseccw[4]={0x10,0x20,0x40,0x80};//反轉(zhuǎn) 電機(jī)導(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

	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

	
	?審核編輯:湯梓紅
- 
                                傳感器
                                +關(guān)注
關(guān)注
2573文章
54024瀏覽量
782846 - 
                                單片機(jī)
                                +關(guān)注
關(guān)注
6072文章
45273瀏覽量
661622 - 
                                CC2530
                                +關(guān)注
關(guān)注
19文章
221瀏覽量
59723 
發(fā)布評論請先 登錄
    基于CC2530的SDHC卡讀寫設(shè)計(jì)
    
基于CC2530芯片_zigbee基礎(chǔ)實(shí)驗(yàn)
cc2530的PWM實(shí)現(xiàn)
    
cc2530是什么_cc2530能做什么
cc2530芯片有哪些功能
CC2530的數(shù)據(jù)手冊和CC2530的應(yīng)用手冊免費(fèi)下載
    
CC2530芯片的基本特性和CC2530無線模塊的設(shè)計(jì)
    
          
        
        
基于CC2530設(shè)計(jì)的自動晾衣桿
                
 
    
    
    
           
            
            
                
            
評論