「サーボモータを動かしてみる」では、サーボモータの基本的な動かし方を試してみました。
サーボモータを動かしてみる
すでに「Arduino のマルチタスク」でサーボモータを動かしているのですが、ちょっと基本的なことを試してみたいと思います。 どうすれば動く? えーと、ググってください m(_ _;)m まぁ簡単に言うと、スケッチ例「servo」の中の「k...
その時はサーボモータが 1 台しかなかったのですが、注文しておいたサーボモータが届いたので、今回は 2 台のサーボモータが独立して動くことを確認してみます。
回路図
基本的に変更はありません。
ボリュームを増やし、サーボモータを増やすだけです。
もちろん、3 台でもかまいませんが、充分な電源容量を確保して下さい。
スケッチ
クラスを使ったスケッチです。こちらも変更はありません。
台数分のオブジェクトを生成し (33 行) 、サーボモータを接続するピン番号を増やし (37 行) 、Update() を呼び出す (42 行) だけです。
- #include <Servo.h>
- class Follow {
- Servo myservo;
- byte potentiometerPin;
- int value;
- byte interval;
- unsigned long previousMillis;
- public:
- Follow(byte pin) {
- potentiometerPin = pin;
- value = 0;
- interval = 15;
- previousMillis = millis();
- }
- void Attach(byte servoPin) {
- myservo.attach(servoPin);
- }
- void Update() {
- if(interval < millis() - previousMillis) {
- value = analogRead(potentiometerPin);
- value = map(value, 0, 1023, 0, 180);
- myservo.write(value);
- previousMillis = millis();
- }
- }
- };
- Follow follow1(0);
- Follow follow2(1);
- void setup() {
- follow1.Attach(9);
- follow2.Attach(10);
- }
- void loop() {
- follow1.Update();
- follow2.Update();
- }
ブレッドボード
実験中のブレッドボードです。
一番上は電源回路です。
入力 12V を三端子レギュレータ 7805 でサーボモータ駆動用の 5V にしています。電流出力は 1A 程度ですので、接続できるサーボモータは 2 ~ 3 台ですね。
中央はおなじみの Arduino UNO 。
駆動は 12V です。5V 出力をボリュームの電源に利用しています。
下のブレッドボードに、ボリュームとサーボモータの電源コンデンサを置いてあります。
ボリュームはパーツ屋さんにあったジャンク品。購入するならツマミ付きが使いやすいですね。
ということで
2 台のサーボモータを独立して動かすことができるようになりました。さらに台数を増やすことも可能です。LED や制御用のスイッチを追加していくこともできます。
Arduino のマルチタスク (6) すべてを一緒に
PSO2NGS のレベリングをしているかと思いきや、ちょいと忙殺されてまして、全然レベルが上がってません (;´Д`) さて、Arduino のマルチタスクとクラスについての勉強も、Part 1 の最終回です。参考にさせていただいた下記サイ...
ん?これってロボット製作への第一歩なのか (^_^;)