成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

水濁度傳感器

zzbo / 3038人閱讀

摘要:傳感器內(nèi)部是一個紅外線對管,當(dāng)光線穿過一定量的水時,光線的透過量取決于該水的污濁程度,水越污濁,透過的光就越少。根據(jù)上面的原理可知,了解到只要獲取到電壓就可以獲取水濁度,所以采取模擬數(shù)字轉(zhuǎn)換來實現(xiàn)獲取到水濁度。

水濁度傳感器

文章目錄

硬件使用

  • STM32F103 RCT6 (32芯片)
  • TSW-30 (水濁度傳感器)

軟件使用

  • keil5 MDK
  • 串口調(diào)試助手

實現(xiàn)說明

?

1. 水濁度傳感器原理

??這款濁度傳感器利用光學(xué)原理,通過溶液中的透光率和 散射率來綜合判斷濁度情況。傳感器內(nèi)部是一個紅外線對管,當(dāng)光線穿過一定量 的水時,光線的透過量取決于該水的污濁程度,水越污濁,透過的光就越少。光接收端把透過的光強度轉(zhuǎn)換為對應(yīng)的電流大小,透過的光多,電流大,反之透過的光少,電流小。

? ??根據(jù)上面的原理可知,了解到 只要獲取到電壓就可以獲取水濁度,所以采取 ADC 模擬/數(shù)字轉(zhuǎn)換來實現(xiàn)獲取到水濁度。

??

2. 具體操作代碼說明

?(1)首先先定義 TSW30(水濁度傳感器)上所對應(yīng)的 LED 引腳,方便后續(xù)校驗

GPIO_InitTypeDef GPIO_InitStrue;		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);		GPIO_InitStrue.GPIO_Mode = GPIO_Mode_Out_PP;										GPIO_InitStrue.GPIO_Pin = GPIO_Pin_13;	GPIO_InitStrue.GPIO_Speed = GPIO_Speed_50MHz;		GPIO_Init(GPIOC,&GPIO_InitStrue);

?(2)再定義 STM32 上對應(yīng)的 模擬 引腳和 ADC 引腳,這個需要根據(jù)下面的圖來進行定義
?

?

?博主這邊采取的是 通道1 PA1 口 的 ADC1

?大概實現(xiàn)步驟為:

- 開啟 PA 口時鐘和 ADC1 時鐘,設(shè)置 PA1 為模擬輸入- 復(fù)位 ADC1, 同時設(shè)置 ADC1 分頻因子- 初始化 ADC1 參數(shù)- 使能 ADC 并校準(zhǔn)

?所以可得出的代碼為:

	GPIO_InitTypeDef GPIO_InitStruct;	ADC_InitTypeDef ADC_InitStruct;		RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1, ENABLE);	RCC_ADCCLKConfig(RCC_PCLK2_Div4);			GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1;	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;		GPIO_Init( GPIOA, &GPIO_InitStruct);		ADC_DeInit(ADC1);	ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;	ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right;	ADC_InitStruct.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;	ADC_InitStruct.ADC_Mode = ADC_Mode_Independent;	ADC_InitStruct.ADC_NbrOfChannel = 1;	ADC_InitStruct.ADC_ScanConvMode = DISABLE;		ADC_Init(ADC1,&ADC_InitStruct);		ADC_Cmd(ADC1,ENABLE);  //使能 ADC		ADC_ResetCalibration( ADC1); //使能復(fù)位校準(zhǔn)	while(ADC_GetResetCalibrationStatus(ADC1)); //等待復(fù)位校準(zhǔn)結(jié)束		ADC_StartCalibration( ADC1);	while(ADC_GetCalibrationStatus(ADC1));

? ?注意: 需要額外注意的是 RCC_ADCCLKConfig(RCC_PCLK2_Div4); //需要對 ADC時鐘進行分頻

?

3. 配置通道規(guī)則

ADC_RegularChannelConfig(ADC1,ADC_Channel_1,1,ADC_SampleTime_1Cycles5);參數(shù)1: ADCx 選擇 ADC 外設(shè)參數(shù)2: 設(shè)置 ADC 通道  (更多參閱 STM32 庫函數(shù) 中的 ADC_Channel)參數(shù)3: 規(guī)則組采樣順序    --這里我們只使用一種,所以直接定義為 Rank = 1 即可參數(shù)四: 指定 ADC 通道的采樣時間值   

?

4. 開啟軟件轉(zhuǎn)換

ADC_SoftwareStartConvCmd( ADC1, ENABLE);

?

5. 判斷轉(zhuǎn)換完成,讀取 ADC 值

while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)); //判斷是否轉(zhuǎn)換結(jié)束   	return ADC_GetConversionValue(ADC1); //返回最近一次 ADC 采取的數(shù)值**再寫個函數(shù) 取平均值,大概每 10 次取平均值即可**

? ?

6.計算水濁度

? ?根據(jù)商家提供的計算公式或例程可以計算出 所對應(yīng)的 水濁度信息 (獲取電流)

	adcx=Get_Adc_Average(ADC_Channel_1,10); //獲取到 電壓平均值		temp=(float)adcx*(3.3/4096);	temp = temp*100/3.3;	if(temp > 100) temp = 100;

?

7.通過串口發(fā)送到串口調(diào)試助手

(1)初始化串口

GPIO_InitTypeDef GPIO_InitStrue;	USART_InitTypeDef USART_InitStrue;	NVIC_InitTypeDef NVIC_InitStrue;		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //使能 USART1		GPIO_InitStrue.GPIO_Mode = GPIO_Mode_AF_PP;	//復(fù)用推挽輸出								//USART1_Tx  USB Rx  STM32中為 Tx,需要接到 USB轉(zhuǎn)TTL串口中的 Rx	GPIO_InitStrue.GPIO_Pin = GPIO_Pin_9;	GPIO_InitStrue.GPIO_Speed = GPIO_Speed_10MHz;		GPIO_Init(GPIOA,&GPIO_InitStrue);		//USART1_Rx  USB Tx	GPIO_InitStrue.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入						GPIO_InitStrue.GPIO_Pin = GPIO_Pin_10;	GPIO_InitStrue.GPIO_Speed = GPIO_Speed_10MHz;		GPIO_Init(GPIOA,&GPIO_InitStrue);		USART_InitStrue.USART_BaudRate = 115200;	USART_InitStrue.USART_HardwareFlowControl = USART_HardwareFlowControl_None;	USART_InitStrue.USART_Mode = USART_Mode_Tx|USART_Mode_Rx;			USART_InitStrue.USART_Parity = USART_Parity_No; 	USART_InitStrue.USART_StopBits = USART_StopBits_1; 	USART_InitStrue.USART_WordLength = USART_WordLength_8b;		USART_Init(USART1,&USART_InitStrue);		USART_Cmd(USART1,ENABLE);															USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); 		NVIC_InitStrue.NVIC_IRQChannel = USART1_IRQn;//設(shè)置中斷	NVIC_InitStrue.NVIC_IRQChannelCmd = ENABLE;	   	NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority = 1; //搶占優(yōu)先級1	NVIC_InitStrue.NVIC_IRQChannelSubPriority = 1;			//子優(yōu)先級1		NVIC_Init(&NVIC_InitStrue);

?
(2)中斷發(fā)送數(shù)據(jù)

void USART1_IRQHandler(void)                {			  u8 s;	  while(*s!="/0")	{ 		while(USART_GetFlagStatus(USART1,USART_FLAG_TC )==RESET);			USART_SendData(USART1,*s);		s++;	}} 

?

最后

? ?第一次嘗試編寫博客,若是有什么建議,歡迎批評指出。

? ?后續(xù)會逐步分塊更新,并會在最后一篇文章上傳源代碼。

? ?若是該文章對你有作用或是覺得文章寫得還行,幫忙點點贊,三連!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/121369.html

相關(guān)文章

  • 基于ShineBlink物聯(lián)網(wǎng)開發(fā)板和機智云平臺開發(fā)的“針對短期內(nèi)寵物無人照顧的智能寵物屋”系統(tǒng)

    摘要:為了解決人們因工作出差旅游等短期時間內(nèi)家中寵物無人照顧的問題,我們基于物聯(lián)網(wǎng)開發(fā)板機智云平臺和各類傳感器模塊研究設(shè)計了一套針對短期內(nèi)寵物無人照顧的智能寵物屋系統(tǒng)。 正式介紹作品前先說明一下,我是湖南文理學(xué)院計算機與電氣工程學(xué)院的一名大三學(xué)生,我叫陳海濤。作品全部內(nèi)容均為個人創(chuàng)意、個人設(shè)計并手...

    jerryloveemily 評論0 收藏0
  • “云原生邊緣計算”會成為“嵌入式計算”的終結(jié)者嗎?

    摘要:全球最大的開源基金會軟件基金會的董事甚至認為,云原生邊緣計算意味著嵌入式計算的終結(jié)。這次我們不妨更加透徹的談?wù)?,云原生邊緣計算和嵌入式計算,將如何融合相互借勢。云原生?yīng)用,即指專門為在云平臺部署和運行而設(shè)計的應(yīng)用。這是我在【物女心經(jīng)】專欄寫的第105篇文章。嵌入式計算已經(jīng)笑傲江湖多年,然而,最近它的地位似乎正在受到某種撼動。全球最大的開源基金會——Apache軟件基金會的董事Roman Sh...

    chnmagnus 評論0 收藏0
  • 邊緣計算對企業(yè)的業(yè)務(wù)適用嗎?

    摘要:對于采取邊緣計算的企業(yè)來說,制定全面戰(zhàn)略的五個主要組成部分如下確定目標(biāo)和要求,包括業(yè)務(wù)目標(biāo)驅(qū)動因素以及品牌,客戶和投資回報要求。 像大多數(shù)新的IT技術(shù)發(fā)展一樣,邊緣計算并不是一場革命,相反,它更像是一個進化。邊緣計算的根源在于早期的內(nèi)容交付和點對點網(wǎng)絡(luò)以及網(wǎng)格計算。然而,隨著網(wǎng)絡(luò),計算和分析技術(shù)能力的提高以及...

    zhangfaliang 評論0 收藏0
  • 邊緣計算對企業(yè)的業(yè)務(wù)適用嗎?

    摘要:對于采取邊緣計算的企業(yè)來說,制定全面戰(zhàn)略的五個主要組成部分如下確定目標(biāo)和要求,包括業(yè)務(wù)目標(biāo)驅(qū)動因素以及品牌,客戶和投資回報要求。 像大多數(shù)新的IT技術(shù)發(fā)展一樣,邊緣計算并不是一場革命,相反,它更像是一個進化。邊緣計算的根源在于早期的內(nèi)容交付和點對點網(wǎng)絡(luò)以及網(wǎng)格計算。然而,隨著網(wǎng)絡(luò),計算和分析技術(shù)能力的提高以及大規(guī)模數(shù)據(jù)增長的需求,意味著計算對于IT管理人員而言將變得越來越重要。?隨著大量數(shù)據(jù)...

    whjin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<