STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (14) PWMでサーボモーター(SERVO)を動かしてみようの続きです。
今回は、STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (13) ADCをOLEDへ表示させようを活用して可変抵抗に合わせてサーボモーターを動かしてみます。
(13)のファイルにSTM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (13) PWMでサーボモーター(SERVO)を動かしてみようを見てサーボの設定を加えます。
##配線
STM32CubeIDEを使ってみよう How To STM32CubeIDE 日本語版 (12)にServoの配線を追加したものになります。
##設定
ピン設定です。
##コード追加
PWMのスタートと、サーボの設定をします。
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
サーボは、今回 servovalを用意しました。
float servoval;
servovalには、可変抵抗の変化に合わせて値を入れていきます。
25~125の間で動いてほしい
可変抵抗は、0~4096です。
今回は、(adcval*0.024)+25としました。
この値は各自で調整してみてください
万が一、サーボモーターが発熱したり、異音を発していたら、コネクタを外してください。
範囲外に移動させようとすると異音や、発熱します。
servoval= (adcval*0.024)+25;
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,servoval);
HAL_Delay(500);
追加したコードです。
以上で、可変抵抗のボリュームに合わせてサーボモーターが動くようになったはずです。
プログラムはこちらで公開しています。
https://github.com/taisirou/STM32-CubeIDE-Full/tree/master