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

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

ただいまの
回答率

89.13%

ステッピングモーターが動きません

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 452
退会済みユーザー

退会済みユーザー

前提・実現したいこと

ステッピングモーターをArduinoで動かそうとしたのですが動かない、というかコードにエラーが出てしまいます。ユニポーラ型のステッピングモーターを秋月のL6470モータードライバで動かそうとしてArduino IDEにサイトから拾ってきたコードを貼ったのですがエラーが出てしまいうまく動きません。
該当のサイトです。
https://deviceplus.jp/hobby/entry037/

発生している問題・エラーメッセージ

Arduino:1.8.9 (Windows Store 1.8.21.0) (Windows 10), ボード:"Arduino/Genuino Uno"

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino:4:0: warning: "PIN_SPI_MOSI" redefined

In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,

                 from sketch\sketch_sep07a.ino.cpp:1:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\variants\standard/pins_arduino.h:39:0: note: this is the location of the previous definition

 #define PIN_SPI_MOSI  (11)

 ^

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino:5:0: warning: "PIN_SPI_MISO" redefined

In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,

                 from sketch\sketch_sep07a.ino.cpp:1:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\variants\standard/pins_arduino.h:40:0: note: this is the location of the previous definition

 #define PIN_SPI_MISO  (12)

 ^

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino:6:0: warning: "PIN_SPI_SCK" redefined

In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,

                 from sketch\sketch_sep07a.ino.cpp:1:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\variants\standard/pins_arduino.h:41:0: note: this is the location of the previous definition

 #define PIN_SPI_SCK   (13)

 ^

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino:7:0: warning: "PIN_SPI_SS" redefined

In file included from C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:257:0,

                 from sketch\sketch_sep07a.ino.cpp:1:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\variants\standard/pins_arduino.h:38:0: note: this is the location of the previous definition

 #define PIN_SPI_SS    (10)

 ^

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino: In function 'void setup()':

sketch_sep07a:24:21: error: 'L6470_resetdevice' was not declared in this scope

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino: In function 'void loop()':

sketch_sep07a:30:1: error: expected primary-expression before '<' token

sketch_sep07a:30:2: error: 'span' was not declared in this scope

sketch_sep07a:31:22: error: 'L6470_busydelay' was not declared in this scope

sketch_sep07a:31:24: error: expected primary-expression before '<' token

sketch_sep07a:31:25: error: expected primary-expression before '/' token

sketch_sep07a:32:1: error: expected primary-expression before '}' token

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino: In function 'void L6470_setup()':

sketch_sep07a:35:24: error: 'L6470_setparam_acc' was not declared in this scope

sketch_sep07a:36:24: error: 'L6470_setparam_dec' was not declared in this scope

sketch_sep07a:37:29: error: 'L6470_setparam_maxspeed' was not declared in this scope

sketch_sep07a:38:29: error: 'L6470_setparam_minspeed' was not declared in this scope

sketch_sep07a:39:27: error: 'L6470_setparam_fsspd' was not declared in this scope

sketch_sep07a:40:29: error: 'L6470_setparam_kvalhold' was not declared in this scope

sketch_sep07a:41:28: error: 'L6470_setparam_kvalrun' was not declared in this scope

sketch_sep07a:42:28: error: 'L6470_setparam_kvalacc' was not declared in this scope

sketch_sep07a:43:28: error: 'L6470_setparam_kvaldec' was not declared in this scope

sketch_sep07a:45:29: error: 'L6470_setparam_stepmood' was not declared in this scope

C:\Users\eisuk\OneDrive\ドキュメント\Arduino\sketch_sep07a\sketch_sep07a.ino: In function 'void fulash()':

sketch_sep07a:50:39: error: 'L6470_getparam_abspos' was not declared in this scope

sketch_sep07a:53:40: error: 'L6470_getparam_speed' was not declared in this scope

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

「ファイル」メニューの「環境設定」から
「より詳細な情報を表示する:コンパイル」を有効にすると
より詳しい情報が表示されます。

該当のソースコード

#include <SPI.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_setup(); 
  delay(4000);
}

void loop(){
<span style="color: #ff0000;">  L6470_move(1,500);
  L6470_busydelay(500);</span> 
}

void L6470_setup(){
L6470_setparam_acc(0x40); 
L6470_setparam_dec(0x40); 
L6470_setparam_maxspeed(0x40); 
L6470_setparam_minspeed(0x01);
L6470_setparam_fsspd(0x3ff); 
L6470_setparam_kvalhold(0x20); 
L6470_setparam_kvalrun(0x20); 
L6470_setparam_kvalacc(0x20); 
L6470_setparam_kvaldec(0x20);

L6470_setparam_stepmood(0x03); 
}

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

試したこと

MsTimer2ライブラリを導入していなかったため該当のコードは削除しました。

補足情報(FW/ツールのバージョンなど)

L6470_resetdevice関数が無いことが理由だと思うのですがどうやって書けばいいんでしょうか。
回答よろしくお願いします。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • gentaro

    2019/09/07 23:27

    https://teratail.com/help/question-tips#questionTips3-1
    読んでみてください

    キャンセル

  • ozwk

    2019/09/07 23:35

    参考にしたリンクをちゃんと読んでください
    そのコードだけでは動かないと書いてあります

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2019/09/08 09:10

    ご指摘ありがとうございます
    改善しました

    キャンセル

回答 1

checkベストアンサー

0

参考先サイトさまからさらにリンク先であるここ からL6470_commands.inoを入手し、導入する必要があるのではないかと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/09/07 22:57

    ありがとうございます
    明日やってみます

    キャンセル

  • 2019/09/08 17:11

    解決しました!動きました!

    キャンセル

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

  • ただいまの回答率 89.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる