飛行船の制御 その2 – プロポからArduinoを使ってDCモーターをPWM制御してみる

ss2014-05-29-18.37.13

プロポ信号からPWM制御

前回まではプロポからの信号をArduinoを使って読み取ることまでは行いましたが、
今回はその信号をもとにモータードライバを使ってDCモーターのPWM制御を行いました。

PWMの出力にあたっては以下のサイトを参照しました。
ありがとうございます。
http://monoist.atmarkit.co.jp/mn/articles/1401/07/news003_2.html

コード

今回書いたコードは以下のとおり

処理の流れを簡単に説明すると

プロポから受け取った1100~1900までの信号をPWM出力できる-255~255にmap関数を使って変換。
※ただし、プロポからの信号に若干の誤差が含まれるためまれに-255~255の範囲を超えた出力をしてしまう時があり、そうなるとDCモーターにかかる電圧が急激に変動したりするのでconstrain関数を使い最小値と最大値がそれぞれ範囲内に収まるように調節します。

あとは出力に設定したピンでanalogwrite関数を使いPWM出力をしてあげればプロポのレバーの強弱に合わせてDCモーターの強弱も強弱します。
※ここでも、PWMが負の値の時にif文の中身でマイナスを付けて打ち消さないと動作不良の原因になるので注意してください。

今回の作業でだいぶ飛行船の制御に近づいたように感じます。
ただモーターが回るだけでもプロポから操作するだけで結構楽しいです(笑)

実際の動作

最後に実際に動かしている動画を載せておきます。

スポンサーリンク
スポンサーリンク