2017-08-10 182 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