В тему названию сайта, наши часики тоже будут космические!
Можно было бы написать две статьи, но у меня получилась одна, но состоящая из двух частей.
Часть 1.
Пример использования популярного в народе символьного LCD-дисплея WH0802. Это восьмисимвольный двухстрочный жидкокристаллический дисплей со светодиодной подсветкой.
Для его подключения был спаяна вот такая платка:
Ее схема:
Кроме того, сам дисплейчик был слегка доработан. На плате есть посадочные места, но не впаяны резисторы, с помощью которых можно подать питание на светодиоды подсветки. Мы поставили два резистора на 33 ома.
Дисплей имеет не сложный параллельный интерфейс, подробно описанный в документации (
Хочу отметить несколько важных моментов при работе с дисплеем. Сразу после включения питания нужно немного подождать - в дисплее есть свой контроллер, и на его инициализацию уходит какое-то время (мы ждем 1 секунду). Далее в него нужно занести управляющую последовательность, включить 4-х битный режим, отображение второй строки и так далее. ( мы, кроме того, пишем слово "Marsohod" в верхней строке ). После этого можно выводить нужную нам информацию, не забывая корректировать указатель на дисплейную память.
Теперь, когда мы можем пользоваться дисплейчиком и хотим сделать из него часы, встает резонный вопрос, а где, собственно, брать время?
Часть 2.
GPS-приемник.
Приобрел по случаю GPS модуль CONDOR67650-10. К счастью, к самому модулю, в магазине, где я его покупал, мне предложили взять и антенну, за что им огромное спасибо.
К сожалению, документация на него не очень подробная (
Для экспериментов была спаяна платка:
Обратная сторона:
Модуль имеет последовательный интерфейс, и первое, что мы сделали - это подключили его к компьютеру (правда понадобился еще преобразователь уровней RS232). Сразу после включения модуль один раз в секунду передает примерно такие сообщения:
$GPRMC,115403.908,V,,,,,0.00,0.00,261110,13.6,W,N*06
$GPGGA,115404.908,,,,,0,0,,,M,,M,,*4C
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115404.908,V,,,,,0.00,0.00,261110,13.6,W,N*01
$GPGGA,115405.908,,,,,0,0,,,M,, $GPGGA,115417.908,,,,,0,0,,,M,,M,,*4E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115417.908,V,,,,,0.00,0.00,261110,13.6,W,N*03
$GPGGA,115418.908,,,,,0,0,,,M,,M,,*41
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00*79
$GPRMC,115418.908,V,,,,,0.00,0.00,261110,13.6,W,N*0C
Что они конкретно означают, можно почитать где-нибудь в википедии, а нас интересуют только первые цифры после названия сообщения - это время UTC в символьном виде ( московское UTC+3, в проекте мы это учли ).
Причем время есть с разных сообщениях, для нас достаточно какого нибудь одного, например, "$GPRMC".
Нам остается подключить приемник к плате Марсоход и из каждого сообщения "$GPRMC" выводить время на дисплей.
Сразу после включения GPS-приемник выдает какое-то свое время (2:59:47),
а правильное начинает выдавать только через некоторое время, когда настроится на спутник. Причем, в зависимости от условий приема, это время может быть достаточно большим.
Подробнее...