#やりたいこと
赤外線センサで信号をもらってメッセージをLCDディスプレイに表示、受動ブザーで音楽を再生する。
#コード
サンプルコードを流用しているので汚いですが、よろしくお願いします。
/* * レベルアップしてステータスを表示,音を鳴らす */ #include "pitches.h" #include <LiquidCrystal.h> #include "IRremote.h" #define MI 5 int receiver = 2; IRrecv irrecv(receiver); // create instance of 'irrecv' decode_results results; // create instance of 'decode_results' LiquidCrystal lcd(7, 8, 9, 10, 11, 12); class Levelup { int melody[3] = {NOTE_DS5, NOTE_F5, NOTE_G5}; int order[7] = {1, 1, 1, 1, 0, 2, 1}; int duration = 150; int duration2 = 750; //音を鳴らす public: void levelup() { for(int i = 0; i < 4; i++){ tone(MI, melody[order[i]], duration); delay(150); } delay(150); tone(MI,melody[order[4]], duration); delay(300); tone(MI,melody[order[5]], duration); delay(300); tone(MI,melody[order[6]], duration2); delay(1500); } }; Levelup lu; void translateIR() // describing Remote IR codes { switch(results.value) { case 0xFFA25D: Serial.println("POWER"); //モニター表示 lcd.setCursor(0,1); lcd.print("Level Up!"); lu.levelup(); Serial.println("Level Up!!"); lcd.setCursor(0,1); lcd.print(" "); break; ~省略~ } //END translateIR void setup() { pinMode(MI, OUTPUT); Serial.begin(9600); while(! Serial); Serial.println("Levelup Number 0"); Serial.println("IR Receiver Button Decode"); irrecv.enableIRIn(); // Start the receiver lcd.begin(16, 2); lcd.print("Press 0 !"); } void loop() { if(Serial.available()) { char ch = Serial.read(); if (ch == '0') { //モニター表示 lcd.setCursor(0,1); lcd.print("Level Up!"); int buzzer = ch - '0'; lu.levelup(); Serial.println("Level Up!!"); lcd.setCursor(0,1); lcd.print(" "); } } if (irrecv.decode(&results)) // have we received an IR signal? { translateIR(); irrecv.resume(); // receive the next value } }
#error
Arduino:1.8.12 (Windows 10), ボード:"Arduino Uno" ~関係内であろう部分を省略(入りきらないので)~ (.text+0x0): multiple definition of `__vector_7' C:\Users\myname\AppData\Local\Temp\arduino_build_598703\libraries\IRremote\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here collect2.exe: error: ld returned 1 exit status 次のフォルダのライブラリpitchesを使用中:C:\Users\myname\OneDrive\ドキュメント\Arduino\libraries\pitches (legacy) 次のフォルダのライブラリLiquidCrystalバージョン1.0.7を使用中:C:\Program Files (x86)\Arduino\libraries\LiquidCrystal 次のフォルダのライブラリIRremoteを使用中:C:\Users\myname\OneDrive\ドキュメント\Arduino\libraries\IRremote (legacy) exit status 1 ボードArduino Unoに対するコンパイル時にエラーが発生しました。
IRremoteを使わないとうまくいくのですが、つかうとうまくいきません。
個人で解決出来ませんのでよろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/14 08:10
2020/05/28 10:46