2017-08-10 241 views
0

我是arduino代碼的完整noob,所以這可能看起來很愚蠢,但是,爲什麼我的代碼不工作?我的arduino代碼有什麼問題?

// IRremote - Version: Latest 
    #include <IRremote.h> 
    #include <IRremoteInt.h> 
    int ledPin = 9; 

    /* 

    */ 

    void setup() 
    { 
     analogWrite(9,0); 
     Serial.begin(9600); 
     irrecv.enableIRIn(); 

    void loop(); 
    { 
     if (irrecv.decode(4294967295)); 
     { 
      analogWrite(9,255); 
      analogWrite(9,0); 
      delay(500]); 
      irrecv.resume(); 
      if (irrecv.decode(4294967295)); 
      { 
       analogWrite(9,0); 
      } 
     } 
    } 

此外,在第14行,它說「'irrecv沒有在此範圍內聲明。

+0

僅供參考:我主要是在拼湊其他代碼段。 – Kenny

+0

分號不是您可以隨意灑在整個代碼中的東西 - 每個語句結尾處都需要分號。方括號和花括號不是隨便灑在代碼中的東西 - 它們總是成對出現。 – jasonharper

回答

0

這是我注意到:

你必須設置PIN碼模式的輸出:

void setup(){ 
    //SET YOUR PINMODE HERE 
    pinmode(9,OUTPUT) 
    //THEN SET IT TO LOW/0 
    analogWrite(9,0) 
} 

我不能說你的IRR庫什麼,但你的if語句有可能出現的錯誤也。您需要將引腳設置爲高電平(亮起),然後等待500 ms,然後將其關閉。你閃爍得太快,你看不到光。

void loop() { 
     if (irrecv.decode(4294967295)) 
     { 
      analogWrite(9,255) 
      delay(500)  <--- HERE is the right place for the delay 
      analogWrite(9,0) 
      //delay(500]) <--- NOT HERE and remove "]" -bracket 
     } 

我希望這至少有一點幫助。切記:始終在設置功能中設置輸入和輸出。

看看下面的鏈接。在那裏你可以看到引腳如何設置等等。 https://www.arduino.cc/en/Reference/AnalogWrite

+0

它仍然將'irrecv.enableIRIn()'視爲錯誤。 「'irrecv'未在此範圍內聲明。」 延遲(1000)// <---這裏是延遲 ^ 退出狀態1 – Kenny

+0

是你提問中編輯的代碼部分,因爲它是正確的地方?你在設置void中沒有右括號! – Bongamo