Юрий Ревич - Занимательная электроника

Тут можно читать онлайн Юрий Ревич - Занимательная электроника - бесплатно ознакомительный отрывок. Жанр: sci_radio, издательство БХВ-Петербург, год 2015. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Занимательная электроника
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2015
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-3479-6
  • Рейтинг:
    2.9/5. Голосов: 921
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Юрий Ревич - Занимательная электроника краткое содержание

Занимательная электроника - описание и краткое содержание, автор Юрий Ревич, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

На практических примерах рассказано о том, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. От физических основ электроники, описания устройства и принципов работы различных радиоэлектронных компонентов, советов по оборудованию домашней лаборатории автор переходит к конкретным аналоговым и цифровым схемам, включая устройства на основе микроконтроллеров. Приведены элементарные сведения по метрологии и теоретическим основам электроники. Дано множество практических рекомендаций: от принципов правильной организации электропитания до получения информации о приборах и приобретении компонентов применительно к российским условиям. Третье издание дополнено сведениями о популярной платформе Arduino, с которой любому радиолюбителю становятся доступными самые современные радиоэлектронные средства.

Для широкого круга радиолюбителей

Занимательная электроника - читать онлайн бесплатно ознакомительный отрывок

Занимательная электроника - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Юрий Ревич
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Со значением года создатели библиотеки придумали пользователю дополнительные заморочки. В сами часы загружается лишь один байт, соответствующий двум последним цифрам года, но почему-то при обращении к функциям установки из библиотеки DS1307.h нужно загружать двухбайтовое число, представляющее год полностью. Функции Windows, которые применяются в нашей Delphi-программе (см. далее), тоже выдают год целиком. Но чтобы не возиться с передачей двухбайтового числа через порт, мы в компьютерной программе вычитаем из значения года число 2000, затем в программе Clock_set.ino снова его прибавляем, а в библиотечных функциях (см. в конце файла DS1307.cpp из библиотеки RTC) оно опять вычитается, как и требуют часы. Глупость, конечно, но править библиотеку по столь незначительному поводу мы не станем. По окончанию установки часов контроллер выдает в «верхнюю» программу строку «Ok».

По приходу команды «R» (десятичный код 82) контроллер считывает часы и выдает их «наружу», причем день недели выдается английским сокращением, как в примере из библиотеки. Впоследствии мы воспользуемся этим разделением по командам для приема данных через последовательный порт из другого источника.

В качестве составной части скетч Clock_set.ino вошел в полную программу метеостанции, но может использоваться и как отдельная тестовая программа.

Для облегчения задачи установки часов я написал утилиту на Delphi, которая взаимодействует с программой Clock_set.ino с помощью всего двух кнопок (точно так же он работает и с полной программой метеостанции). Эту утилиту под названием MeteoSet можно найти в том же архиве, что и скетч Clock_set.ino . В архиве, кроме собственно программы (файл setmeteo.exe), находится папка с Delphi-проектом, который читатель волен использовать по собственному усмотрению. Проект создан в версии Delphi 7, но после преобразования будет компилироваться и в любой более поздней версии, изменения вносить не потребуется.

Предварительно соедините компьютер со станцией USB-кабелем, загрузите в прибор скетч Clock_set.ino и установите в запущенной на компьютере программе setmeteo.exe соответствующий порт (предусмотрены номера от СОМ1 до СОМ8). После этого можно прочесть показания часов из станции (кнопка Read Time from Station), сравнить их с текущим временем (показывается внизу окна программы) и обновить через нажатие кнопки Set current Time. Перед проведением этой операции целесообразно принудительно обновить время в самом компьютере через пункт Настройка даты и времени контекстного меню области уведомлений (хотя Windows делает это автоматически по расписанию, но не каждый день, и часы могут «уйти»).

Температура, влажность и давление

Выбранные нами Arduino-модули для измерения температуры, влажности и атмосферного давления также применяют связь по двухпроводному интерфейсу I 2С. При этом библиотека для Barometer Sensor на основе чипа ВМР085 [46] См. http://www.seeedstudio.com/wiki/Grove_-_Barometer_Sensor . ориентирована на тот же самый аппаратный интерфейс I 2С, реализованный через стандартную библиотеку Wire.h, что и часы DS-13G7. Потому на схеме рис. 22.1 Barometer Sensor и подключен к тем же самым выводам А4 и А5. Микросхема ВМР085 производства Bosh устроена так, что перед чтением показаний давления следует обязательно прочесть температуру (см. пример по ссылке в сноске 3). Именно эту температуру мы в дальнейшем будем демонстрировать в качестве «внутренней» на дисплее главного модуля нашей станции — хотя нет никаких проблем в том, чтобы выводить и значение, получаемое из модуля SHT1.

Что же касается атмосферного давления, то модуль ВМР085 выдает его, как водится, в паскалях в виде действительного числа (т. е. типа float ). В программе придется ввести коэффициент пересчета для его представления в привычных миллиметрах ртутного столба, притом в виде целого числа (указывать десятичные доли атмосферного давления не имеет смысла). Вот тут и скажутся все преимущества высокоуровневого языка Arduino — этот коэффициент имеет величину 0,0075 (750 мм рт. ст. — это 1000 гПа с высокой точностью). Для умножения на такую величину в ассемблерной программе придется сначала преобразовывать ее в целое число, применять довольно громоздкие процедуры перемножения многобайтовых чисел, потом приводить результат к нужному виду (см. главу 20 ), а у нас это сведется к одной строке в программе:

mmHg = int(pressure*0.0075)+5;

Здесь мы применяем явное преобразование типов — результат умножения переменной pressure типа float на дробный коэффициент мы сразу приводим к целому виду типа int . За такую роскошь мы, конечно, расплачиваемся дополнительными килобайтами кода, но в данном случае оно того стоит.

* * *

Подробности

А зачем здесь к полученному значению добавляется еще и число 5? Это поправочный коэффициент, который вводится индивидуально из следующих соображений. В главе 20 мы упоминали, что для небольших высот над уровнем моря при изменении высоты на каждые 10–12 м давление меняется примерно на 1 мм рт. ст. В пределах такого города, как Москва, показания могут меняться в зависимости от местоположения примерно на 10 миллиметров. Мы же хотим, чтобы станция показывала величины, близкие к тем, что передаются Гидрометцентром, — иначе, проглядев прогноз погоды, ее показания придется все время пересчитывать в уме. Так что коэффициент 5 — это экспериментально вычисленная поправка в моем случае. Будьте готовы, что вам ее придется пересчитать, сравнивая показания с теми, что публикуются для вашего населенного пункта каждые три часа в интернет-службах погоды. Если же вы хотите, чтобы станция показывала реальное давление без всяких поправок, то просто вычеркнуть этот коэффициент из программы будет недостаточно — придется датчик дополнительно калибровать. А это дело непростое — не каждый физический институт имеет средства для поверки датчиков атмосферного давления, потому и проще подогнать его показания под Гидрометцентр.

* * *

В библиотеке для барометра — файле Barometer.cpp (папка Barometer_sensor ) — необходимо закомментировать забытые разработчиками тестовые строки 28 и 40: Serial.print ("Teinperaturet: ") и Serial.print ("Temperaturet2: ") . В противном случае у вас собьется прием данных от Xbee-модуля и все время на индикаторных панелях будет возникать лишний мусор.

В отличие от барометрического, библиотека для модуля измерения температуры и влажности SHT1x [47] См. https://github.com/practicalarduino/SHT1x . применяет не аппаратный интерфейс 1 2С, а его программную реализацию (подробнее о том, как это делается, рассказано в моей книге [21]). Модуль подключается к любым цифровым выводам — на схеме рис. 22.1 в этом качестве выступают выводы А2 и A3 (что соответствует цифровым выводам 16 и 17 ). В программе в секции определений их надо указать:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Юрий Ревич читать все книги автора по порядку

Юрий Ревич - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Занимательная электроника отзывы


Отзывы читателей о книге Занимательная электроника, автор: Юрий Ревич. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x