質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • C

    4641questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Arduino

    689questions

    Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

C言語に関するご質問です。

受付中

回答 4

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 390

Snowflake

score 0

ご質問バイポーラ型のステッピングモータをアルディーノとL6470というモータドライバで動かすための配線とプログラムが知りたいですが、もしお分かりになるようであれば教えていただけないでしょうか。プログラムは複雑なものでなくてよく、正転、逆転だけで良いです。

追記
早速レスを頂いた方、ありがとうございます。基礎知識もない初心者で、仕事上どうしても必要になりこちらでご質問させていただきましたが、解決のために他にどんな情報が必要かもわかっておりません。もしそのあたりも含めてアドバイスいただけると非常に有難いです。よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2019/06/07 10:30

    >仕事上どうしても必要になり
    仕事で必要なことを質問サイトで片づけるのは仕事のやり方しては疑問です。
    どうしてもというのでしたら専門の業者や外注するのが確実でしょう。
    あなたがやるべきことは仕事の完遂であって、実作業をすることではないのでは。

    キャンセル

  • 退会済みユーザー

    2019/06/08 10:45

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • Snowflake

    2019/06/09 22:37

    K.matsuda 様
    ご回答ありがとうございます。
    買ったコンバーターが壊れてることが確認できたため、電源を取り替えてやり直します。それでダメなら配線図、準備出来次第投稿させていただく予定です。
    よろしくお願いします。

    キャンセル

回答 4

0

順序として、まずはアルディーノでLEDを付けたり消したりできるようになりましょう。
その過程で質問があれば質問しましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/08 08:33

    hillackenさま
    ご回答ありがとうございます。
    LEDについては試して成功しています。
    ありがとうございます。

    キャンセル

0

2年前にこのHPを参考に動作できました。
L6470をArduinoで簡単に動かすスケッチ

色々注意点はありますが、希望の範囲はカバーできると思います。(ステッピングモーターの特性で小型のモーターなら簡単。大きいものはL6480で同様に動かせます)

2019年6月12日追加

まず参考ページのL6470をArduinoで簡単に動かすスケッチ
からサンプルのスケッチをダウンロード。解凍する。
イメージ説明

これの’L6470_SPI_stepMoter_sketch'をダブルクリック。
イメージ説明

ここで重要なのはスケッチの上を見るとタブが2つに(ここポイント)
これをまずコンパイルされてください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/11 20:41

    MasahiroHirata様
    アドバイスありがとうございます。こちらのサイトを参考にやってみたらエラーが出てしまいコンパイルできません。。

    このスレッドに長いプログラムを載せてしまい恐縮なのですが、下記のプログラムがエラーになってしまいます。おそらく基本的なところでつまづいているのだろうなと思うのですが、もし何かお気づきのことがあったら教えて頂けないでしょうか。よろしくお願いいたします。

    #include <SPI.h>
    //#include <MsTimer2.h>

    // ピン定義。
    #define PIN_SPI_MOSI 11
    #define PIN_SPI_MISO 12
    #define PIN_SPI_SCK 13
    #define PIN_SPI_SS 10
    #define PIN_BUSY 9

    void setup()
    {
    delay(1000);
    pinMode(PIN_SPI_MOSI, OUTPUT);
    pinMode(PIN_SPI_MISO, INPUT);
    pinMode(PIN_SPI_SCK, OUTPUT);
    pinMode(PIN_SPI_SS, OUTPUT);
    pinMode(PIN_BUSY, INPUT);
    SPI.begin();
    SPI.setDataMode(SPI_MODE3);
    SPI.setBitOrder(MSBFIRST);
    Serial.begin(9600);
    digitalWrite(PIN_SPI_SS, HIGH);

    L6470_resetdevice(); //L6470リセット
    L6470_setup(); //L6470を設定

    //MsTimer2::set(50, fulash);//シリアルモニター用のタイマー割り込み
    //MsTimer2::start();
    delay(4000);

    L6470_move(1,1600);//指定方向に指定数ステップする
    L6470_busydelay(5000); //busyフラグがHIGHになってから、指定ミリ秒待つ。
    L6470_run(0,10000);//指定方向に連続回転
    delay(6000);
    L6470_softstop();//回転停止、保持トルクあり
    L6470_busydelay(5000);
    L6470_goto(0x6789);//指定座標に最短でいける回転方向で移動
    L6470_busydelay(5000);
    L6470_run(0,0x4567);
    delay(6000);
    L6470_hardhiz();//回転急停止、保持トルクなし
    }

    void loop(){
    }

    void L6470_setup(){
    L6470_setparam_acc(0x40); //[R, WS] 加速度default 0x08A (12bit) (14.55*val+14.55[step/s^2])
    L6470_setparam_dec(0x40); //[R, WS] 減速度default 0x08A (12bit) (14.55*val+14.55[step/s^2])
    L6470_setparam_maxspeed(0x40); //[R, WR]最大速度default 0x041 (10bit) (15.25*val+15.25[step/s])
    L6470_setparam_minspeed(0x01); //[R, WS]最小速度default 0x000 (1+12bit) (0.238*val[step/s])
    L6470_setparam_fsspd(0x3ff); //[R, WR]μステップからフルステップへの切替点速度default 0x027 (10bit) (15.25*val+7.63[step/s])
    L6470_setparam_kvalhold(0x50); //[R, WR]停止時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)
    L6470_setparam_kvalrun(0x50); //[R, WR]定速回転時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)
    L6470_setparam_kvalacc(0x50); //[R, WR]加速時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)
    L6470_setparam_kvaldec(0x50); //[R, WR]減速時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)

    L6470_setparam_stepmood(0x03); //ステップモードdefault 0x07 (1+3+1+3bit)
    }

    void fulash(){
    Serial.print("0x");
    Serial.print( L6470_getparam_abspos(),HEX);
    Serial.print(" ");
    Serial.print("0x");
    Serial.println( L6470_getparam_speed(),HEX);
    }

    キャンセル

  • 2019/06/12 08:53

    これをコンパイルしてエラーは

    sketch_jun12a:25:19: error: 'L6470_resetdevice' was not declared in this scope

    L6470_resetdevice(); //L6470リセット

    ^

    sketch_jun12a:32:18: error: 'L6470_move' was not declared in this scope

    L6470_move(1,1600);//指定方向に指定数ステップする

    ^

    sketch_jun12a:33:21: error: 'L6470_busydelay' was not declared in this scope

    L6470_busydelay(5000); //busyフラグがHIGHになってから、指定ミリ秒待つ。

    ^

    sketch_jun12a:34:18: error: 'L6470_run' was not declared in this scope

    L6470_run(0,10000);//指定方向に連続回転

    ^

    sketch_jun12a:36:16: error: 'L6470_softstop' was not declared in this scope

    L6470_softstop();//回転停止、保持トルクあり

    ^

    sketch_jun12a:38:18: error: 'L6470_goto' was not declared in this scope

    L6470_goto(0x6789);//指定座標に最短でいける回転方向で移動

    ^

    sketch_jun12a:42:15: error: 'L6470_hardhiz' was not declared in this scope

    L6470_hardhiz();//回転急停止、保持トルクなし

    ^

    C:\Users\hirata\Documents\Arduino\sketch_jun12a\sketch_jun12a.ino: In function 'void L6470_setup()':

    sketch_jun12a:49:24: error: 'L6470_setparam_acc' was not declared in this scope

    L6470_setparam_acc(0x40); //[R, WS] 加速度default 0x08A (12bit) (14.55*val+14.55[step/s^2])

    ^

    sketch_jun12a:50:24: error: 'L6470_setparam_dec' was not declared in this scope

    L6470_setparam_dec(0x40); //[R, WS] 減速度default 0x08A (12bit) (14.55*val+14.55[step/s^2])

    ^

    sketch_jun12a:51:29: error: 'L6470_setparam_maxspeed' was not declared in this scope

    L6470_setparam_maxspeed(0x40); //[R, WR]最大速度default 0x041 (10bit) (15.25*val+15.25[step/s])

    ^

    sketch_jun12a:52:29: error: 'L6470_setparam_minspeed' was not declared in this scope

    L6470_setparam_minspeed(0x01); //[R, WS]最小速度default 0x000 (1+12bit) (0.238*val[step/s])

    ^

    sketch_jun12a:53:27: error: 'L6470_setparam_fsspd' was not declared in this scope

    L6470_setparam_fsspd(0x3ff); //[R, WR]μステップからフルステップへの切替点速度default 0x027 (10bit) (15.25*val+7.63[step/s])

    ^

    sketch_jun12a:54:29: error: 'L6470_setparam_kvalhold' was not declared in this scope

    L6470_setparam_kvalhold(0x50); //[R, WR]停止時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)

    ^

    sketch_jun12a:55:28: error: 'L6470_setparam_kvalrun' was not declared in this scope

    L6470_setparam_kvalrun(0x50); //[R, WR]定速回転時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)

    ^

    sketch_jun12a:56:28: error: 'L6470_setparam_kvalacc' was not declared in this scope

    L6470_setparam_kvalacc(0x50); //[R, WR]加速時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)

    ^

    sketch_jun12a:57:28: error: 'L6470_setparam_kvaldec' was not declared in this scope

    L6470_setparam_kvaldec(0x50); //[R, WR]減速時励磁電圧default 0x29 (8bit) (Vs[V]*val/256)

    ^

    sketch_jun12a:59:29: error: 'L6470_setparam_stepmood' was not declared in this scope

    L6470_setparam_stepmood(0x03); //ステップモードdefault 0x07 (1+3+1+3bit)

    ^

    C:\Users\hirata\Documents\Arduino\sketch_jun12a\sketch_jun12a.ino: In function 'void fulash()':

    sketch_jun12a:64:37: error: 'L6470_getparam_abspos' was not declared in this scope

    Serial.print( L6470_getparam_abspos(),HEX);

    ^

    sketch_jun12a:67:38: error: 'L6470_getparam_speed' was not declared in this scope

    Serial.println( L6470_getparam_speed(),HEX);

    ^

    exit status 1
    'L6470_resetdevice' was not declared in this scope

    です。
    一つずつ丹念につぶしましょう。

    キャンセル

  • 2019/06/12 09:07

    まずは http://spinelify.blog.fc2.com/blog-entry-41.html からスケッチをダウンロード。

    キャンセル

  • 2019/06/12 13:41

    基の回答を修正しました。ご参考まで。

    キャンセル

-1

それそのまま、「L6470」でぐぐると、Arduinoと接続する記事が引っかかりますが、これではダメでしょうか

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/07 09:28

    y_waiwaiさま
    ご回答ありがとうございます。

    試してみたのですが、アルディーノの5Vだけでも動くのか電池とかDCコンバータみたいな別電源が必要なのかがわかりませんでした。。

    また、タグ修正のご指摘もありがとうございます。サイト初心者でC言語タブを見つけるのに時間かかっておりますが、修正させていただきます。

    キャンセル

  • 2019/06/07 09:44

    モータの定格を調べてください。12V必要なモータなら12Vの電源を用意する必要があります
    たとえ、モータが5Vだとしても、USBの電源では、電流が足りないため動かせません
    必ず、モータ用に別に電源を用意しましょう

    キャンセル

  • 2019/06/11 20:30

    アドバイスありがとうございます。
    実は、DCコンバーター壊れてたことが判明したため新しいのを買ってこれからやってみるところなのです。。なかなか作業が進まず、回答が遅れて大変失礼いたしました。

    キャンセル

-2

公式サイトらしきところはありましたけど、ソースのサンプルが載っているかは不明です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/08 08:34

    Stdioさま
    ご回答、ありがとうございます。
    参考にさせていただきます。

    キャンセル

同じタグがついた質問を見る

  • C

    4641questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Arduino

    689questions

    Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。