Юрий Ревич - Занимательная электроника
- Название:Занимательная электроника
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2015
- Город:Санкт-Петербург
- ISBN:978-5-9775-3479-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Юрий Ревич - Занимательная электроника краткое содержание
На практических примерах рассказано о том, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. От физических основ электроники, описания устройства и принципов работы различных радиоэлектронных компонентов, советов по оборудованию домашней лаборатории автор переходит к конкретным аналоговым и цифровым схемам, включая устройства на основе микроконтроллеров. Приведены элементарные сведения по метрологии и теоретическим основам электроники. Дано множество практических рекомендаций: от принципов правильной организации электропитания до получения информации о приборах и приобретении компонентов применительно к российским условиям. Третье издание дополнено сведениями о популярной платформе Arduino, с которой любому радиолюбителю становятся доступными самые современные радиоэлектронные средства.
Для широкого круга радиолюбителей
Занимательная электроника - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
* * *
Да, а как принять посланные байты в компьютере? Для этого годится абсолютно любая программа-монитор, позволяющая устанавливать номер порта и скорость приема. В том числе такая программа входит и в Arduino IDE ( Сервис | Монитор порта). Она заслуженно вызывает многочисленные нарекания своей примитивностью, но для каких-нибудь простых тестовых целей вполне годится — главное, что в ней не надо ничего устанавливать, связь с устройством доступна немедленно после загрузки программы. Для более «продвинутых» читателей я рекомендую свою программу-монитор под названием Соm2000 (ее можно скачать с сайта автора по адресу http://revich.lib.ru/comcom.zip) — она отличается тем, что позволяет организовать обмен в любом удобном формате (численном в десятичной или шестнадцатеричной форме, а также в текстовом). Входит подобная программа, как составная часть, и в утилиту X–CTU для настройки радиомодулей по протоколу ХЬее, которыми мы будем заниматься в следующей главе.
Столь простое обращение с последовательным портом позволяет дополнить программы Arduino простейшим средством отладки. Такие средства напрочь отсутствуют в среде Arduino, а без них очень трудно отлаживать более-менее сложные программы, — ту же настройку часов из компьютера ( глава 22 ) без контроля за тем, что принимается в программе и в каком виде, создать было бы просто нереально. Для этого в нужных местах программы вы расставляете операторы Serial.print() или Seriai.write() , посылающие в компьютер переменные, значения которых необходимо контролировать, и отслеживаете их состояние через монитор порта.
Другие подробности работы с последовательным портом мы узнаем по ходу дела, а сейчас займемся задачей вывода значений на индикаторы. Это отдельная задача, и не слишком простая — имеющиеся в продаже дисплеи весьма разнообразны по типу и довольно капризны в обращении.
Дисплеи для вывода цифр, текста и графики, как мы уже знаем из главы 7 , встречаются нескольких разновидностей. Здесь мы остановимся на небольших матричных дисплеях, в которых изображение составляется из точек, что позволяет формировать произвольные символы и элементарные изображения. Матричные дисплеи бывают графические и строчные, отличающиеся способом управления: у них разные контроллеры, ориентированные в одном случае на адресацию каждой точки в отдельности, во втором — на вывод символов по их коду, подобно тому, как это делается в программах для компьютеров. Разумеется, эта преимущественная ориентация не исключает вывод текста на графические дисплеи или вывод примитивных изображений на строчные. Именно задачей вывода текста на графический дисплей мы сейчас и займемся, а в следующей главе познакомимся со строчными разновидностями.
Для каждого из этих типов дисплеев имеется стандартный контроллер, по образцу которого строится управление любой аналогичной матрицей. Для символьных строчных экранов стандартный контроллер называется HD44780, а для графических ту же роль играет ks0108 — с ним совместимы все графические экраны небольшого размера. Мы воспользуемся популярным отечественным графическим ЖК-модулем MT-12864J фирмы МЭЛТ. На сайте «Амперки» в разделе Вики легко разыскать статью «Работа с ЖК-матрицей 128x64», рассказывающую о подключении этого модуля в стандартном графическом режиме с помощью библиотеки GLCD.
Здесь мы подробнее остановимся на некоторых нюансах практического применения ЖК-матриц на основе контроллера ks0108, а также рассмотрим вывод текста с помощью готовых шрифтов из библиотеки GLCD и вопросы их модернизации для вывода кириллических символов.
К сожалению, контроллер ks0108 имеет параллельный восьмибитовый интерфейс, и с учетом управляющих выводов нам придется занять аж 13 функциональных контактов платы Arduino Uno. Число соединений можно сократить, если подключить ЖК-модуль через сдвиговый регистр или, что еще проще, дешифратор двоичного кода. В первом случае число линий данных сократится с восьми до одной плюс линия импульсов сдвига, во втором — до трех. Но в обоих случаях о стандартной библиотеке придется забыть, создавать свои схемы подключения и писать свои процедуры вывода.
Поэтому мы прибегнем к стандартному способу, но внесем в него некоторые изменения. Использовать именно те выводы Arduino, что предусмотрены библиотекой GLCD по умолчанию [43] См. таблицу в описании библиотеки на официальном сайте Arduino, где матрице MT-12864J соответствует вариант «Pinout A»: http://www.arduino.cc/playground/Code/GLCDks0108 . Описания этой библиотеки на русском языке, к сожалению, не имеется.
, при таком их количестве не только неудобно, но часто просто невозможно. Не забудем, что ведь мы еще подключаем к контроллеру всякие другие устройства по стандартным коммуникационным портам, и стоит постараться не занимать их выводы по максимуму.
Модернизированная с учетом этого обстоятельства схема подключения MT-12864J к Arduino Uno приведена на рис. 21.4.

Рис. 21.4. Схема подключения MT-12864Jк Arduino Uno
Как видите, у нас оставлены, свободными контакты D1 и D2 (RX и ТХ последовательного порта) и контакты А4-А5, которые, как мы еще узнаем, участвуют в обмене через порт 12С. Одновременная работа со стандартным подключением SD-карты, требующим выводов интерфейса SPI (11, 12, 13 и, с некоторыми оговорками, 10) здесь уже оказывается невозможной. Этот дефицит выводов станет одной из причин, по которым в проекте метеостанции, рассматриваемом в следующей главе, мы выберем другой тип дисплея. Но и ЖК-дисплей может оказаться полезным во многих случаях, особенно при проектировании малопотребляющих приборов, работающих на батарейках.
Обратим также внимание на резисторы R1 и R2, о которых почему-то авторы статей о графических матрицах часто забывают упомянуть. Переменный или подстроечный резистор R1 служит для регулировки контрастности индикатора. На схеме он подключен так, как рекомендуется в документации фирмы МЭЛТ, однако может подключаться и по схеме потенциометра: одним концом к «земле», другим к питанию 5 В, а средним выводом к контакту Vo индикатора. Номинал его выбирается в пределах 10–20 кОм, и в конечном продукте R1 можно заменить на постоянный резистор подобранного номинала.
Резистор R2 — токоограничивающий для LED-подсветки. Его можно не устанавливать вовсе (и в документации он не упоминается), поэтому на схеме он обозначен пунктиром. Согласно документации МЭЛТ, ток подсветки тогда составит около 64 мА. Установить токоограничивающий резистор R2 следует в двух случаях: если вы хотите уменьшить ток (и, соответственно, пожертвовать яркостью подсветки), или если подсветка питается от отдельного источника с повышенным напряжением. Последний вариант обычно реализуется при смешанном питании, когда подсветка подключается к нестабилизированному напряжению на выходе сетевого адаптера, а при переключении на батарейку отключается вовсе. Потребление контроллера модуля при выключенной подсветке тогда составит всего 4 мА (на подробностях реализации этого способа мы здесь останавливаться не будем). При обычном напряжении на выходе адаптера (7–9 В) резистор R2 должен погасить лишние 2–4 В, соответственно, его номинал должен составлять от 39 до 62 Ом.
Читать дальшеИнтервал:
Закладка: