При попытке запуска пищалки Ардуино выдаёт ошибку

Тема в разделе "Arduino & Shields", создана пользователем RedeemerOfSouls, 12 дек 2016.

  1. Код (C++):
    #include "IRremote.h"
    IRrecv irrecv(10); // Указываем пин, к которому подключен приемник
    decode_results results;
    int RedLedPin = 12;
    int buzzer = 11;
    int IRLedPin = 9;
    void setup()
    {
      Serial.begin(9600);
      irrecv.enableIRIn();
      pinMode(RedLedPin, OUTPUT);
      pinMode(buzzer, OUTPUT);
      pinMode(IRLedPin, OUTPUT);
    }
    void loop() {
      digitalWrite(IRLedPin, HIGH);
      if (irrecv.decode(&results))
      {
        //Serial.println(results.value, HEX);
        irrecv.resume();
      }
      else
      {
        tone (buzzer, 500);
        delay(100);
        tone(buzzer, 1000);
        delay(100);
        digitalWrite(RedLedPin, HIGH);  
        delay(100);                
        digitalWrite(RedLedPin, LOW);  
        delay(100);
      }
      }
    Если убрать участок кода для пищалки, то всё работает.
    Вот текст ошибки
    Как решить проблему?
     
  2. ZAZ-965

    ZAZ-965 Гуру

    Функция tone() и IRremote используют один и тот же TIMER2. Решение - библиотеку IRremote настроить на использование TIMER1, в файле boarddefs.h изменить
    Код (C++):
    // Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, etc
    // ATmega48, ATmega88, ATmega168, ATmega328
    #else
        #define IR_USE_TIMER1   // tx = pin 9
        //#define IR_USE_TIMER2     // tx = pin 3

    #endif