Всем привет! Продолжаем знакомиться с микроконтроллерами семейства ATtiny. В этой статье мы познакомимся с принципом работы фоторезистора и будем передавать изменяемое им значение в аналоговый порт ATtiny13, обрабатывать и выдавать нужный нам результат в цифровой порт. А именно, включать и выключать светодиод в зависимости от степени освещенности.
Фоторезистор – это переменный резистор, сопротивление которого меняется в зависимости от количества света, попадающего на его поверхность. Чем больше на него попадаем света, тем меньше его сопротивление. При полном отсутствии освещения, сопротивление резистора будет максимально, а, следовательно, напряжение на его выходе будет близко к нулю.
Разместим фоторезистор на макетной плате. Одну его ножку соединим с плюсом Ардуино. А вторую, через резистор на 10 кОм, соединим с землей. Её же соединим с аналоговым портом А0 Ардуино.
Напишем небольшой скетч, в котором мы будем с помощью функции analogRead() считывать значение из аналогового порта А0 и преобразовывать его в число интервалом от 0 до 1023. А полученное значение выводить в монитор порта.
Загружаем скетч, открываем монитор порта и видим, что значение изменяется по мере изменения освещенности.
Теперь вернемся к собранной в прошлом видео схеме с ATtiny13 и мигающими светодиодом. Добавляем к схеме фоторезистор и сопротивление 10 кОм. Одну ножку фоторезистора соединяем с питанием 5 вольт, а другую, которая подключается к земле через сопротивление, с 3 пином ATtiny.
Вносим изменения в скетч из прошлого видео. Добавляем постоянную, связанную с аналоговым пином А2. Если смотреть даташит на ATtiny, то это как раз ножка номер три.
Переменную val, в которую будет записываться значение функции analogRead. А так же условие, при котором, если значение переменной val менее 600 (что соответствует низкой освещенности), светодиод будет зажигаться, если более, то гаснуть.
Эти ограничения можно подбирать по ситуации опытным путем.
Проверяем, что у нас правильно выбран микроконтроллер и загружаем скетч в ATtiny13.
Закрываем фоторезистор и… светодиод зажигается, открываем – светодиод гаснет.
Вот такая у нас получилась эмуляция датчика освещенности. Т.е., мы получили аналоговый сигнал из внешнего источника, обработали его и на основе заранее заданного условия, изменили режим работы другого внешнего устройства. И всё это с помощью маленького и недорогого микроконтроллера ATtiny13. Этот же скетч, без изменений можно реализовать и на микроконтроллере ATtiny85.
Теперь отключим ATtiny13 от Arduino UNO и упростим схему, не забыв добавить источник внешнего питания, начиная от 3-5В.
ATtiny13 полностью самостоятелен и прекрасно справляется с поставленной задачей.
Ссылка на скетч - https://yadi.sk/d/lfcjsO0hMaFUMw
Ниже размещено видео по материалам данной статьи.
_________________________________________________________
Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!
Другие публикации по теме:
- ATtiny13 и ATtiny85. Обзор и программирование с помощью Arduino.
- Создаем удобный модуль для программирования микроконтроллеров ATtiny.
- Регулируемое фотореле на ATtiny13 для уличного освещения своими руками.