Юрий Ревич - Занимательная электроника
- Название:Занимательная электроника
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2015
- Город:Санкт-Петербург
- ISBN:978-5-9775-3479-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Юрий Ревич - Занимательная электроника краткое содержание
На практических примерах рассказано о том, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. От физических основ электроники, описания устройства и принципов работы различных радиоэлектронных компонентов, советов по оборудованию домашней лаборатории автор переходит к конкретным аналоговым и цифровым схемам, включая устройства на основе микроконтроллеров. Приведены элементарные сведения по метрологии и теоретическим основам электроники. Дано множество практических рекомендаций: от принципов правильной организации электропитания до получения информации о приборах и приобретении компонентов применительно к российским условиям. Третье издание дополнено сведениями о популярной платформе Arduino, с которой любому радиолюбителю становятся доступными самые современные радиоэлектронные средства.
Для широкого круга радиолюбителей
Занимательная электроника - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Чтобы проверить и при надобности уточнить значение коэффициента, измерьте напряжение батарейки мультиметром во время работы датчика, затем сравните с тем, что запишется в файл на карте (см. далее). Поделив записанное значение на измеренное, вы получите поправку, на которую необходимо умножить значение коэффициента из программы. В случае ЖК-индикатора без записи на карту, операция калибровки будет сложнее — вам придется временно подправить программу так, чтобы вывести на дисплей значение напряжения, получаемое с датчика.
* * *
Во время работы в соответствии с программой датчик основное время потребляет примерно 500 мкА, и каждые 8 секунд по WD-таймеру включается примерно на 0,8 с — снимает показания с SHT-модуля, измеряет напряжение батарейки и передает данные через Xbee-модуль. Напряжение батарейки во избежание случайных выбросов усредняется за каждые 16 показаний. Измерения показали, что во включенном состоянии потребление всего выносного датчика в среднем составляет около 15 мА. Пиковое потребление обычного Xbee-модуля в момент передачи может превышать 40 мА, но это происходит лишь в течение нескольких миллисекунд, и мы этими выбросами можем пренебречь в своих расчетах. Итого среднее потребление датчика составит приблизительно 2 мА — в соответствии с данными приложения 2 АА-батареек должно хватить примерно на два месяца непрерывной работы.
Заметим, что если бы мы писали программу на ассемблере, то могли бы уменьшить время активного состояния в несколько десятков раз, и батарейки работали бы гораздо дольше.
Ресурс батареек можно увеличить, если задать снятие показаний и их передачу не каждое пробуждение по WD-таймеру, а, например, каждое седьмое (т. е. примерно раз в минуту), но отладка такой медленной программы резко усложнится.
У нас уже все готово для того, чтобы представить версию метеостанции без записи на SD-карту. Реализацию этой версии мы оформим в виде варианта с ЖК-дисплеем MT-12864J, рассмотренным в главе 21 . Для подключения SPI-интерфейса карты вместе с дисплеем у нас все равно не хватит выводов, так что запись на карту мы реализуем отдельно.
Схема метеостанции в таком варианте представлена на рис. 22.5.

Рис. 22.5. Схема метеостанции с ЖК-дисплеем MT-12864J
Подключение датчиков и часов ничем не отличается от рассмотренного ранее, а подключение ЖК-дисплея и обращение с ним описано в главе 21 . Полную программу для этого случая можно скачать с сайта автора по ссылке http://revich.lib.ru/AVR/Meteo_LCD.zip. Внешний вид дисплея при работе этой программы показан на рис. 22.6.

Рис. 22.6. Отображение результатов работы метеостанции на ЖК-дисплее
Если внешний датчик будет недоступен (отключен, пропадет связь, закончатся батарейки), то в верхней строке после слов «На улице» будут отображаться прочерки. Если передаваемая устройством величина напряжения батарейки станет меньше порога (установленного нами в 3,3 В), то строка с данными начнет мигать. После включения питания внешнего датчика в течение первых 16 переданных показаний вместо значения напряжения батарейки станут передаваться одни нули, соответственно, дисплей главного модуля также будет миганием напоминать, что батареи в датчике якобы разряжены. Однако примерно через 2 минуты начнет передаваться измеренное среднее значение, и все должно встать на свои места.
* * *
Подробности
Величину порога, возможно, придется подкорректировать по результатам испытаний. Arduino Mini фактически ничего, кроме контроллера, не содержит, и она должна вообще «тянуть» вплоть до полного истощения батареек (согласно документации, у ATmega328 нижний предел питания 1,8 В [52] Учтите, что сами по себе платы Arduino при таком напряжении питания, вероятно, вполне работоспособны, а вот последовательный порт вкупе с USB-адаптером, как и другие внешние модули, — едва ли. Так что без тщательного анализа всех компонентов схемы лучше применять питание в рекомендуемых пределах от 4,5 до 5 В.
). У сенсора SHT1x нижний порог повыше (2,4 В), но это тоже далеко за пределами того, что дадут три даже истощенных элемента. То есть, нас будет лимитировать Xbee-модуль, который, согласно документации фирмы Digi, функционирует до 2,1 В. Из этих соображений и выбран порог в 1,1 В на элемент: 2,2 В на модуль или 3,3 В на все питание. В реальности это требует тщательной проверки, причем с реальными батарейками, а не в искусственно созданных условиях. Что же касается дальности работы выносного датчика, то Xbee-модули проявили себя наилучшим образом — в процессе испытаний данные уверенно принимались через три гипсолитовых межкомнатных перегородки толщиной 20 см каждая (уровень сигнала Wi-Fi в тех же условиях падает примерно на 70–80 дБ, что снижает скорость передачи до почти полной неработоспособности канала). Впрочем, если вас дальность работы не удовлетворит, то та же фирма Digi выпускает намного более мощный Xbee Pro.
Наличие библиотеки для работы с SD-картой— один из самых ярких примеров преимуществ Arduino. Можно только представить себе, сколько трудов стоило бы написание на ассемблере кода доступа к флэш-карте, отформатированной в системе FAT32. Не невозможная задача, конечно, но весьма трудновыполнимая, особенно для любителя, да и вряд ли кто-нибудь когда-нибудь пытался выполнить ее на ассемблере. В моей книжке [21] есть пример кода записи/чтения применительно к картам типа ММС — «младшему брату» карт Secure Digital. Ни о каких именах файлов, разумеется, там и речи не идет — данные пишутся просто в ячейки памяти карты, и считаны могут быть только таким же способом, через контроллер. А здесь такие операции, как создание, удаление файла или проверка его существования, стандартные для «больших» компьютеров, выполняются не сложнее, чем в Windows. С единственным ограничением — собственно форматирование карты должно быть выполнено заранее.
Обычно карты продаются уже отформатированными в нужной нам системе FAT 16 или FAT32. Однако оно может «слететь» в процессе эксплуатации или наших с вами издевательств над картой, кроме того, изредка встречаются карты, отформатированные в системе, отличной от FAT. Для того, чтобы проверить систему и при необходимости заново отформатировать карту, ее надо вставить в кардридер компьютера, подождать, пока она появится в Проводнике и через контекстное меню выбрать пункт Свойства. Там на самой первой вкладке Общиебудет показана Система, в которой отформатирована эта карта. Если она отличается от FAT 16 (просто FAT) или FAT32, то закройте окно свойств, заново вызовите контекстное меню и выберите пункт Форматировать.
Читать дальшеИнтервал:
Закладка: