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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Arduino

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

Q&A

解決済

2回答

3480閲覧

ArduinoIDEで発生したエラーの意味が分からないので教えてください。

Micchan_study_

総合スコア3

Arduino

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

0グッド

0クリップ

投稿2022/01/07 06:17

前提・実現したいこと

aeduino leonardoでモーター動作のプログラムを作っていたのですがエラーが出てしまいました。
その原因がわからないので教えていただきたいです。

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

expected unqualifired-id before numeric constant

★★★★★を付けている6行目です。

該当のソースコード

arduinoIDE

1#include <SparkFun_TB6612.h> 2 3#define AIN1 15 4#define BIN1 16 5#define AIN2 17 6#define BIN2 14★★★★★ 7#define PWMA 5 8#define PWMB 11 9#define STBY 30 //モーター設定 10 11int tm = 1000; 12const int offsetA = 1; 13const int offsetB = 1; 14 15const int motor1Pin1 = AIN1, AIN2, PWMA, offsetA, STBY; 16const int motor1Pin2 = BIN1, BIN2, PWMB, offsetB, STBY; 17 18const int spkPin = 12; 19const int ledPin = 13; 20

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

モータードライバはTB6612FNGだと思います。
よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

出ているエラーはこれだけあるはずです(手元で編集しているので行は異なっていますが)

sketch_jan07a:3:14: error: expected unqualified-id before numeric constant #define AIN2 17 ^ C:\Users\Public\Documents\Arduino\sketch_jan07a\sketch_jan07a.ino:13:31: note: in expansion of macro 'AIN2' const int motor1Pin1 = AIN1, AIN2, PWMA, offsetA, STBY; ^~~~ sketch_jan07a:4:14: error: expected unqualified-id before numeric constant #define BIN2 14 ^ C:\Users\Public\Documents\Arduino\sketch_jan07a\sketch_jan07a.ino:14:31: note: in expansion of macro 'BIN2' const int motor1Pin2 = BIN1, BIN2, PWMB, offsetB, STBY; ^~~~

そもそもの原因はこれ。

const int motor1Pin1 = AIN1, AIN2, PWMA, offsetA, STBY; const int motor1Pin2 = BIN1, BIN2, PWMB, offsetB, STBY;

C/C++(Arduino)言語の文法にこんな記法はないから、です。変数の宣言ですから、,のあとは「新しい変数名(unqualitied-id)」でなければいけないのに、数値が書かれています。その数値は、マクロ由来で

★★★★★を付けている6行目です。

にありますね、ということで。(noteとして展開後にエラーになる行が示されています)

(余談...といっていいかな。それ自体は文法違反ではないですけれど、一応ArduinoはC++ベースなので、#defineは極力使わずconstで定数を定義した方がよいかと思います。)

投稿2022/01/07 06:44

thkana

総合スコア7659

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Micchan_study_

2022/01/07 06:58

ありがとうございました!試してみます!
guest

0

const int motor1Pin1 = AIN1, AIN2, PWMA, offsetA, STBY;

const int motor1Pin2 = BIN1, BIN2, PWMB, offsetB, STBY;

これ、意味不明ですがなにをしてるんでしょうか

投稿2022/01/07 06:19

y_waiwai

総合スコア87800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Micchan_study_

2022/01/07 06:28

前進などをするときに Motor motor1 = Motor(AIN1, AIN2, PWMA, offsetA, STBY); Motor motor2 = Motor(BIN1, BIN2, PWMB, offsetB, STBY);で、 motor1.drive(60); motor2.drive(50);のようにするので。。。
y_waiwai

2022/01/07 06:31

なにをどうするのかしりませんが、C言語の文法を無視した記述してはそりゃエラーが出ます。
ozwk

2022/01/07 06:34

多分 Motor motor1 = Motor(AIN1, AIN2, PWMA, offsetA, STBY); を Motor motor1 = Motor(motor1Pin1); と書きたかったのでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問