서보모터 제어(feat. PW M) Wiring Pi와 C언어를 이용한
이번 포스팅에서는 W iring Pi와 C 언어를 이용하여 서보 모터를 제어하는 방법에 대해 알아보겠습니다. 서보 모터를 제어하기 위해서는 서보 모터의 작동 방법과 PWM에 대한 이해가 필요합니다.PWM의 정의와 동작 원리는 PWM을 이용한 아날로그 출력 및 디지털 센서 값을 취득하는 with 파이썬 포스팅을 PWM을 이용한 서보모터 작동 방법은 라즈베리 파이를 이용한 서보모터 제어 포스팅을 참조하십시오.wiring Pi 라이브러리와 C언어를 사용하여 서보 모터를 제어하려면 다음과 같은 함수가 필요합니다. PWM 을 사용할 GPIO핀, 초기값, 주기를 설정합니다. pwm Range는 pwm 주기이며 단위는 100개 입니다. 여기에 사용되는 서보모터인 sg90 서보모터는 PWM주기가 20ms 이므로 sg90 서보모터 사용시 200을 주면 됩니다. 지정된 핀 번호로 dutycycle을 지정합니다. 여기서 dutycycle은 앞서 언급했던 softPwmCreate함수의 pwmRagnge 범위 안에 값을 사용하겠습니다. 백분율이 아닌 주기 중의 dutycycycle 시간을 의미합니다. sg90 서보 모터의 경우 1~2ms가 dutycycle을 주어 제어되기 때문에 1ms는 -90도, 1.5ms는 0도, 2ms는 90도 각도로 움직이기 때문에 이것을 100초로 환산하면 10을 넣으면 -90도, 15는 0도, 20은 90도 각도로 이동합니다. 서보 모터를 두 개 연결해서 제어를 해보도록 하겠습니다. 회로도는 아래와 같고 GPIO18번, GPIO16번 핀에 접속되어 있습니다. 제어프로그램은 다음과 같습니다. - 이전 포스팅에서도 사용했던 함수인데, wiring PiSetup Gpio();를 사용하여 Broadcom 핀 번호를 사용하였습니다. wiring Pi 핀 번호는 익숙하지 않고 T 코브라를 사용하기 때문에 그 함수를 사용했습니다. wiring Pi 핀 번호가 더 익숙한 분은 wiring PiSetup() 함수를 사용합니다.나머지 부분을 소스는 위에서 설명한 ...