ARM

온도센서(LM35) 를 이용한 ADC

GunwooYun 2022. 4. 26. 00:03

board : STM32F103RB + I/O board

Sensor : LM35

Terminal : Putty

 

PA0 ADC

 

ADC Interrupt callback function, value 환산 후 터미널로 출력

 

// ADC interrupt start

HAL_ADC_Start_IT(&hadc1);

// adc convert complete callback function
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)

 

/* USER CODE BEGIN PV */
float adc_value;
/* USER CODE END PV */

/*****************************/

int main(void)
{
	 /* USER CODE BEGIN 2 */
     HAL_ADC_Start_IT(&hadc1); // ADC interrupt start
     /* USER CODE END 2 */
     
/* USER CODE BEGIN WHILE */
while (1)
{
	printf("temperature = %.2f\n\r", adc_value/Vout*10); // val / x mV * 10
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
    }
    /* USER CODE END 3 */
    
    /****************************/
    
// adc convert complete callback function
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc){
	adc_value = (uint16_t)HAL_ADC_GetValue(&hadc1);
    }

 

온도환산 방법(LM35)

출력 전압을 알면, 섭씨로 계산 가능하다. 

fomula : VOUT = 10 mv/°C × T

 

아래는 LM35에 대한 간단한 설명이다.

 

 

센서 핀 배치도

 

온도별 출력전압