помогите со скетчем

Тема в разделе "Флудилка", создана пользователем lol, 19 дек 2018.

  1. lol

    lol Нерд

    Код (C++):
    #include "IRremote.h"
    IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
    decode_results results;
    int led = 11;         //  Номер Pin к которому подключен диод
    int res =results.value;
    int brightness =0;    //  Переменная в которой хранится уровень яркости (От 0 до 254)
    void setup()  {
      pinMode(led, OUTPUT); // Порт 11 (led) будет работать как Выход.
       Serial.begin(9600); // выставляем скорость COM порта
      irrecv.enableIRIn(); // запускаем прием
    }
    void loop()  { // Этот цикл будет выполняться бесконечное количество раз.
       if ( irrecv.decode( &results )) { // если данные пришли
        Serial.println( results.value); // печатаем данные
         irrecv.resume();
      }
      if (res==16748655) {
        brightness   +=   5;
      }   // Делаем проверку, если вход под номером 9 (buttonPlus) имеет состояние  5 В. Увеличиваем значение переменной яркости на 5 единиц.
      if (res==16754775) {
        brightness -=  5;
      }   // Делаем проверку, если вход под номером 10 (buttonMinus) имеет состояние  5 В. Уменьшаем значение переменной яркости на 5 единиц.
      brightness = constrain(brightness, 0, 254); // Эта функция контролирует, что бы переменная brightness не стала больше 254 и меньше 0, если значение вылазит за границу то функция 0 или 254
      analogWrite(led, brightness);    // Устанавливаем состояние яркости для светодиода
       
                         
    }












     
    яркость почему-то не изменяется
    ПОМОГИТЕ ПОЖАЛУЙСТА, скажите что не так.
    Ошибок не выдаёт.
     
    Последнее редактирование: 19 дек 2018
  2. ZAZ-965

    ZAZ-965 Гуру

    lol, отредактируйте сообщение - для вставки кода используйте кнопку Код. Из того, что могу увидеть в неформатированном коде - вызов irrecv.resume() должн быть в конце скетча, вместо delay(250)
     
  3. Airbus

    Airbus Радиохулиган

  4. ZAZ-965

    ZAZ-965 Гуру

    Попробуйте
    Код (C++):
    #include "IRremote.h"
    IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
    decode_results results;
    int led = 11;         //  Номер Pin к которому подключен диод
    int brightness =0;    //  Переменная в которой хранится уровень яркости (От 0 до 254)
    void setup()  {
      pinMode(led, OUTPUT); // Порт 11 (led) будет работать как Выход.
       Serial.begin(9600); // выставляем скорость COM порта
      irrecv.enableIRIn(); // запускаем прием
    }
    void loop()  { // Этот цикл будет выполняться бесконечное количество раз.
       if ( irrecv.decode( &results )) { // если данные пришли
         Serial.println( results.value); // печатаем данные
            if (results.value==16748655) { brightness   +=   5;}
            //  Увеличиваем значение переменной яркости на 5 единиц.
            if (results.value==16754775) { brightness -=  5;}
              // Уменьшаем значение переменной яркости на 5 единиц.
             brightness = constrain(brightness, 0, 254);
              // Эта функция контролирует, что бы переменная brightness не стала больше 254 и меньше 0, если значение вылазит за границу то функция 0 или 254
             analogWrite(led, brightness);    // Устанавливаем состояние яркости для светодиода
             irrecv.resume();}  //Готовим машину состояний к приему следующего кода
    }
     
    Последнее редактирование: 19 дек 2018
  5. lol

    lol Нерд

    не работает , ну ладно придётся смириться
     
  6. ZAZ-965

    ZAZ-965 Гуру

    В мониторе порта какие коды отображаются?
     
  7. lol

    lol Нерд

    да то что прописано в коде
     
  8. Airbus

    Airbus Радиохулиган

    А так?
    Код (C++):
    #include "IRremote.h"
    IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
    decode_results results;
    int led = 11;         //  Номер Pin к которому подключен диод
    int brightness =0;    //  Переменная в которой хранится уровень яркости (От 0 до 254)
    void setup()  {
      pinMode(led, OUTPUT); // Порт 11 (led) будет работать как Выход.
       Serial.begin(9600); // выставляем скорость COM порта
      irrecv.enableIRIn(); // запускаем прием
    }
    void loop()  { // Этот цикл будет выполняться бесконечное количество раз.
       if ( irrecv.decode( &results )) { // если данные пришли
         Serial.println( results.value); // печатаем данные
            if (results.value==16748655) { brightness   +=   5;}
            //  Увеличиваем значение переменной яркости на 5 единиц.
           else  if (results.value==16754775) { brightness -=  5;}
              // Уменьшаем значение переменной яркости на 5 единиц.
             //brightness = constrain(brightness, 0, 254); //пока без
              /* Эта функция контролирует, что бы переменная brightness не стала больше 254 и меньше 0, если значение вылазит за границу то функция 0 или 254*/
             analogWrite(led, brightness);  
             Serial.println(brightness); // Устанавливаем состояние яркости для светодиода
             irrecv.resume(); // Готовим машину состояний к приему следующего кода
          }
    }
     
  9. ZAZ-965

    ZAZ-965 Гуру

    Скетч заливали последний (после редактировния)? К вас в скетче была целочисленная переменная int res =results.value, а должно быть unsigned long value; // Decoded value [max 32-bits] Поэтому не работало.
     
    Daniil нравится это.
  10. Daniil

    Daniil Гуру

    Еще может быть проблема с контактом.
    Диод рабочий, воткнут правильно, в бредборде контакта может и не быть из-за ослабляющихся "пружинок"?
     
  11. lol

    lol Нерд

    в com порте brightness стало изменяться, но светодиод не включается
     
  12. lol

    lol Нерд

    исключено
     
  13. lol

    lol Нерд

    скетч залил от AIROBUS'а
     
  14. lol

    lol Нерд

    в com порте пишет 16 и всё тормозит
     
  15. ZAZ-965

    ZAZ-965 Гуру

    @lol, попробуйте перенести светодиод на другой пин, например 9 или 10, поддерживающий PWM.
     
    Airbus нравится это.
  16. lol

    lol Нерд

    ОГРОМНОЕ СПАСИБО всё заработало
     
  17. Пушной звер

    Пушной звер Оракул

    IRremote использует таймер который также используется функцией аналогВрайт.
    либо меняй в библиотеки таймер, либо используй другой выход с PWM