помогите разобратся

Тема в разделе "Arduino & Shields", создана пользователем keeper, 12 ноя 2014.

  1. keeper

    keeper Нерд

    по задумке должен с одного пульта по нажатой кнопке выдать другой код пульта
    Код (Text):
    #include <IRremote.h>
    int RECEIVE_PIN = 11;
    IRrecv irrecv(RECEIVE_PIN);
    decode_results results;

    void setup() {
    Serial.begin(9600);
    irrecv.enableIRIn();

    }

    void loop() {
    if ((irrecv.decode(&results)) && (results.value==0xA90) ) {

    irsend.sendNEC(0x202B24D, 32);
    }
    }
    но выдает ошибку при компиляции


    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.
    Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
    sketch_nov11b.ino: In function 'void loop()':
    sketch_nov11b:15: error: 'irsend' was not declared in this scope
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    'irsend' was not declared in this scope
    Объект irrecv объявлен, а irsend - нет.
     
  3. geher

    geher Гуру

    ТАк оно на чистом англицком как бы намекает, что переменную irsend надо как-то объявить перед использованием. Т.е. требуется либо подключить библиотеку, где оно уже объявлено, либо самому объявить.
     
  4. keeper

    keeper Нерд

    оо спс моя невнимательность ))
     
  5. keeper

    keeper Нерд

    двигаюсь дальше
    Код (Text):
    #include <IRremote.h>
    int RECEIVE_PIN = 11;
    IRrecv irrecv(RECEIVE_PIN);
    IRsend irsend;
    int state = 0;
    decode_results results;
    void setup() {
        Serial.begin(9600);
        irrecv.enableIRIn();

    }
    void loop() {

    if ((irrecv.decode(&results)) && (results.value==0x80C) ) {

      if (state == 0) {
                state = 1;
                irsend.sendNEC(0x202B24D, 32);
                Serial.println("PowerON");
             
              } else {
                state = 0;
                irsend.sendNEC(0x202B24D, 32);
                Serial.println("PowerOF");
       
          }

    }
    if ((irrecv.decode(&results)) && (results.value==0x80C) ) {

      if (state == 0) {
                state = 1;
                irsend.sendNEC(0x202B24D, 32);
                Serial.println("PowerON");
             
              } else {
                state = 0;
                irsend.sendNEC(0x202B24D, 32);
                Serial.println("PowerOF");
     
          }
    irrecv.resume();
    }

    }
    вроде должно выполнятся каждый раз при нажатии кнопки но после первого срабатывания затык
     
  6. Megakoteyka

    Megakoteyka Оракул Модератор

    А irsend не нужно инициализировать? Что пишется в терминале?
     
  7. keeper

    keeper Нерд

    ничего все компилируется и заливается
     
  8. Megakoteyka

    Megakoteyka Оракул Модератор

    Что пишет в Serial?
    Добавьте отладочный вывод во все ветки программы и сразу станет понятно куда она попадает, а куда нет.
     
  9. keeper

    keeper Нерд

    Всеравно не могу понять почему не работает
    Код (Text):
    #include <IRremote.h>
    int RECEIVE_PIN = 11;
    IRrecv irrecv(RECEIVE_PIN);
    IRsend irsend;
    int state = 0;
    decode_results results;
    void setup() {
        Serial.begin(9600);
        irrecv.enableIRIn();

    }
    void loop() {
    Serial.println("Faze1");
    delay(1000);
    if ((irrecv.decode(&results)) && Serial.println("Polushenie koda") && (results.value==0x80C) ) {
    Serial.println("Kod polushen");
      if (state == 0) {
                state = 1;
                Serial.println("state = 1");
                irsend.sendNEC(0x202B24D, 32);
                Serial.println("PowerON");
             
              } else {
                state = 0;
                Serial.println("state = 2");
                irsend.sendNEC(0x202B24D, 32);
                Serial.println("PowerOF");

          }

    }

    irrecv.resume();
    Serial.println("Polushenie koda");
    }
     
    Код (Text):
    Faze1
    Polushenie koda
    Faze1
    Polushenie koda
    Faze1
    Polushenie koda
    Polushenie koda
    Faze1
    Polushenie koda
    Kod polushen
    state = 1
    PowerON
    Polushenie koda
    Faze1
    Polushenie koda
    Faze1
    Polushenie koda
    Faze1
     
    Судя по логам вроде все нормально но 2 раз кнопка пульта не срабатывает такое впечатление что он не возвращается к получению кода кнопки хотя судя по логу вернулся