実現したいこと
プログラムが無知なのでエラーの原因と正解スケッチが知りたい
発生している問題・分からないこと
6個のLEDの点灯状態をarduinoを通して7セグメントLEDの表示数値を変えたいのでネットで調べたら指導プログラムが回答され、それをスケッチしたがエラーが出ました。
エラーメッセージ
error
1:\1.家\Arduino\7セグメント\sinndokei\shinndokei\shinndokei.ino:34:21: error: 'photoDiodePins' was not declared in this scope 2D:\1.家\Arduino\7セグメント\sinndokei\shinndokei\shinndokei.ino:34:21: note: suggested alternative: 'photDiodePins' 3D:\1.家\Arduino\7セグメント\sinndokei\shinndokei\shinndokei.ino: In function 'void displayDigit(int)': 4D:\1.家\Arduino\7セグメント\sinndokei\shinndokei\shinndokei.ino:49:7: error: expected ';' before ':' token 5 6exit status 1 7 8Compilation error: 'photoDiodePins' was not declared in this scope
該当のソースコード
//フォトダイオードピンの定義 const int photDiodePins[] = { 2, 3, 4, 5, 6, 7 }; //7セグメント表示器のセグメントピンの定義 const int segmentPins[] = { 8, 9, 10, 11, 12, 13, 14 }; //数字ごとのセグメントパターン(a~g) const byte digitPatterns[7] = { B0111111, // 0 B0000110, // 1 B1011011, // 2 B1001111, // 3 B1100110, // 4 B1101101, // 5 B0111101, // 6 }; void setup() { // フォトダイオードピンを入力として設定 for (int i = 0; i < 6; i++) { pinMode(photDiodePins[i], INPUT); } //7セグメント表示器のピンを出力として設定 for (int i = 0; i < 7; i++) { pinMode(segmentPins[i], OUTPUT); } } void loop() { int ledCount = 0; // フォトダイオードの状態を読み取る for (int i = 0; i < 6; i++) { if (digitalRead(photoDiodePins[i]) == HIGH) { ledCount = i + 1; break; } } //7セグメント表示器に数値を表示 displayDigit(ledCount); } void displayDigit(int digit) { byte pattern = digitPatterns[digit]; for (int i = 0; i < 7; i++) { digitalWrite(segmentPins[i], (pattern >> i) & 0x01) : } }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
対策例や原因がいろいろ書かれていましたが具体的な対処方法が解りませんでした。
私の知識のなさを痛感しました。
補足
特になし
エラーメッセージをちゃんと読みましょう。
>shinndokei.ino:34:21: error: 'photoDiodePins' was not declared in this scope
>//フォトダイオードピンの定義
>const int photDiodePins[] = { 2, 3, 4, 5, 6, 7 };
の変数名と、
> for (int i = 0; i < 6; i++) {
> if (digitalRead(photoDiodePins[i]) == HIGH) {
で参照している変数名は同じもののつもりですか?
エディタの検索機能でちゃんとヒットするか確認してみましょう。
>shinndokei.ino:49:7: error: expected ';' before ':' token
文の最後は":"でしたっけ?
あなたの回答
tips
プレビュー