Если Вы заинтересованы в моих переводах и хотите меня отблагодарить, то кликните всего на одной ссылке в блоке Оплаченная Реклама

вторник, 27 сентября 2011 г.

Fade

Fade

Демонстрирует использование функции analogWrite ()  для включения и выключения светодиода. analogWrite использует широтно-импульсную модуляцию (ШИМ) , включая и выключая цифровой выход очень быстро, чтобы создать эффект затухания.

Необходимое оборудование


  • плата Arduino
  • макетная плата
  • светодиод
  • резистор 220 Ом

  • Цепь

    Подключите анод (длинная, положительная нога) вашего светодиода на цифровой выход 9 на Arduino через 220 Ом. Подключите катод (короткая, отрицательная нога) непосредственно к земле.

    Схема


    Код

    После объявления контакта 9, чтобы был вашим ledPin , нечего делать в функции setup()кода. В функции AnalogWrite (), которая будет использоваться в основном цикле вашего кода требуется два аргумента: один говорит функции какой выход использовать, и один указывает значение ШИМ для записи.
    Для того, чтобы менять состояние светодиода с выключенного на включенный, постепенно изменяйте  значение ШИМ от 0 (полностью выключен) до 255 (включен), а затем обратно до 0 для завершения цикла. В скетче ниже, значение ШИМ устанавливается с помощью переменной brightness. Каждый цикл brightness увеличивается на значение переменной fadeAmount .
    Если brightness достигает среднего значения  (0 или 255), то fadeAmount меняется свое значение на противоположное. Другими словами, если fadeAmount равно 5, то  он устанавливается в -5.

    analogWrite () может изменить значение ШИМ очень быстро, поэтому задержка в конце скетча позволяет нам заметить это изменение. Попробуйте изменить значение задержки и посмотреть, как он меняет программу.
    int brightness = 0;
    int fadeAmount = 5;

    void setup()  {
      pinMode(9, OUTPUT);
    }

    void loop()  {
      analogWrite(9, brightness);  

      brightness = brightness + fadeAmount;

      if (brightness == 0 || brightness == 255) {
        fadeAmount = -fadeAmount ;
      }
      delay(30);                          
    }

    Комментариев нет:

    Отправить комментарий