アフィリエイト広告
アフィリエイト広告

2台のサーボモータを動かしてみる

「サーボモータを動かしてみる」では、サーボモータの基本的な動かし方を試してみました。

サーボモータを動かしてみる
すでに「Arduino のマルチタスク」でサーボモータを動かしているのですが、ちょっと基本的なことを試してみたいと思います。 どうすれば動く? えーと、ググってください m(_ _;)m まぁ簡単に言うと、スケッチ例「servo」の中の「k...

その時はサーボモータが 1 台しかなかったのですが、注文しておいたサーボモータが届いたので、今回は 2 台のサーボモータが独立して動くことを確認してみます。

回路図

2台のサーボモータを動かす

基本的に変更はありません。

ボリュームを増やし、サーボモータを増やすだけです。
もちろん、3 台でもかまいませんが、充分な電源容量を確保して下さい。

スケッチ

クラスを使ったスケッチです。こちらも変更はありません。

台数分のオブジェクトを生成し (33 行) 、サーボモータを接続するピン番号を増やし (37 行) 、Update() を呼び出す (42 行) だけです。

  1. #include <Servo.h>
  2. class Follow {
  3.     Servo myservo;
  4.     byte potentiometerPin;
  5.     int value;
  6.     byte interval;
  7.     unsigned long previousMillis;
  8.   public:
  9.     Follow(byte pin) {
  10.       potentiometerPin = pin;
  11.       value = 0;
  12.       interval = 15;
  13.       previousMillis = millis();
  14.     }
  15.   void Attach(byte servoPin) {
  16.     myservo.attach(servoPin);
  17.   }
  18.   void Update() {
  19.     if(interval < millis() - previousMillis) {
  20.       value = analogRead(potentiometerPin);
  21.       value = map(value, 0, 1023, 0, 180);
  22.       myservo.write(value);
  23.       previousMillis = millis();
  24.     }
  25.   }
  26. };
  27. Follow follow1(0);
  28. Follow follow2(1);
  29. void setup() {
  30.   follow1.Attach(9);
  31.   follow2.Attach(10);
  32. }
  33. void loop() {
  34.   follow1.Update();
  35.   follow2.Update();
  36. }

ブレッドボード

2台のサーボモータを動かす

実験中のブレッドボードです。

一番上は電源回路です。
入力 12V を三端子レギュレータ 7805 でサーボモータ駆動用の 5V にしています。電流出力は 1A 程度ですので、接続できるサーボモータは 2 ~ 3 台ですね。

中央はおなじみの Arduino UNO 。
駆動は 12V です。5V 出力をボリュームの電源に利用しています。

下のブレッドボードに、ボリュームとサーボモータの電源コンデンサを置いてあります。
ボリュームはパーツ屋さんにあったジャンク品。購入するならツマミ付きが使いやすいですね。

ということで

2 台のサーボモータを独立して動かすことができるようになりました。さらに台数を増やすことも可能です。LED や制御用のスイッチを追加していくこともできます。

Arduino のマルチタスク (6) すべてを一緒に
PSO2NGS のレベリングをしているかと思いきや、ちょいと忙殺されてまして、全然レベルが上がってません (;´Д`) さて、Arduino のマルチタスクとクラスについての勉強も、Part 1 の最終回です。参考にさせていただいた下記サイ...

ん?これってロボット製作への第一歩なのか (^_^;)

タイトルとURLをコピーしました