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

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

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

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

Q&A

解決済

2回答

872閲覧

VSCodeでArduino:「error: 'PINB' was not declared in this scope」解決したい

lis

総合スコア15

Arduino

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

0グッド

0クリップ

投稿2020/03/03 04:15

編集2020/03/03 08:58

知りたいこと

VSCodeでArduinoを使いたいが「Arduino: Upload」で

error: 'PINB' was not declared in this scope

が出力され、Arduinoの動作確認までたどり着けないため、これを解決したい。

状況

エラーで出ている「PINB(Arduinoの定数)」を含むソースにて、下記のような状況です。

  1. ArduinoIDEからアップロードを行い、Arduinoで動作確認済み
  2. 同ソースでVSCodeで「Arduino: Upload」を実行→error: 'PINB' was not declared in this scope

経緯

VSCodeでArduinoを使うにあたり、Qiitaの記事などを参考を参考に環境構築をしました。

「Arduino: Upload」を行ったところ、下部出力(Arduino)にStatusLoggerなどのログが出力されたため、動作するところまでは構築できていると思っています。

Arduino: Uploadのログを確認したところ

[Error] Exit with code=1

が出力され、ログを辿ってみると

file:85:39: error: 'PINB' was not declared in this scope

というエラーが発生しておりました。

ArduinoのインストールフォルダをGrepしたところ、「PINB」をdefineしているファイルがいくつか検出されました。

いずれも「C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\ioXXXX.h」といったパスでした。

しかしハードウェア周りのヘッダということもあり、誤ったものを使うと危ないと思ったのと、使うにしても複数あるため、どれを使って良いのか不明だったため、本質問を行いました。

環境

OS: Windows 10 Pro
Arduino: Arduiono Pro mini


Arduino自体も、VSCodeでのC/C++も初心者なので、お知恵をお借りしたいです。

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

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

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

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

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

coco_bauer

2020/03/03 05:02

「'PINB' was not declared in this scope」というのはプログラムに間違いがある(あるべきPINBの宣言が無い)というものですから、プログラムコードを修正することで解決するしかないです。 問題が起きているプログラムを質問に追加してください。修正すべきプログラムが提示されていないのに、解決策を考えられる訳がないですから。
dodox86

2020/03/03 05:36

「実行結果」と書かれていますが、提示のエラーはcoco_bauerさんが書かれているようにコンパイル~ビルドが失敗しているものを示しているはずで、Arduinoに転送できてもいず、動作もできないはずなのですが。確認用の別のプログラムソースではVSCodeで転送までできてArduino上で動作したが、今回新たにPINBなどを利用したソースで失敗した、と言うことなのでしょうか。
lis

2020/03/03 08:37

語弊のある書き方をして申し訳ありません。 「実行結果」は、VSCodeのArduino拡張による「Arduino: Upload」を実行した際のログを指していました。 現在、PINBを含むソースにて下記のような状況です。 1. ArduinoIDEからアップロードを行い、Arduinoで動作確認済み 2. 同ソースでVSCodeで「Arduino: Upload」を実行→error: 'PINB' was not declared in this scope ArduinoIDE→Arduinoでは動作を確認できていたので、VSCodeでのエラーは何か設定の不足があるのかと思い、質問をした次第です。
ozwk

2020/03/04 05:37

vscode側でボード指定してます? なんか適当な簡単なスケッチをvscodeで書き込めます?
lis

2020/03/04 05:58

> ozwkさん ボード(Arduino Pro or Pro Mini)及び、COMの指定はしています。 簡単なコードでArduino: Uploadし、書き込みを確認しました。 下記が表示され、動作もしています。 ``` [Done] Uploaded the sketch: code_test.ino ```
guest

回答2

0

自己解決

ozwkさんのご指摘で気付き解決しました。
ボードの設定が、接続しているArduinoと一致していなかった(今回の場合、「Arduino Pro or Pro Min」となっていなかった)ことが原因でした。

返信にて、「ボード(Arduino Pro or Pro Mini)」に設定している旨を書きましたが、これはテストコードで成功した環境でのことでした。
本番側を改めて確認したところ、「Arduino Pro or Pro Mini」に設定したはずだったものが、知らぬ間に別のボードに設定されていました。

ご指摘、ご回答頂いた方々、ありがとうございました。お時間を取らせてしまい申し訳ありません。

投稿2020/03/04 06:39

lis

総合スコア15

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

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

0

いずれも「C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\avr\ioXXXX.h」といったパスでした。

まずエラー内容が’PINB'が定義されていないのが原因。

またArduinoにも種類がありCPUによって定義が異なります。

なのでArduinoの何を使用しているか?を記載してください。

投稿2020/03/04 05:32

MasahikoHirata

総合スコア3747

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

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

lis

2020/03/04 05:38

ArduinoはPro miniです。 ArduinoIDEでは見えているので、VSCode上だとパスが見えていないのかと思いますが、どうしたら解決するのかが分からない状況です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問