2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

小型リニアアクチュエータをArduino+A4988+CNCシールドで駆動させる

Last updated at Posted at 2020-11-22

#小型リニアアクチュエータをArduino+A4988+CNCシールドで駆動させる

2相ステッピングモータ搭載、小型リニアアクチュエータ(D8-MOTOR80形搭載)を手に入れ、駆動させることに成功したのでそのメモ

また、CNCシールドを使って複数のリニアアクチュエータを動かした

こんなに小さいのに想像以上のトルクでびっくりでした

リニアアクチュエータ.png

#リニアアクチュエータ(D8-MOTOR80形搭載)仕様
駆動電圧DC 12V
1相あたり800アンペア/相
コイル抵抗15 10%Ω/相
ステップ角18。 / step
励磁法1-2相励磁
ドライブモードバイポーラドライバ
125pps
1600 ppsを超える最大応答周波数
最大開始周波数が1100 ppsを超える
モーター表面温度80°C
ねじ棒径3mm
ねじ棒の長さ90 mm
スライダストローク80mm
ねじ棒ピッチ±0.5mm
長さ10.3 cm / 4.1インチ
重さ50グラム(約)


↑これはAmazonの説明書きだが、この情報以外に、製品の詳しい日本語の情報は全く見当たらず、中国語の情報を参考にした。
(百度でD8-MOTOR80と検索すれば色々と情報が得られる。)

スクリーンショット 2020-11-06 20.47.28.png

A4988の1A1B2A2Bには上記の図を参考に色を合わせてつなげば良い。

翻訳↓

注意点: モーターは全てドライバによる駆動が必須です、直接電源を接続できません!ドライバーA4988を手配すること。
以下はドライバーのリンク。

製品参考データ:
製品型番: D8-MOTOR80
(ステッピング)モーター類型:2相4線
定格電圧: 9V-12V (電圧を上げていくと、トルクも上がります、ただしそれに伴って、発熱も大きくなります)
電流: 800mA/phase
スクリュー(ネジ棒)長さ: 90mm
レール長さ: 80mm
モーター直径: 15mm
スクリュー直径: 3mm
スクリューピッチ: ±0.5mm ※一歩の移動は0.25mm,もしさらに小さくしたい場合は、マイクロステップを採用できます。
歩角度: 18度
駆動方式: 2段階駆動
全体長さ: 15x105mm
重量: 46g
直線走行の速度は毎秒25mm

スクリーンショット 2020-11-06 21.07.11.png

赤 → A+
黄 → A-
青 → B+
黒 → B-

A+ A- B+ B- はA4988ドライバに対して
1A 1B 2A 2Bとする

A+ → 1A
A- → 1B
B+ → 2A
B- → 2B

赤 → A+ → 1A
黄 → A- → 1B
青 → B+ → 2A
黒 → B- → 2B

#Arduino UNO+CNCシールドを使用
Arduino UNOにCNCシールドを接続する。
これはピンに差し込むだけである。
また準備したA4988ドライバをそれぞれのソケットに接続する。

IMG_1907.JPG

CNCシールドとArduinoUNOのピンの対応は以下の通りである。

CNCシールド対応リスト.png

今回はxとzを使用しました

以下はリニアアクチュエータを二機同時に動かすArduinoのスケッチ。
CNCシールド


int Speed = 900;
int Step = 20;

const int xstep = 2;
const int xdir = 5;
const int zstep = 4;
const int zdir = 7;

void setup(){
  Serial.begin(9600);

  pinMode(xstep,OUTPUT);
  pinMode(xdir,OUTPUT);

  pinMode(zstep,OUTPUT);
  pinMode(zdir,OUTPUT);

  digitalWrite(zdir,HIGH);
  digitalWrite(xdir,HIGH);
}

void loop() {
  if(Serial.available()){
    byte buf;
    while (1) {
      if(Serial.available()){
        buf = Serial.read();
       }
       if(buf == 'A'){ 
        digitalWrite(zdir,HIGH);
        digitalWrite(xdir,HIGH);
        for (int u=0; u <=Step; u++){
           digitalWrite(xstep,HIGH);
           digitalWrite(zstep,HIGH);
           delayMicroseconds(Speed);
           digitalWrite(xstep,LOW);
           digitalWrite(zstep,LOW);
           delayMicroseconds(Speed);
        }
       } else if(buf == 'B'){
        digitalWrite(zdir,LOW);
        digitalWrite(xdir,LOW);
         for (int d=0; d <=Step; d++){
           digitalWrite(xstep,HIGH);
           digitalWrite(zstep,HIGH);
           delayMicroseconds(Speed);
           digitalWrite(xstep,LOW);
           digitalWrite(zstep,LOW);
           delayMicroseconds(Speed);
        }
       }
    }
  }
}

パルス間隔(周期):Speed は適切な値を設定すること。
確認はしていないが上述の情報でおそらく毎秒25mmが最大速度だと思われる。

18deg/stepのモーターなので、1回転は20STEP。
1回転で0.5mm進む。

このスケッチでは、シリアルモニターにコマンドA Bを送信すると設定したステップ数まで進みます。

今後時間があるとき、性能評価をしたいと思います。

※12Vで使用すると結構発熱します、そのまま使用すると火傷しますので、必ず強制冷却処理してください。
私はステッピングモーターの後面から冷却するようにファンを取り付けています。

性能評価もしました↓
https://zenn.dev/_kazuya/articles/7b8a421b1b1b4f

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?