Memoプログラミングについてのメモ。勉強メモakizukidenshi.comakizukidenshi.com以上を接続して、制御してみます。駆動にはArduinoの標準ライブラリであるServoを利用します。配線シンプルなので、直接Arduinoのpinにサーボモーターのコードをさします。茶色はグランドなので、ArduinoのGNDへ赤は4.8Vの電源供給なので、Arduinoの5Vへオレンジは信号線なので、Arduinoの9か10のデジタルピンへ(ここでは、9にしました)動作の決定Servoライブラリでは、以下の2つの関数でサーボモーターを制御できます。write(0〜180)サーボの角度が指示の度数になるように回転させる連続回転タイプのサーボの場合は、0で振るスピード回転。180で逆方向に振るスピード回転。標準的なサーボモーターでは、1000で反時計回りいっぱい、1500が中央,2000が時計回りいっぱい。この範囲外が使えるものもあるwriteの0と180の方向や、writeMicrosecondsの意味がよくわからないので、その辺りを試せるスケッチを作成しましょう。以下のステップで動かすことにします。開始したら、write(0)を実行2秒待つwrite(180)を実行2秒待つwrite(90)を実行2秒待つwriteMicroseconds(1000)を実行2秒待つwriteMicroseconds(2000)を実行2秒待つwriteMicroseconds(1500)を実行4秒待つスケッチの作成Arduinoアプリを起動して、以下のコードを書きます。上記のスケッチをビルドして、プログラムを書き込むと、サーボモーターが0の位置に移動して停止します。この状態で、プロペラをわかりやすい位置になるように取り付けましょう。プロペラが取り付けられたら、以下のようにスケッチ内のINITの宣言をfalseに変更して、ビルドしてプログラムを書き込みます。false;これで、テスト内容が動きます。これにより、SG-90の挙動として以下のことが把握できました。write(0)は、時計回りで端まで動くwrite(180)は、反時計回りの端まで動くwrite(90)は、上記の中央に動くwriteMicroseconds(1000)は、時計回りで45度ぐらいのところに動くwriteMicroseconds(2000)は、反時計回りで135度ぐらいのところに動くwriteMicroseconds(1500)は、write(90)と同じ場所になる以上で、テスト完了です。回転速度が変わるわけでもなさそうで、writeMicroseconds()の使い所がよく分かりませんが、まあそれはいいでしょうということで。write()で進めます。Framewo...2016-09-27Arduinoの電源関連メモ(追記あり)(解決策を3回の移動平均に変更しました。»プロフィールid:am1tanakaプログラミングについてのメモ。Page月別アーカイブはてなブログをはじめよう!am1tanakaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。