Setting96.ru

Строительный журнал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Урок 7. Управление яркостью дисплея Nextion. Страница ожидания

Урок 7. Управление яркостью дисплея Nextion. Страница ожидания.

Сегодня последний урок по дисплею Nextion, в котором рассмотрим, как можно изменять яркость дисплея для экономии электроэнергии. А также выведем текущее состояние подсветки при переходе на страницу управления. Кроме этого, разберём пару полезных моментов в управлении дисплеем Nextion. Для подписчиков на boosty и YouTube будут еще бонусные уроки, поэтому не забудьте подписаться.

Что понадобиться для урока:

    . или Arduino UNO. . если нужна.

Сегодня в уроке Nextion:

Создаем страницу ожидания.

На страницу «Sleep0», добавим элемент вывода изображения p0.

На страницу «Sleep0», добавим элемент вывода изображения p0.

Добавим картинку в поле изображения. Картинка у меня заранее подготовлена с разрешением по размеру экрана.

Добавим картинку в поле изображения. Картинка у меня заранее подготовлена с разрешением по размеру экрана

Добавляем следующий невидимый элемент «Hotspot», который определяет нажатие на экран.

Добавляем следующий невидимый элемент «Hotspot», который определяет нажатие на экран

Растягиваем его на весь экран Nextion.

Растягиваем его на весь экран Nextion.

Затем настраиваем данному элементу событие, при нажатии — переход на страницу «lock».

Затем настраиваем данному элементу событие, при нажатии - переход на страницу «lock».

Управление яркостью дисплея Nextion.

Для того чтобы установить яркость дисплея есть специальная команда «dim». Для страницы ожидания устанавливаем яркость в 5 % «dim=5».

устанавливаем яркость в 5 % «dim=5».

Чтобы при переходе на страницу клавиатуры яркость у нас снова стала 100%, добавляем аналогичную команду. Но уже устанавливаем значение 100.

Но уже устанавливаем значение 100.

Настраиваем время ожидания до переключения в режим экономии энергии.

Сейчас нам нужно настроить время, через которое дисплей будет переходить в режим ожидания. Для этого добавим еще один таймер на страницу «lock».

дисплей будет переходить в режим ожидания

И настроем таймер на 20 сек. Можно установить другое значения по вашему усмотрению.

таймер на 20 сек

А также установим события перехода в энергосберегающий режим (режим ожидания), что позволит при завершении времени перенаправить на страницу «sleep0». Но чтобы не перенаправляло раньше того, как мы введем пароль или сделаем другие полезные действия, добавляем к каждой кнопке на экране сброс счётчика на 20 сек. Это позволит, при любом действии, дать нам еще 20 сек. на дальнейшие действия. Если ничего не делаем 20 сек., то будет перенаправление на страницу ожидания.

ничего не делаем 20 сек., то будет перенаправление на страницу ожидания

По аналогии добавим таймер на страницу «led».

По аналогии добавим таймер на страницу «led».

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

перенаправит в любой момент на страницу ожидания.

Подготавливаем дисплея для определения параметров страницы перехода.

Сейчас осталось подготовить страницу «led» так, чтобы у нас подгружались данные о настройке подсветки, когда мы перейдем на данную страницу. А не грузились значения по умолчанию, которые являются неверными, если произвели какие-то изменения. Для этого добавим отправку команды на Arduino о том, что мы перешли на данную страницу.

добавим отправку команды на Arduino

А также удалим все надписи из полей: вывода режима и уровня яркости. И уберем с красной кнопки активный статус, который мы делали в уроке:Урок 5. Передаем информацию с Arduino на дисплей Nextion.

вывода режима и уровня яркости

Все готово, сейчас приступим к коду для Arduino.

Arduino код хранения цвета подсветки по умолчанию.

Для того чтобы Arduino понимала, какой цвет по умолчанию мы выбрали последним, добавим переменную.

добавим переменную.

Затем, к обработчикам события изменения цвета по умолчанию, добавим присваивание номера цвета от 1 до 6. Сейчас при изменении цвета мы будем знать, какой цвет установлен по умолчанию. Можно воспользоваться функциями библиотеки и возвращать цвет, но тут уже дело вкуса. Мне кажется, что данный вариант проще.

Затем, к обработчикам события изменения цвета

Код Arduino для страницы перехода, отправляем параметры на дисплей.

Для дисплея мы сделали отправление команды при переходе на экран «led». Сейчас сделаем вывод информации при получении данной команды от дисплея.

Код Arduino для страницы перехода, отправляем параметры на дисплей.

Тут мы выведем название режима. Состояние включена или нет подсветка и уровень яркости. Данные параметры рассматривали в предыдущем уроке: Урок 5. Передаем информацию с Arduino на дисплей Nextion.

Тут мы выведем название режима.

Следующее условие определяет, какой цвет выбран, и отправляет на дисплей команду, которая активирует соответствующую кнопку.

какой цвет выбран

Вот так просто управлять подсветкой с дисплея Nextion. Данный пример можно дорабатывать и улучшать. Но это вы уже сделаете самостоятельно. Также можете посмотреть бонусные видео по подписке на boosty или YouTube.

Внимание! Подписчики на сайте boosty могут скачать исходные файлы в формате .HMI, код для Arduino.

Понравился Урок Управление яркостью дисплея Nextion. Страница ожидания? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Обзор LCD-дисплея 1602A (LCD1602A)

Обзор LCD-дисплея 1602A (LCD1602A)

Жидкокристаллический дисплей (Liquid Crystal Display) сокращенно LCD построен на технологии жидких кристаллов. При проектировании электронные устройства, нам нужно недорогое устройство для отображения информации и второй не менее важный фактор наличии готовых библиотек для Arduino. Из всех доступных LCD дисплеев на рынке, наиболее часто используемой является LCD 1602A, который может отображать ASCII символа в 2 строки (16 знаков в 1 строке) каждый символ в виде матрицы 5х7 пикселей. В этой статье рассмотрим основы подключения дисплея к Arduino.

Технические параметры

Описание дисплея

LCD 1602A представляет собой электронный модуль основанный на драйвере HD44780 от Hitachi. LCD1602 имеет 16 контактов и может работать в 4-битном режиме (с использованием только 4 линии данных) или 8-битном режиме (с использованием всех 8 строк данных), так же можно использовать интерфейс I2C. В этой статье я расскажу о подключении в 4-битном режиме.

Назначение контактов:
► VSS: «-» питание модуля
► VDD: «+» питание модуля
► VO: Вывод управления контрастом
► RS: Выбор регистра
► RW: Выбор режима записи или чтения (при подключении к земле, устанавливается режим записи)
► E: Строб по спаду
► DB0-DB3: Биты интерфейса
► DB4-DB7: Биты интерфейса
► A: «+» питание подсветки
► K: «-» питание подсветки

На лицевой части модуля располагается LCD дисплей и группа контактов.

Обзор LCD-дисплея 1602A (LCD1602A)

На задней части модуля расположено два чипа в «капельном» исполнении (ST7066U и ST7065S) и электрическая обвязка, рисовать принципиальную схему не вижу смысла, только расскажу о резисторе R8 (100 Ом), который служит ограничительным резистором для светодиодной подсветки, так что можно подключить 5В напрямую к контакту A. Немного попозже напишу статью в которой расскажу как можно менять подсветку LCD дисплея с помощью ШИП и транзистора.

Читать еще:  Как в биосе регулировать температуру процессора

Подключение LCD 1602A к Arduino (4-битном режиме)

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► LCD-дисплей 1602A (2×16, 5V, Синий) x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-F (Female — Female) x 1 шт.
► Потенциометр 10 кОм x 1 шт.
► Разъем PLS-16 x 1 шт.
► Макетная плата MB-102 x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Подключение:
Для подключения будем использовать макетную плату, схема и таблица подключение LCD1602a к Arduino в 4-битном режиме можно посмотреть на рисунке ниже.

Схема подключения LCD-дисплея 1602A (LCD1602A)

Таблица подключения LCD-дисплея 1602A (LCD1602A)

Подключение дисплея к макетной плате будет осуществляться через штыревые контакты PLS-16 (их необходимо припаять к дисплею). Установим модуль дисплея в плату breadboard и подключим питание VDD (2-й контакт) к 5В (Arduino) и VSS (1-й контакт) к GND (Arduino), далее RS (4-й контакт) подключаем к цифровому контакту 8 (Arduino). RW (5-й контакт) заземляем, подключив его к GND (Arduino), затем подключить вывод E к контакту 8 (Arduino). Для 4-разрядного подключения необходимо четыре контакта (DB4 до DB7). Подключаем контакты DB4 (11-й контакт), DB5 (12-й контакт), DB6 (13-й контакт) и DB7 (14-й контакт) с цифровыми выводами Arduino 4, 5, 6 и 7. Потенциометр 10K используется для регулировки контрастности дисплея, схема подключения LCD дисплея 1602а, показана ниже

Схема подключения LCD-дисплея 1602A (LCD1602A)

Библиотека уже входит в среду разработки IDE Arduino и нет необходимости ее устанавливать. Скопируйте и вставьте этот пример кода в окно программы IDE Arduino и загрузите в контроллер.

Дисплей Arduino — подключение текстового экрана

Существует большое количесвто разновидностей текстовых, или как их ещё называют знакосинтезирующих, жидкокристаллических экранов. Для работы с такими экранами существует стандартная Arduino-библиотека Liquid Crystal или Liquid Crystal_I2C .

К таким дисплеям относятся в частности текстовые экраны от Мэлт. В этой статье детально описывается схема подключения этого экрана, однако она подойдёт и для множества других текстовых дисплеев.

Необходимые компоненты:

  • Текстовый экран 16×2, 20×4 или любого другого размера с впаянной штырьковой линейкой на 16 контактов;
  • Arduino Uno;
  • Breadboard для удобного подключения. После того, как всё заработает, вы при желании можете избавиться от макетной доски и впаять дисплей в свою плату или припаять провода непосредственно к его контактам;
  • Набор перемычек и/или соединительные провода.

Подключение дисплея:

Закрепите экран на breadboard и подведите к питанию breaboard питание +5 В и землю с Arduino.

Включение подсветки дисплея:

Фоновая подсветка дисплея — это отдельный контур, не связанный с остальным. Включить её можно подав +5 В на 15-й контакт дисплея и подключив 16-й контакт к земле. Соединив эти два контакта с соответствующими дорожками, можно включить Arduino и увидеть, что дисплей засветился.

Обратите внимание, что на некоторых моделях нумерация контактов идёт не просто справа-налево от первого до шестнадцатого, а несколько более хитро. Так, например, на экране 16×2 от Мэлт первый контакт находится на 14-й позиций, второй на 13-й и так далее справа-налево вплоть до 14-го на первой позиции, а 15-й и 16-й расположены справа. Нумерация около контактов дисплея поможет не запутаться.

Включение питания знакосинтезатора:

Далее необходимо подключить цепь, отвечающую за отображение символов. Для этого предназначены контакты 1, 2 и 3 на дисплее. Перед подключением отключите Arduino от питания.

Первый — это земля. Соедините его с рельсой земли.
Второй — питание. Соедините его с рельсой +5 В.
Третий — контрастность. Для получение максимально контрастного изображения соедините его с рельсой земли. Вы можете подать на этот контакт произвольное напряжение от 0 до 5 В, чем оно выше, тем тусклее будет изображение, но вместе с этим снизится энергопотребление. Для возможности плавной регулировки контрастности можете подать на этот контакт выходной сигнал потенциометра.
После подключения, если включить Arduino, вы можете увидеть прямоугольные знакоместа. В зависимости от комбинации цветов текста и подсветки они могут быть как яркими и хорошо заметными, так и едва заметными. Это нормально: в любом случае, текст будет смотреться отлично.

одключение шины данных:

Для коммуникации между Arduino и экраном необходимо использовать несколько линий взаимодействия:

  • 2 или 3 для командования дисплеем
  • 4 или 8 для передачи данных (кодов символов и команд)

Таким образом занятыми окажутся от 6-ти до 11-ти контактов от обоих устройств. Если вам не требуется считывать с дисплея, что подходит под большинство сценариев использования, для команд понадобится 2 линии.

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

Итак, для подключения дисплея достаточно истпользовать 6 линий, 6 контактов на Arduino. Рассмотрим именно этот сценарий.

Как упоминалось, нам не за чем считывать с дисплея, мы будем в него только писать. Поэтому соединим 5-й контакт дисплея, который отвечает за выбор чтение/запись с рельсой земли. Это означает «всегда писать».

Затем, соединяем Arduino и экран нашими 6-ю линиями коммуникации. Какие именно контакты будут выбраны на Arduino не имеет значения: мы зададим их в программе, но для примера была выбрана такая конфигурация:

4-й контакт дисплея — 4-й контакт Arduino. Это линия адресного сигнала. Известная как A0 или RS. В зависимости от того, 0 она или 1, дисплей понимает имеем ли мы на линии данных команду вроде «передвинуть курсор» или код символа для отображения.
6-й контакт дисплея — 5-й контакт Arduino. Это линия разрешения доступа к данным. Известная, как E или Enable. Когда эта линия становится единицей, дисплей исполняет команду или выводит символ с линии данных.
11-й, 12-й, 13-й, 14-й контакт дисплея — 10-й, 11-й, 12-й, 13-й контакт Arduino соответственно. Это линии данных. Известные как DB4, DB5, DB6, DB7.

Читать еще:  Как регулировать ток в зарядном устройстве для аккумулятора

Экран подключен и готов к приёму данных. Осталось написать программу для Arduino.

Программирование дисплея Arduino

Для вывода текста с Arduino удобнее всего воспользоваться встроенной библиотекой Liquid Crystal. Для вывода приветствия и таймера, воспользуйтесь этим кодом:

Как установить криллицу?

Информация в этом разделе относится именно к дисплеям от Мэлт. Китайские и Европейские аналоги вряд ли имеют в своём наборе символов кириллицу, обратитесь к документации на дисплей, чтобы узнать об этом подробнее.

Вывод русских букв не совсем тривиален: вы не можете просто написать lcd.print(«Вася»). Это связано с понятием кодировок. Вы знаете, что каждому символу соответствует код и при компиляции программы, если строка содержит кириллицу, она будет сконвертирована в коды по таблице utf-8, cp-1251 или какой-то другой в зависимости от настроек компилятора. Экран в свою очередь, ожидает увидеть данные в собственной кодировке.

Так например, букве «Я» соответствует код B1 в шестнадцатиричной системе. Чтобы передать на экран строку «Яndex», необходимо в явном виде с помощью последовательности x## встроить в строку код символа:

Можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность x, он считывает за ним все символы, которые могут являться разрядами шестнадцатиричной системы даже если их больше двух. Из-за этого вы не можете просто использовать символы из диапазона 0-9, a-f следом за двузначным кодом символа: это вызовет ошибку компиляции. Чтобы обойти этот момент, можно использовать тот факт, что две строки записанные рядом склеиваются. Так, если вы хотите написать «Яeee»:

Освещаем LCD дисплей

Используя этот метод мы сможем сделать «подсветку» для ЖК дисплея любого цвета.

Освещаем LCD дисплей

Итак, не вижу никаких причин, что бы откладывать этот проект на неопределенный срок. Приступаем!

Вебинар «Новые решения STMicroelectronics в области спутниковой навигации» (17.11.2021)

Освещаем ЖК дисплей

Как видно их фотографии (см. выше) нам понадобиться:

  • Кусочек прозрачного пластика
  • СИДы
  • Резисторы
  • Немного проводов
  • Инструменты (см. далее )

Дисплей состоит из печатной платы, металлического корпуса и собственно, сборки ЖК. Внимание! Не забудьте точно запомнить (а лучше записать) точное расположение компонентов (верх / низ ) ! Обратная сторона пластикового «стеклышка» (см. фото) покрыта тонкой отражающей пленкой — аккуратно снимите ее.

Вполне возможно вы вместе с отражающей пленкой удалите поляризационный фильтр (см. фото ниже). Не пугайтесь! Используйте любой острый предмет что бы отделить их друг от друга.

Теперь вырезаем прямоугольную пластинку из нашего куска пластика. Обрабатываем обе поверхности пластинки очень мелкой наждачной бумагой. Вырезаем в пластинке углубления для установки СИДов (см. фото ниже).

Теперь приклеиваем светодиоды к пластинке (похоже на Лего, не правда ли?). Теперь сверим результаты :

У вас получилось похоже? Тогда продолжаем! Теперь самая сложная часть проекта для тех, кто не выполнял в точности предыдущие шаги. Те же, кто записал или запомнил, каким был дисплей до нашего вмешательства (порядок сборки его деталей) — повезло, на этом этапе у них не должно возникнуть серьезных проблем. Теперь соберем все части этой «головоломки» :

  • Печатная плата
  • Белый кусочек бумаги (чтобы отражать свет)
  • Поляризационный фильтр
  • Пластиковая пластинка со встроенными СИДами
  • «стеклышко»
  • Рама Внимание! Будьте крайне осторожны с «зеброй» контактов.

Если вы дотронулись до нее пальцами, обязательно используйте спирт что бы очистить ее. Если после установки у вас появились пустые (неработающие) строки — попробуйте аккуратно подвигать шлейф.

Надеюсь вы уже подсчитали какие резисторы вам понадобятся. Паяем! Есть несколько способов «запитать» СИДы. Первый — можно подключить к плате (пин 0 — GND, пин 1 — 5 В ). Или же сделать отдельное подключение (например, если на плате есть вывод для подсветки (опциональный)).

Регулятор яркости системы освещения на трех светодиодных лентах (Arduino UNO)

Этот регулятор предназначен для управления системой освещения кухни,состоящей из трех раздельных источников света на основе светодиодной ленты белого свечения.

Обычно для регулировки яркости светодиодной ленты применяют регуляторы, работающие двумя кнопками — на уменьшение и на увеличение яркости.

Но это не всегда удобно, потому что начинать нужно с какого-то минимального или максимального значения, и либо удерживать кнопку длительное время, пока яркость не будет такой, как нужно, или многократно нажимать регулировочную кнопку. Таких регуляторов описано в литературе очень много.

Этот же отличается тем, что работает на переключение пяти уровней света (выключено, включено на всю яркость, и три промежуточных значения яркости) для каждой из трех светодиодных лент в отдельности. Это позволяет сразу включить освещение на нужную яркость, без каких-то регулировочных переходных процессов.

Для управления используется пульт дистанционного управления марки TOSHIBA SE-R0301 от неисправного DVD-плеера. Но, в принципе, можно использовать любой другой пульт, соответственно внеся изменения в программу.

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

Принципиальная схема

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

Соответственно, верхние кнопки («Open», «Display», «Оп/Off») отвечают за выключенное состояние соответствующих светодиодных лент (яркость нулевая), а нижние кнопки («+10», «О», «Search») отвечают за включение соответствующих светодиодных лент на максимальную яркость).

Принципиальная схема регулятора яркости системы освещения на Arduino UNO и трех светодиодных лентах

Рис. 1. Принципиальная схема регулятора яркости системы освещения на Arduino UNO и трех светодиодных лентах.

Промежуточные кнопки, отвечают за промежуточные величины яркости, которые, можно при программировании выбрать произвольно. В данном случае, это уровни 50, 100 и 170 (максимальный уровень 255). Как уже сказано, можно использовать и любые другие этого или другого пульта, или сделать больше ступеней изменения яркости, использовав больше кнопок пульта.

Все это можно сделать несложными изменениями в программе. Этот переключатель — регулятор яркости сделан на основе микроконтроллерной платы ARDUINO UNO.

Использование недорогой готовой платы ARDUINO UNO интересно тем, что это готовый модуль, — небольшая печатная плата, на которой расположен микроконтроллер ATMEGA328. а так же вся его «обвязка», необходимая для его работы, включая USB-программатор и стабилизатор напряжения питания.

Читать еще:  Как отрегулировать дверь шкафа на трех петлях

Принципиальная схема показана на рисунке. Для приема команд пульта дистанционного управления используется фотоприемник F1 типа TSOP4838, но можно применить и любой другой аналогичный. Сигнал от него поступает на цифровой порт D2, который используется для работы на прием.

У платы ARDUINO UNO имеется 14 цифровых портов, от D0 до D13. При этом шесть из них (D3, D5. D6. D9, D10, D11) могут работать как бы в аналоговом режиме, в котором на них присутствует не ноль или единица, а импульсы, широту которых можно задавать от 255-ю ступенями.

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

Данное устройство предназначено для регулировки яркости трех светодиодных лент белого свечения. Для этого можно взять любые три из выше перечисленных портов. В данном случае взяты порты D5, D9 и D10.

Импульсы с них подаются на затворы полевых транзисторов VT1, VT2, VT3 в стоковых цепях которых включены светодиодные ленты HL1, HL2, HL3, яркость которых и нужно регулировать.

Программа

Программа для ARDUINO UNO на языке C++ приводится в таблице 1, применительно для пульта TOSHIBA SE-R0301. Данная программа требует загрузки библиотеки IRremote.h которая нужна для распознавания команд пульта ДУ. Эта библиотека есть в стандартном наборе программного обеспечения для ARDUINO. у меня версия Arduino 1.6.11.

Далее идет назначение портов В строке:

входным назначен порт D2. На него подается сигнал с выхода интегрального фотоприемника А в строках:

выходными назначены порты D5. D9, D10.

В программе после «case Ох» записаны коды команд, которые формируется при нажатии соответствующей кнопки пульта дистанционного управления. Эти коды соответствуют пульту TOSHIBA SE-R0301 от неисправного DVD-плеера. Можно использовать и другой пульт, но тогда и коды будут другие.

После поступления соответствующего кода указывается уровень скважности импульсов на соответствующем выходе, например, при нажатии кнопки «1» устанавливается на D5 порту 50-й уровень широты импульсов:

Соответственно, другим кнопкам присвоены другие уровни широты импульсов для управления соответствующими светодиодными лентами (НL1, HL2, HL3).

Если заданные в программе уровни яркости по какой-то причине не устраивают, можно ввести какие угодно, и в любом порядке, важно чтобы это было целое число в пределах от 0 до 255.

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

Но нужно будет предварительно разобраться, какие коды соответствуют выбранным кнопкам этого или другого пульта. Для этого нужно сначала загрузить в ARDUINO UNO программу из таблицы 2, которая предназначена для определения кодов кнопок пульта.

Таблица 1. Исходный код программы управления тремя светодиодными лентами (часть 1).

Исходный код программы управления тремя светодиодными лентами (часть 1)

регулятор трех лент */

IRrecv irrecv(2); // фотоприемник на порту D2

pinMode(5, OUTPUT); // задание порта D5 как выходного

pinMode(9, OUTPUT); // задание порта D9 как выходного

pinMode(10, OUTPUT); // задание порта D10 как выходного

irrecv.enableIRIn(); // запуск приема команд

analogWrite( 5, 0); // кнопкой OPEN выключено HL1

analogWrite( 5, 50); // кнопкой 1 включено HL1 на 50

analogWrite( 5, 100); // кнопкой 4 включено HL1 на 100

analogWrite( 5, 170); // кнопкой 7 включено HL1 на 170

analogWrite( 5, 255); // кнопкой +10 включено HL1 на все

analogWrite( 9, 0); // кнопкой DISPLAY выключено HL2

analogWrite( 9, 50); // кнопкой 2 включено HL2 на 50

analogHrite( 9, 100); // кнопкой 5 включено HL2 на 100

analogWrite( 9, 170); // кнопкой 8 включено HL2 на 170

analogWrite( 9, 255); // кнопкой 0 включено HL2 на все

analogWrite( 10, 0); // кнопкой ONOFF выключено HL3

Таблица 1 (продолжение). Исходный код программы управления тремя светодиодными лентами (часть 2).

Исходный код программы управления тремя светодиодными лентами (часть 2)

analogWrite( 10, 50); // кнопкой 3 включено HL3 на 50

analogWrite( 10, 100); // кнопкой 6 включено HL3 на 100

analogWrite( 10, 170); // кнопкой 9 включено HL3 на 170

analogWrite( 10, 255); // кнопкой SEARCH включено HL3 на все

Таблица 2. Исходные коды для определения команд пульта.

Исходные коды для определения команд пульта

определение кодов команд пульта */

IRrecv irrecv(2); // фотоприеиник на порту D2

Serial.begin(9600); // задание скорости порта COM

irrecv.enableIRIn(); // запуск приема команды

Serial.println(results.value, HEX); // вывод данных в COM

irrecv.resume(); // прием следующей команды

После загрузки данной программы в микроконтроллер платы ARDUINO UNO, нужно открыть монитор COM-порта, для этого в окне программы Arduino 1.6.11 выбираем «Инструменты» и из выпадающего меню «Монитор порта».

После того как откроется окошко Монитора порта, берем пульт ДУ и нажимаем интересные нам кнопки. В окне Монитора порта будет отображаться код, соответствующий каждой кнопке.

Следует заметить, что может быть такое, что при нажатии каждой кнопки приходит две команды, — сначала код команды, а затем код FFFFFFF. Или даже несколько строк кода FFFFFFF.

Так вот, первое это код команды, который нужно занести в программу в таблице 1 после «case 0х», а вторая строка или строки букв «F» это просто указатель на то, как долго кнопка удержана нажатой, в одном случае. В другом случае может показывать, что кнопку отпустили.

Для нашего случая это несущественно, — важен только код самой команды. А вот с пультами типа RC-5 (для старых телевизоров «Горизонт», «Витязь» и др ) вообще, каждой кнопке будет присваиваться по два кода, которые будут поочередно меняться при каждом нажатии кнопки.

В этом случае нужно будет прописать по две одинаковые команды для каждой из кнопок. Либо мириться с тем. что зачастую для исполнения команды нужно будет нажимать кнопку дважды.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector