шим

Тема в разделе "Arduino & Shields", создана пользователем Nikita, 30 сен 2013.

  1. Nikita

    Nikita Гик

    Какую функцию надо использовать для изменменения яркости светодиода?
     
  2. Unixon

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

    analogWrite()
     
  3. Nikita

    Nikita Гик

    как то так?
     
  4. Nikita

    Nikita Гик

    Код (Text):
    int pinR = 11;    // RED    Контакт для управления цветами светодиода
    int pinB = 13;

    int buttonR = A0; // Для считывания значений с кнопки.


    // Этот раздел переменных используется для корректного получения значений с кнопки.
    // RED
    boolean lastbuttonR = LOW;    // последнее значение кнопки
    boolean currentbuttonR = LOW; // текущее значение кнопки
    int ledonR = 0;              // яркость светодиода

    //BLUE
    boolean lastbuttonB = LOW;
    boolean currentbuttonB = LOW;
    int ledonB = 0;


    // Функция Setup выполняется Ардуино только один раз при включении.
    // данная функция используется для установки параметров микроконтрллера.
    void setup()
    {

      pinMode(pinR, OUTPUT);
      pinMode(pinB, OUTPUT);
      pinMode(buttonR, INPUT);

    }

    // Булевая функция для определения состояний кнопки.
    boolean debounceR(boolean last) // Переменная last принимает значение, переданное функции
    {
      boolean current = digitalRead(buttonR); // Объявляем переменную current и считываем в нее значение кнопки
      if (last != current)                    // Если текущее значение кнопки отличается от переданной в функцию ( != - не равно )
      {
        delay(5);                            // тогда ждем 5 милисекунд. Это необходимо чтоб избавиться от колебаний напряжения поступающих с кнопки и получить точное значение.
        current = digitalRead(buttonR);      // повторно считвыаем значение с кнопки. Уже без шумов.
      }
      return current;                        // Возвращаем значение полученное логическое значение.
                                            // last и current доступны только в пределах данной функции.
    }

    // Бесконечный цикл, повоторяющийся на микроконтроллере, пока он включен.
    void loop()
    {

      // Управление красным цветом светодиода.
      currentbuttonR = debounceR(lastbuttonR);            // проферяеям при помощи функции debounceR состояние кнопки.
      if (lastbuttonR == LOW && currentbuttonR == HIGH )  // Если предыдущее значение было ноль, а текущее единица.
      {
        ledonR = ledonR + 51 ;                            // Тогда увеличиваем яркость светодиода на 51
        if ( ledonR > 255) ledonR = 0;                      // Если значении становится больше 255, то гасим светодиод
      }
      lastbuttonR = currentbuttonR;                      // Запоминамем текущее состояние кнопки
      analogWrite(pinR, ledonR);                          // Передаем измененное значение яркости на вывод Ардуино.


    }
     
  5. Megakoteyka

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

    Смотрели?
    А скетч Fading из примеров Arduino IDE? Там как раз этим и занимаются.
     
    Последнее редактирование: 3 окт 2013