![Dropbox intitle все публикации пользователя. Dropbox — как пользоваться облачным хранилищем данных, а так же работа с программой Дропбокс на компьютере и в мобильном](https://i1.wp.com/robotclass.ru/wp-content/uploads/2014/12/lcdx1potx1_%D1%81%D1%85%D0%B5%D0%BC%D0%B0-1024x896.png)
Dropbox intitle все публикации пользователя. Dropbox — как пользоваться облачным хранилищем данных, а так же работа с программой Дропбокс на компьютере и в мобильном
Все давно привыкли, что у каждого электронного устройства есть экран, с помощью которого оно дает человеку всякую полезную информацию. MP3-плеер показывает название играемого трека, пульт квадрокоптера отображает полетную телеметрию, даже стиральная машина выводит на дисплей время до конца стирки, а на смартфоне вообще размещается целый рабочий стол персонального компьютера!
Скорее всего, вашему очередному устройству тоже не помешает какой-нибудь небольшой дисплейчик 🙂 Попробуем сделать простые электронные часы! А в качестве табло используем распространенный и дешевый символьный жидкокристаллический дисплей 1602. Вот прямо такой, как на картинке:
Кроме 16х2, достаточно популярным считается символьный дисплей 20х4 (четыре строки по 20 символов), а также графический дисплей с разрешением 128х64 точек. Вот они на картинках:
1. Подключение символьного ЖК дисплея 1602
У дисплея 1602 есть 16 выводов. Обычно они нумеруются слева-направо, если смотреть на него так как на картинке. Иногда выводы подписываются, типа: DB0, DB1, EN и т.п. А иногда просто указывают номер вывода. В любом случае, список выводов всегда одинаковый:
1 — «GND», земля (минус питания);
2 — «Vcc», питание +5В;
3 — «VEE», контраст;
4 — «RS», выбор регистра;
5 — «R/W», направление передачи данных (запись/чтение);
6 — «EN», синхронизация;
7-14 — «DB0», «DB1», .., «DB7″- шина данных;
15 — анод подсветки (+5В);
16 — катод подсветки (земля).
Линии VEE, RS и четыре линии данных DB4, DB5, DB6, DB7 подключаем к цифровым выводам контроллера. Линию «R/W» подключим к «земле» контроллера (так как нам потребуется только функция записи в память дисплея). Подсветку пока подключать не будем, с этим, я полагаю, вы сами легко разберетесь 🙂
Принципиальная схема подключения дисплея к Ардуино Уно
Внешний вид макета
На всякий случай еще и в виде таблички:
ЖК дисплей 1602 | 1 | 2 | 4 | 6 | 11 | 12 | 13 | 14 | 15 | 16 |
Ардуино Уно | GND | +5V | 4 | 5 | 6 | 7 | 8 | 9 | +5V | GND |
2. Программируем «Hello, world!»
Для работы с ЖК дисплеями различных размеров и типов, в редакторе Arduino IDE имеется специальная библиотека LiquidCrystal . Чтобы подключить библиотеку, запишем первой строчкой нашей программы следующее выражение:
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);
Здесь первые два аргумента — это выводы RS и EN, а оставшиеся четыре — линии шины данных DB4-DB7.
Lcd.begin(16, 2);
Напоминаю, в нашем дисплее имеется две строки, по 16 символов в каждой.
Наконец, для вывода текста нам понадобится простая функция «print». Вывод с помощью этой функции всем известной фразы будет выглядеть следующим образом:
Lcd.print("Hello, world!");
Полностью программа будет выглядеть так:
#include
Загружаем её на Ардуино Уно, и смотрим что творится на дисплее. Может быть три основных ситуации 🙂
1) На дисплее отобразится надпись «Hello, world!». Значит вы все правильно подключили, и контраст каким-то чудесным образом оказался изначально правильно настроен. Радуемся, и переходим к следующей главе.
2) На дисплее отобразится целый ряд черных прямоугольников — требуется настройка контраста! Именно для этого мы добавили в цепь потенциометр с ручкой. Крутим его от одного края, до другого, до момента пока на дисплее не появится четкая надпись.
3) Два ряда черных прямоугольников. Скорее всего, вы что-то напутали при подключении. Проверьте трижды все провода. Если не найдете ошибку — попросите кота проверить!
3. Программируем часы
Теперь когда дисплей точно работает, попробуем превратить наше нехитрое устройство в настоящие электронные часы.
Внимание! Для вывода времени нам потребуется библиотека «Time». Если она еще не установлена, то можно скачать архив по ссылке . Подключим ее:
#include
Затем установим текущие дату и время с помощью функции «setTime»:
SetTime(23, 59, 59, 12, 31, 2015);
Здесь все понятно: часы, минуты, секунды, месяц, число, год.
Для вывода даты используем кучу функции:
- year() — вернет нам год;
- month() — месяц;
- day() - день;
- hour() - час;
- minute() — вернет минуту;
- second() - секунду.
Теперь обратим внимание вот на какой факт. Если посчитать количество символов в типовой записи даты: «31.12.2015 23:59:59», получим 19. А у нас всего 16! Не влазит, однако, в одну строчку.
Решить проблему можно еще одной полезной функцией — «setCursor». Эта функция устанавливает курсор в нужную позицию. Например:
Lcd.setCursor(0,1);
Установит курсор в начало второй строчки. Курсор — это место символа, с которого начнется вывод текста следующей командой «print». Воспользуемся этой функцией для вывода даты в первой строчке, а времени во второй.
С выводом даты и времени теперь все ясно. Остались рутинные вещи. Например, после каждого заполнения дисплея, мы будем его чистить функцией «clear()»:
Lcd.clear();
А еще нам нет смысла выводить данные на дисплей чаще чем раз в секунду, поэтому между двумя итерациями сделаем паузу в 1000 миллисекунд.
Итак, сложив все вместе, получим такую программу:
#include
Загружаем скетч на Ардуино Уно, и наблюдаем за ходом часиков! 🙂 Для того чтобы закрепить полученные знания, рекомендую прокачать наши часы до полноценного будильника. Всего-то на всего потребуется добавить пару кнопок и зуммер 🙂