Arduino IR kumanda kodu çalışmıyor

Begefendi

Hectopat
Katılım
12 Şubat 2021
Mesajlar
388
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Anlamıyorum, neden?



C++:
#include <IRremote.h>      //including infrared remote header file

IRrecv IR(11);

int buzzerPin = 10;
 
//https://pages.mtu.edu/~suits/notefreqs.html
int C = 262;
int D = 294;
int E = 330;
int F = 349;
int F_ = 370;
int G = 392;
int A = 440;
int B = 494;
int C_ = 523;


void setup()
{
  pinMode(buzzerPin,OUTPUT);
  Serial.begin(9600);
  IR.enableIRIn();
}
 
void loop()
{
remote();
 
}

void remote() {
  if (IR.decode())
      {
    Serial.println(IR.decodedIRData.decodedRawData, HEX);
    delay(3000);
    IR.resume();
      }
   if (IR.decodedIRData.decodedRawData == 0xEF10BF00) {play("axelf"); Serial.println("a");}
}

void play(char musicName[]) {
  Serial.println(musicName[5]);
    if(musicName == "axelf") { for(int x=0;x<=3;x++) {buzzer(200,E);delay(500);buzzer(200,G);delay(250);buzzer(200,E);delay(250);buzzer(100,E);buzzer(100,A);delay(100);buzzer(200,E);delay(100);buzzer(200,D);delay(100);buzzer(200,E);delay(500);buzzer(200,B);delay(250);buzzer(200,E);delay(250);buzzer(100,E);buzzer(100,C);delay(100);buzzer(200,B);delay(100);buzzer(200,G);delay(100);buzzer(200,E);delay(100);buzzer(200,B);delay(100);buzzer(200,E);delay(100);buzzer(100,E);buzzer(100,D);delay(100);buzzer(100,D);buzzer(100,B);delay(100);buzzer(200,F_);delay(100);buzzer(200,E);delay(1500);}
    //https://blogs.glowscotland.org.uk/sb/public/youthmusicinitiative/uploads/sites/3670/2020/09/09141508/Ipad-Crazy-Frog-Axel-F-Tune-Notes-Only.pdf
    }
}

void buzzer(int delayTime, int nota) {
    if (shouldContinue()) {
        tone(buzzerPin, nota);
        delay(delayTime);
        noTone(buzzerPin);
    }
}

bool shouldContinue() {
    return !(IR.decodedIRData.decodedRawData == 0xF30CBF00);
}

Tuşa bastığımda axel f çalıcak bir proje yapıyorum kendimi geliştirmek için, ama neden çalışmıyor, hata yok.

Ayrıca remote'un en altındaki ifi yorum satırına almadığım sürece tuş 1 defadan fazla basmıyor.
 
Devrende hata var mı bilmiyorum ama kodda, tanımlamış olduğun fonksiyonları void loop'un üstüne alıp deneyin. C'de yerleri fark ediyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…