Юрий Ревич - Занимательная электроника
- Название:Занимательная электроника
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2015
- Город:Санкт-Петербург
- ISBN:978-5-9775-3479-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Юрий Ревич - Занимательная электроника краткое содержание
На практических примерах рассказано о том, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. От физических основ электроники, описания устройства и принципов работы различных радиоэлектронных компонентов, советов по оборудованию домашней лаборатории автор переходит к конкретным аналоговым и цифровым схемам, включая устройства на основе микроконтроллеров. Приведены элементарные сведения по метрологии и теоретическим основам электроники. Дано множество практических рекомендаций: от принципов правильной организации электропитания до получения информации о приборах и приобретении компонентов применительно к российским условиям. Третье издание дополнено сведениями о популярной платформе Arduino, с которой любому радиолюбителю становятся доступными самые современные радиоэлектронные средства.
Для широкого круга радиолюбителей
Занимательная электроника - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
#include //подключим библиотеку
#include "SystemFont5x7R.h"//файл шрифта
void setup (){
GLCD.Init();//инициализация
GLCD. ClearScreen ();
}
void loop ()
{
GLCD.SelectFont(System5x7);//выбираем шрифт
GLCD.CursorToXY(0,0);//установим курсор в начальную позицию
GLCD. println ("АБВГДЕЖЗИЙКЛМНОП");
GLCD.println("PCTyOXU41imbbIb3roH");
GLCD.println ("абвгдежзийклмноп");
GLCD.println("рстуфхцчшщъыьэюя");
GLCD.println("1234567890");
GLCD.CursorToXY(19*6,4*8); //установим курсор в предпоследнюю позицию 5-й строки
GLCD.print( \\С ); //градус С
GLCD.CursorToXY(4*6,7*8); //установим курсор в позицию 4 строки 8
GLCD.print("MT-12864J");
}
Из приведенного примера понятно, как обращаться с текстом при выводе. Текстовая зона с данным шрифтом содержит 8 строк по 21-му символу в каждой. При выводе строки длиннее 21 символа, ее конец автоматически перейдет на другую строку. Для принудительного перевода строки используйте функцию GLCD.println ().
Чтобы правильно позиционировать вывод текста, следует иметь в виду, что библиотечная функция cursorToXY() рассчитана на графический экран 128x64 точки. По этой причине при выводе текста указывать положение курсора удобно так, как показано в примере, с учетом того, что символ занимает 6 точек по ширине, а строка — 8 точек по высоте. Поскольку позиции в строке и сами строки нумеруются с нуля, то вывод символа в предпоследнюю (20-ю, т. е. номер 19) позицию пятой (т. е. номер 4) строки предваряем оператором cursorToXY (19*6,4*8) .
Обратите внимание, что вывод на такой дисплей всегда должен начинаться с функции установки курсора на определенную позицию — чтобы выводимые символы заменяли старые на том же месте. Иначе в следующем цикле функции loop () строки быстро поползут вверх, не давая разглядеть результата. Результат выполнения тестовой программы приведен на рис. 21.5. Фото сделано при выключенной подсветке — на снимке она была бы практически не видна.

Рис. 21.5. Результат выполнения тестовой программы для дисплея MT-12864J
ГЛАВА 22
Метеостанция на Arduino
Как на Arduino делать устройства лучше фирменных
Вдруг из темноты выступила какая-то фигура, очертания которой показались д'Артаньяну знакомыми, и привычный его слуху голос сказал.
— Я принес ваш плащ, сударь, сегодня прохладный вечер.
А. Дюма.Три мушкетера
Домашняя метеостанция — один из самых необходимых и оправданных радиолюбительских проектов. Как мы уже говорили, бытовые метеостанции, имеющиеся в продаже, не выдерживают никакой критики — ни с точки зрения удобства пользования и дизайна, ни с точки зрения метрологических качеств. Через руки автора этих строк прошло не менее десятка моделей бытовых метеостанций, и ни у одной из них работу нельзя было признать удовлетворительной. Дисплеи перенасыщены лишней информацией, значения температуры «разъезжаются», показатели влажности не совпадают на десятки процентов, в довершение всего станция все время теряет внешний радиодатчик и поймать его можно, только полностью отключив питание и тем самым потеряв настройки дисплея и часов…
Все эти проблемы не имеют никаких объективных предпосылок и явно возникают исключительно из-за халатности разработчиков и производителей. С помощью современной элементной базы они легко решаются на среднем любительском уровне при наличии минимального терпения и аккуратности. Единственное, возможно, узкое место, которое трудно преодолеть при самодеятельном конструировании, представляет собой дисплей — после ознакомления с ассортиментом того же «Чипа-Дипа» становится понятно, почему для почти каждого бытового прибора придумывают экран своей оригинальной конструкции. Но тут уж ничего не поделаешь, придется выбирать, что дают. В остальном Arduino позволяет подойти к конструированию метеостанции «по-взрослому» — не делая скидок на любительское происхождение при выборе функциональности. Поскольку мы станем ориентироваться на ассортимент готовых модулей, то результат окажется, как минимум, не дороже тех убогих произведений, которыми переполнены интернет-магазины домашней техники. При этом мы легко сможем реализовать дополнительные функции, которые либо присущи очень дорогим моделям, либо отсутствуют в промышленных образцах вовсе. Самое трудное, как всегда в таких случаях, — оформление конечного результата так, чтобы его было не стыдно повесить на стенку, но тут все в ваших руках.
Должен сказать, что в процессе отладки конструкции, описанной далее, производители комплектующих для Arduino не переставали меня удивлять. Я был готов к тому, что показания приобретенных датчиков придется корректировать программным путем, — совершенно невероятно, чтобы они на производстве подвергались уточняющей калибровке. Однако, датчики и без коррекции удовлетворяли требованиям!
А 2-милливаттный Xbee-радиодатчик спокойно работал через три межкомнатных перегородки — лучше фирменного роутера Wi-Fi в тех же условиях.
Перед тем как приступать к проектированию, надо точно определить, к чему мы стремимся. Давайте сформулируем, что должна «уметь» и из каких основных узлов состоять домашняя метеостанция.
□ Главный модуль— измерение внутренней температуры (в месте установки), влажности и атмосферного давления. Питание от сети.
□ Выносной датчик внешней (уличной) температуры и влажности— связь с главным модулем по радиоканалу, питание от батарейки (а значит, функции энергосбережения). Связь должна надежно работать как минимум через оконный стеклопакет, а лучше — через бревенчатую (в идеале — кирпичную или бетонную) стенку, на расстоянии не менее 5–7 метров.
□ Часы реального времени с календарем— должны иметь автономное питание и возможность автоматической/полуавтоматической коррекции хода.
□ Дисплей главного модуля— внешняя температура/влажность, внутренняя температура/влажность, атмосферное давление, время, дата, день недели. Проработаем два варианта: с ЖК-модулем (тем, который описан в предыдущей главе) и с более эстетично выглядящим, но и существенно более дорогим светящимся экраном на основе OLED.
Читать дальшеИнтервал:
Закладка: