Главная » Статьи » Arduino с нуля » Работа с Arduino |
Иногда, при конструировании устройства, нужно применять плавное увеличение яркости, или наоборот - плавное ее уменьшение. В данной серии уроков, мы поможем вам разобраться с этим вопросом. И подробно расскажем о всех тонкостях данного процесса.
В данном уроке мы рассмотрим второй способ изменения яркости светодиода - автоматический, в зависимости от освещения окружающей среды. Такой метод, в основном, используется не для плавного изменения яркости, а для определения освещенности и принятия решения - темно или светло. В зависимости от этого, уже или включаются лампы, или же выключаются. Например, это можно применить в уличном освещении. Когда на улице темнеет, освещение включается, как только начинает светать, так освещение выключается.
Но мы, в данном уроке, разберем плавное нарастание и уменьшение яркости. Это в основном можно использовать в робототехнике, а так же в домашних условиях, например в домашнем освещении. Хотя никто не запрещает этот метод использовать и на уличных фонарях.
Для определения яркости мы будем использовать датчик освещенности, который построен на принципе фоторезистора. Фоторезистор - резистор, который изменяет своё сопротивление под действием света.
В основе метода, как и в предыдущем уроке, лежит широтно-импульсная модуляция, она же ШИМ. Если вы не читали предыдущий урок, то советую для начала прочитать эту статью.
Для этого урока понадобятся следующие компоненты:
Далее переходим к подключению всех элементов к Arduino. Подключаем наш фоторезистор к контроллеру по схеме ниже (используется резистор на 10 кОм). Эта схема делителя напряжения.
У меня получилось так:
Далее подключаем Arduino к компьютеру и заливаем скетч (код). #define foto 0 //Фотоэлемент подключен к пину 0 (аналоговый вход A0) void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(foto)); delay(20); }
Давайте разберемся с кодом.
Таким образом, после того как мы включили наше устройство, через каждые 20мсек, на Arduino (аналоговый вход А0) будут поступать значения, которые в данном случае характеризуют освещенность.
После того, как мы загрузили скетч, в Arduino IDE открываем "монитор последовательного порта" (кнопка в виде лупы на верхней панели справа).
И смотрим какие значения у нас выводятся. У меня эти значения колебались от 300 до 700 где-то. При большой освещенности: При малой освещенности:
Максимальное и минимальное значения освещения мы получили. Теперь давайте подключим светодиод к нашей схеме и начнем управлять его яркостью, в зависимости от показаний освещенности. К уже имеющейся схеме, подключаем светодиод:
Вы можете использовать любой пин Arduino, в номере которого имеется знак тильды "~". Именно в этих пинах может использоваться ШИМ.
После добавления светодиода, у меня получилось следующее:
И теперь давайте зальем вот такой код: #define foto 0 #define led 9 void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } void loop() { int val = (analogRead(foto)); val = constrain (val, 320, 680); int Level = map (val ,680 ,320, 0 , 255); analogWrite (led, Level); delay(50); } Как мы видим, к предыдущему скетчу добавилось несколько новых строк. В функции setup() мы настроили пин для светодиода, на этом я останавливаться не буду. А в функции loop() появились новые функции. Давайте разберемся для чего они.
Таким образом весь цикл будет таков:
Давайте же посмотрим, как будет работать наше устройство с таким алгоритмом:
Задание для самостоятельного выполнения: Задание к данному уроку будет одно: постарайтесь сделать так, что при увеличении освещенности окружающей среды, светодиод тоже увеличивал свою яркость, а когда становилось темно - светодиод погасал. Это можно реализовать, изменив одну строку программы. Но не забывайте, что менять параметры нужно обдуманно.
Четвертый урок проекта "Arduino с нуля" подошел к концу. Надеюсь тема была для вас полезной, и вы узнали что-нибудь новое. Также надеюсь, что при выполнении задания у вас не возникнет вопросов и вы справитесь самостоятельно. Если же что-нибудь не будет получаться, или у вас появятся какие-либо вопросы, не стесняйтесь, и оставляйте их в комментариях или же на форуме.
Если Вам понравился наш урок, поделитесь им с друзьями.
←Предыдущий урок | Следующий урок→
| |
Просмотров: 9180 | Комментарии: 6 | |
Всего комментариев: 5 | |
| |