Главная » Статьи » Arduino с нуля » Работа с Arduino

Урок 3. Часть 3. Управление яркостью светодиода с помощью потенциометра.

 

Иногда, при конструировании устройства, нужно применять плавное увеличение яркости, или наоборот - плавное ее уменьшение.

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

 

 

В данном уроке мы рассмотрим третий способ изменения яркости светодиода - ручной, в зависимости от поворота ручки потенциометра.

Данный метод можно применять в различных целях, начиная от роботов, заканчивая управлением освещения в Вашей квартире.

Почему бы не сделать управляемый свет в комнате? Который можно было бы регулировать простым поворотом ручки? Поворачивая в одну сторону - свет становится более ярким, поворачивая в другую - становится более темнее, пока не потухнет вовсе. 

 

Также, как и в предыдущих уроках, в основе метода лежит широтно-импульсная модуляция, она же ШИМ. Если вы не читали предыдущие уроки, то советую для начала прочитать эту статью.

 

Для этого урока нам понадобятся следующие компоненты:

 

Далее переходим к подключению всех элементов к Arduino. Подключаем наш потенциометр и светодиод к контроллеру по схеме ниже. 

У меня получилось так:

 

 

 

Когда схема собрана, самое время для написания кода, и заливки его на наш контроллер. 

 

Запускаем программу Arduino IDE, и пишем следующий скетч:

 

#define led 9 //пин светодиода
#define pot A0 //пин потенциометра

void setup()
{
pinMode(led, OUTPUT); //режим пина led на выход
pinMode(pot, INPUT); //режим пина pot на вход
}

void loop()
{
int x; //создаем переменную x
//записываем в нее значение, вычисляемое по формуле
x = analogRead(pot) / 4; 
//выводим уровень x на пин led
analogWrite(led, x); 
}

Давайте разберемся с кодом, записанным в функции loop().

  • Сначала мы создаем переменную целого типа x
    int x;
  • В следующей строке, мы сначала считываем показания нашего потенциометра
    analogRead(pot)
    И делим полученное значение на 4. 
    Другими словами, мы считываем аналоговое значение (лежащее в диапазоне от 0 до 1020), а подаем на светодиод значение в цифровом диапазоне (от 0 до 255). Чтобы перевести значение из одного диапазона в другой, как раз и применяем операцию деление на 4 (если число получается, например, 56.3, то дробная часть отбрасывается, и остается только целая). 
  • И в конце мы подаем на пин led уровень, равный значению переменной x
    analogWrite(led, x); 

 

Теперь заливаем наш скетч на Arduino и любуемся результатом. Давайте же посмотрим, как будет работать наше устройство с таким алгоритмом:

 

Можно бесконечно экспериментировать с данным методом, и изобретать полезные и интересные устройства. Например, можно сделать светильник, который будет переливаться всеми цветами радуги, и вы в любой момент сможете выбрать подходящий для вас цвет. Вот как в этом видео:

Все остальное зависит только от Вашей фантазии. 

 

Задание для самостоятельного выполнения:

Задание к данному уроку будет одно: добавьте в схему еще один светодиод. И сделайте так, чтобы при повороте ручки потенциометра, один светодиод начинал светить ярче, а другой наоборот - гас. 

 

Пятый урок проекта "Arduino с нуля" подошел к концу. Мы разобрали все три метода плавного изменения яркости светодиода и узнали новые возможности нашего контроллера Arduino. Надеюсь тема была для вас полезной, и вы узнали что-нибудь новое. Также надеюсь, что при выполнении задания у вас не возникнет вопросов и вы справитесь самостоятельно.

Если же что-нибудь не будет получаться, или у вас появятся какие-либо вопросы, не стесняйтесь, и оставляйте их в комментариях или же на форуме.  

 

Если Вам понравился наш урок, поделитесь им с друзьями.

 

 


←Предыдущий урок | Следующий урок→


 

Категория: Работа с Arduino | Добавил: GM (19.10.2015)
Просмотров: 13800 | Комментарии: 4 | Рейтинг: 5.0/1
Всего комментариев: 4
avatar
1 zirkov_micha • 10:52, 20.10.2015
Спасибо за урок. Все понятно и доступно biggrin А вот второе видео где эксперимент, как это сделали? smile
avatar
0
2 GM • 11:42, 20.10.2015
Это очень хорошо)) 
Цитата
А вот второе видео где эксперимент, как это сделали?
Я так понимаю, это говорится о сложении цветов? Там такое же устройство, как и в уроке. Только используется RGB светодиод, и 3 потенциометра. Каждый из потенциометров управляет своим цветом в светодиоде. А уже изменяя значения потенциометров, с помощью эффекта аддетивности, можно складывать цвета и получать новый цвет smile Ну и конечно же скетч немного изменяется smile
avatar
Вы такой ответ в задание предполагали, analogWrite(led2, 255-x); или еще проще?
avatar
0
4 GM • 06:44, 05.05.2016
Да, именно так. Куда еще проще? smile С поворотом ручки потенциометра, значение x будет увеличиваться (уменьшаться), что будет приводить к уменьшению (увеличению) напряжения на входе светодиода. Все верно cool
avatar