목록ADC (3)
승코딩당당당
이번 실습에서는 STM32 Nucleo 보드(STM32L0 계열)를 기반으로 HAL 라이브러리를 활용하여 ADC, Timer, PWM, GPIO 인터럽트, UART 통신을 함께 사용하는 복합 예제를 구현해보았다. ADC를 통해 LM35 온도 센서의 아날로그 값을 읽고, Timer 인터럽트를 이용해 1초 주기의 주기 동작을 수행하며,TIM2의 PWM 기능을 활용해 PWM 듀티 비를 단계적으로 변경한다.또한 버튼과 진동 센서를 외부 인터럽트(EXTI) 방식으로 처리하여 이벤트 기반 입력 처리 구조를 확인한다. UART 통신을 통해 측정된 값과 상태 메시지를 출력함으로써, 임베디드 시스템에서 자주 사용되는센서 입력 → 타이머 기반 제어 → PWM 출력 → 시리얼 디버깅의 전체 흐름을 하나의 프로젝트 안에서 실..
이번 글에서는 STM32 Nucleo-L073RZ 보드를 이용해 LM35 아날로그 온도 센서의 출력을 ADC로 읽고, VDDA 보정을 적용해 보다 정확한 온도를 계산하는 방법을 정리한다. 단순히 ADC 값만 읽는 것이 아니라, SYS_GetBatteryLevel()로 현재 보드의 VDDA(전원 전압)를 실시간으로 측정한 뒤, 이를 이용해 LM35 센서의 출력 전압을 보정하고 섭씨 온도로 변환하는 과정을 코드와 함께 살펴본다. 실습에서는 내부 ADC를 ADC 채널 0으로 설정하고, ADC_ReadChannels()로 읽어온 값을 바탕으로 아래와 같은 계산식을 사용해 온도를 구한다. temp = ((measuredLevel * Vdda) / 40950); 이때 40950라는 상수는 12비트 ADC 해상도(0..
임베디드 시스템은 하드웨어와 소프트웨어가 긴밀하게 연결된 구조를 가지며, 그 중심에는 센서와 액츄에이터, 그리고 이들을 연결하는 다양한 인터페이스가 존재한다.이 글에서는 임베디드 시스템의 기본적인 하드웨어 구조부터 입력 센서와 출력 액츄에이터의 역할을 살펴보고, 아날로그·디지털 신호의 차이와 신호 변환 과정에 대해 정리한다. 또한 MCU와 주변 장치 간 통신을 가능하게 하는 인터페이스 개념을 중심으로 ADC, GPIO, UART, I2C, SPI와 같은 대표적인 통신 방식의 특징을 비교하며 이해한다.통신의 방향성과 데이터 전송 방식, 데이터율(Baud rate, Bit rate)의 개념까지 함께 다루어 임베디드 시스템에서 인터페이스가 왜 중요한지를 흐름 있게 설명한다. 마지막으로 UART 기반 시리얼 통..