Arduinoとポテンショメーター(可変抵抗)で動かす連続回転サーボ

はてなブックマーク - Arduinoとポテンショメーター(可変抵抗)で動かす連続回転サーボ
LINEで送る
Pocket

こんな記事を書きました

ESP32でウェブからサーボを制御する!

obniz サーボを動かしての第一印象、これは未来だ!

今日の記事は

Arduinoからサーボを動かす方法をご紹介します。しかも!連続回転サーボも投入してみました!

目次

Arduinoとポテンショメーターで動かす連続回転サーボ

連続回転サーボはこちらです。

文字通り、回転は180度とか、270度が限界ではなく

モーターのように連続的に回転できます。

今、動きが確認しやすいように

車輪をつけています。

将来は、これの発展形で倒立振子でも作ろうかなと思います。

部品もそのまま使えますし、今回のために二つを購入しましたので。

接続

サーボGND  –>  Arduino GND

サーボV           –>  Arduino 5V

サーボS           –>  Arduino  pin3

ポテンショメーターGND  –> Arduino GND

ポテンショメーターV         –> Arduino 3.3V

ポテンショメーターS         –> Arduino A0

私は少し空中の部分があるから、延長だと考えてください。笑

ポテンショメーター、可変抵抗ってもう言わないのかな。

Arduinoの本体です。

純正のものです、もちろん、互換ボードでも全然問題なく動くと思います。

全体像はこんな感じです。

今回使っているポテンショメーターは

他の何かを購入した時に付いてきたものです。

もう覚えていないです!笑

この実験をしたくて、探していたら、出てきたので、これを使おうと言うことで!笑

写真では伝わないですが、ポテンショメーターを左右に回して、中間をすぎると、回転が逆になります。

中間に位置すると、回転が止まります。

なかなか楽しいです!笑。

 

プログラム

プログラムもとても簡単です。

#include <Servo.h>

Servo servo;//サーボのインスタンス

void setup(){
  //サーボの信号線を3番ピンに接続
  //(PWMピン以外のピンにも接続可)
  servo.attach(3);
  Serial.begin(9600); 
}

void loop(){
  //センサの読み取り値
  int val=analogRead(0);
  Serial.println(val);
  //map()を使って0~678のセンサ読取り値を0~180の角度に変換
  int angle=map(val,0,678,0,180);
  //サーボ出力
  Serial.println(angle);
  servo.write(angle);//0~180まで
}

「map()を使って0~678のセンサ読取り値を0~180の角度に変換」というところですが

最初は、センサーの値の範囲が分からなくて、中間にポテンショメーターを回しても、回転が止まらなくて

その後、シリアルモニターに値を出して確認しましたら、アナログの値が678でMAXで

他のセンサーも大量に実験して

0-678のレンジがほとんどですね。(原因がv3.3を使っているからです。)

従いまして、ここで、678に設定することによってサーボ回転の0-180度(サーボの場合、ここでは、-90度〜90度ですね)にマッピングがうまく行きました。

動作の動画はこちらどうぞ!

まとめ

もちろん、連続回転サーボを普通の180度のサーボに置き換えても動作します。

今回使った連続回転サーボと車輪はこちらです。

ポテンショメーターの回す角度と連動して、サーボも回転します。

これいろんな応用ができそうです!

ESP32を使えば、ポテンショメーターの値を飛ばして、受信側は受信したら、サーボで回転方向とスピードが制御できてしまいますね!

「制御」している感があって、楽しいですね!(^O^)

では、また次回!

はてなブックマーク - Arduinoとポテンショメーター(可変抵抗)で動かす連続回転サーボ
LINEで送る
Pocket

One Comment

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close