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에 대한 간단한 설명이다.

센서 핀 배치도

온도별 출력전압
