게시됨 2026-02-14
안녕 친구들! PWM(Pulse Width Modulation) 신호를 사용하여 제어하려고 합니까?서보 기구, 타이머를 선택하는 데 문제가 있나요? 특히 인터넷에서 누군가가 "고급 타이머를 사용해야 합니다"라고 말하는 것을 보면, 서두르는 듯한 느낌이 드나요? 걱정하지 마십시오. 오늘 우리는 이 문제를 명확하게 설명할 것이며, 듣고 나면 무엇을 선택해야 할지 이해할 것이라고 보장합니다.
사실 이것은 엄청난 오해이다. PWM 신호는 다음과 같습니다.서보 기구직설적으로 말하면 주기가 20ms이고 높은 수준의 시간이 0.5ms에서 2.5ms 사이인 구형파입니다. 이 요구 사항은 어렵게 들리지만 대부분의 일반 타이머에게는 매우 쉬운 일입니다.
생각해보면 일반 타이머가 가장 잘하는 것은 출력 비교 기능과 PWM 모드입니다. 50Hz(즉, 20ms 주기)의 주파수로 PWM 파동을 생성할 수 있고 듀티 사이클을 2.5%~12.5% 사이에서 미세하게 조정할 수 있다면 충분합니다. 시중에 나와 있는 단일 칩 컴퓨터의 가장 일반적인 타이머에는 이 기능이 있습니다.
이 시점에서 고급 타이머의 존재 의미가 무엇인지 묻고 싶을 수도 있습니다. 보완 출력, 데드존 제어, 제동 기능 등 놀라운 기능은 주로 모터, 인버터 등 복잡한 장비를 제어하기 위해 준비됐다.
예를 들어, 브러시리스 모터 드라이버를 만들고 상부 및 하부 브리지의 MOS 튜브 스위치를 동시에 제어해야 하는 경우 고급 타이머의 보완 출력 및 데드존 제어 기능을 사용해야 합니다. 그리고 서보를 제어할 때 간단한 PWM 신호만 있으면 되는데, 이는 마치 칼로 닭을 죽이는 것과 같기 때문에 전혀 필요하지 않습니다.
일반 타이머로도 충분하니 선택할 때 무엇을 살펴봐야 할까요? ️ 먼저 달성할 수 있는 최소 듀티 사이클 조정 정확도인 타이머의 분해능을 살펴보세요. 서보의 경우 0.5°의 제어 정확도에는 약 20마이크로초의 시간 분해능이 필요하며 이는 대부분의 16비트 타이머에서 쉽게 충족할 수 있습니다.
️ 둘째, 타이머 수를 살펴보세요. 때로는 프로젝트에서 여러 서보를 제어해야 할 수도 있습니다. 모두가 동일한 타이머의 다른 채널을 사용하도록 할 수는 없습니다. 그렇죠? 나중에 타이머가 부족해지는 것을 방지하려면 보드에서 사용할 수 있는 일반 타이머 수를 미리 계산해야 합니다.
현재 시장에 나와 있는 주류에는 STM32, GD32 및 ESP32가 포함되어 있지만 상황은 동일하지 않습니다. 가장 일반적으로 사용되는 시리즈를 예로 들면 고급 타이머는 TIM1 및 TIM8이고 일반 타이머는 TIM2, TIM3, TIM4 및 TIM5입니다. 서보를 제어하기 위해 후자의 몇 가지를 사용하는 것은 문제가 되지 않습니다.
ESP32를 사용하면 각 타이머를 유연하게 구성할 수 있으며 기본적으로 강력한 PWM 생성기인 전용 LEDC(LED 제어) 모듈도 있습니다. 따라서 IDE를 사용하여 개발하든 ESP-IDF(사물 인터넷 개발 프레임워크)를 사용하여 개발하든 타이머 채널을 찾는 것만으로 서보를 구동할 수 있습니다.
하드웨어 연결은 매우 간단합니다. 서보의 신호 라인을 마이크로컨트롤러의 PWM 출력 핀에 직접 연결하기만 하면 됩니다. 공통 접지에 주의하십시오. 즉, 둘의 GND(접지선)를 함께 연결하십시오. 전원 공급 측면에서 소형 서보는 개발 보드의 5V를 직접 사용할 수 있으며 대형 서보는 별도로 전원을 공급하는 것이 가장 좋습니다.
코드 구성의 핵심은 타이머 주기를 20ms로 설정한 후 원하는 서보 각도에 따라 해당 비교 값을 계산하는 것입니다. 예를 들어 0°는 0.5ms 하이 레벨에 해당하고 비교 값은 타이머 카운트 값의 2.5%입니다. 이는 표준 라이브러리 또는 HAL 라이브러리(Hardware Abstraction Layer Library)에 미리 만들어진 기능을 가지고 있으므로 루틴을 따르고 수정하면 됩니다.
나는 많은 친구들이 이 문제로 인해 넘어지는 것을 보았습니다. 가장 일반적인 함정은 타이머의 클럭 주파수를 확인하는 것을 잊어버려서 비교 값이 부정확하게 계산되는 것입니다. 예를 들어, 타이머의 클럭은 72MHz이고 사전 스케일링 후 카운터 주파수는 1MHz입니다. 그 수는 1 마이크로초입니다. 1.5ms라는 높은 레벨을 원하시면 비교값을 1500으로 설정하시면 됩니다. 계산하기 쉽습니다.
또 다른 함정은 PWM 핀 충돌입니다. 일부 타이머의 채널 핀은 다른 주변 장치에 의해 점유되거나 보드에 핀으로 고정되지 않을 수 있습니다. 따라서 타이머를 선택하기 전에 회로도를 살펴보고 사용하려는 핀이 무료인지 확인하는 것이 가장 좋습니다.
이 글을 읽고 나면 이미 아이디어가 떠오르시나요? 서보 구동 요구 사항에는 일반 타이머로 충분합니다. 고급 타이머를 계속 주시할 필요가 없습니다. 물론, 어떤 칩을 선택할지, 어떤 타이머를 사용할지 결정하려면 해당 회사의 공식 홈페이지에서 데이터시트와 애플리케이션 노트를 다운로드해 자세히 살펴보는 것이 가장 좋다. 그런데 현재 어떤 유형의 마이크로컨트롤러를 사용하고 있으며, 얼마나 많은 서보를 제어할 계획인가요? 여러분의 프로젝트를 공유하고 싶다면 댓글창에 메시지를 남겨주세요. 함께 소통하며 발전해나가세요! 이 기사가 유용하다고 생각되면 좋아요를 누르고 이를 필요로 하는 더 많은 친구들과 공유하는 것을 잊지 마세요.
업데이트 시간:2026-02-14