amnjackのNewWeblog

電子工作中心に雑多なカテゴリー構成ですが,興味のあるジャンルがありましたらご覧ください。

サーボモーターであちゅんで見た

2024年09月29日 | electro_craft

先日のステッピングモータに続いてサーボモーターが安かったので,ardiunoをだして遊んでみた。

ardiunoのいじりからについてはもうすっかり忘れてしまって,なにがどうなんだか訳が分からない。まあいじり直しって言うか,学び直し。

手に入れたサーボはこんなモノ。2個口で270円(今見たら値上がりしてる)。32mm×31mm×12.5mmと小さい。

サーボって言うのはパルス幅で動作するんだっけ・・・

※この表は誤りで次のページに訂正した表を載せました。

180°のモータはこの数値を入れてやれば良いはず。ただし μ secondで記入するみたい。

いろんなところからスケッチらしきモノを探してアレンジ(感謝!)。

これで試してみました。以下がスケッチ

 

void setup() {
pinMode(10, OUTPUT);
}
void loop() {
digitalWrite(10, HIGH);
delayMicroseconds(1500);  //中立 0deg
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delayMicroseconds(2500); //90deg
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delayMicroseconds(1500); //0deg
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delayMicroseconds(500);  //-90deg
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delayMicroseconds(1500);  //0deg
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);  
delayMicroseconds(2000);   //45deg
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delayMicroseconds(1500);  //0deg
digitalWrite(10, LOW);
delay(1000);
digitalWrite(10, HIGH);
delayMicroseconds(1000);  //-45deg
digitalWrite(10, LOW);
delay(1000);
}
 
動作はこんなモノでした。どこかにミスがあるのかしら?±45°野市がぎこちないし,中立で止まってない。さて分からない??
 
サーボモータを動かしてみる-1
取りあえず次に
ライブラリからservo.hを使うともっと単純化されるみたい
 
#include<servo.h>
Servo myservo;
const int SV_PIN = 10;
void setup() {
myservo.attach(SV_PIN, 500, 2400);
}

void loop() {
myservo.write(0); // サーボモーターを0度の位置まで動かす
delay(1000);
myservo.write(90); // サーボモーターを90度の位置まで動かす
delay(1000);
myservo.write(0); // サーボモーターを0度の位置まで動かす
delay(1000);
myservo.write(180); // サーボモーターを180度の位置まで動かす
delay(1000);
myservo.write(0); // サーボモーターを0度の位置まで動かす
delay(1000);
myservo.write(45); // サーボモーターを45度の位置まで動かす
delay(1000);
myservo.write(0); // サーボモーターを0度の位置まで動かす
delay(1000);
myservo.write(135); // サーボモーターを0度の位置まで動かす
delay(1000);
}
 
サーボモータを回してみる-2
 
何かぎごちないですが,,,,スケッチの不備とか数字をいじってみて堂なのかはゆっくり検討します。※10/1 少し手直ししました。
 
 
このほかにも問題山積。
先ず,Arduino UNOの古いバージョン(R2)が認識されない。IDEの1.18.19でもポートは認識されないから,IDEの最新IDE2.3.3の問題ではないみたい・・・・・2.3.2の時はblinkをかきこめたんだけど,,,,
しかたなしに,aitendoの互換機binbodeiinoでやってみた次第。
取りあえずはこのまま「貧乏でいいの」で進めてみます。その他の互換機もあるのでこっちも試してみます。
 
このあとは,555タイマーを使ってデューティー比を変えて動かしてみるとか・・・
これでお試ししてみたけど,
動作がものすごく不安定。よく見てみたら1kHzでした・・・・サーボの場合は50Hzが基本みたいですね。パルス生成期を探すか,作ってお試しします。
てなことで,いろいろといじりましょう。
今日はここまで
 
詳しい方が折りましたら,教えてください。全くの初心者です。
 
コメント    この記事についてブログを書く
« DAISO ミラークロックの減光 | トップ | サーボモータであちゅんで見てる »
最新の画像もっと見る

コメントを投稿

electro_craft」カテゴリの最新記事