Читаем Занимательная электроника полностью

Недостаток большинства подобных стандартных Arduino-модулей с разъемом для SD-карты состоит в том, что они в качестве вывода «выбор кристалла» задействуют вывод номер 4. Это сделано по понятным причинам — чтобы освободить стандартный вывод SS порта SPI (вывод 10) для использования этого интерфейса в каких-то иных целях. Однако такой прием приводит к ограничениям на применение вывода 10 — он должен быть установлен только «на выход», иначе стандартные функции SPI контроллера работать не будут. Потому вместо одного дополнительного вывода карта фактически занимает два. К счастью, в качестве выходного мы можем применять порт 10 по своему усмотрению — в нашей схеме он служит одной из линий данных.


Работа метеостанции с функциями записи на SD-карту


Полную программу метеостанции с OLED-индикаторами, построенной согласно схеме на рис. 22.1 с добавленными функциями записи на SD-карту, можно скачать с сайта автора по ссылке http://revichJib.ru/AVR/Meteo_OLED.zip. Внешний вид индикационной панели с отображением данных показан на рис. 22.7 далее, в разд. «Конструкция». Согласно этой программе, при каждом включении питания в файл data.txt будет записываться строка Arduino meteostation data. А в установленные моменты времени в него записываются данные в виде строки:

06:00 06.04.14 +21.2 26 750 +20.7 27 4.4

Здесь после значения времени идут сведения о внутренней температуре и влажности, затем давление, потом температура и влажность с выносного датчика. В конце выводится информация о напряжении батареи датчика, которая позволит осуществлять контроль за работой узла определения разрядки батареи (в случае необходимости подкорректировать порог надо знать, при каком напряжении датчик прекратил работу). Строка содержит 40 символов, так что об исчерпании пространства на карте можно не беспокоиться — самой маленькой карты объемом в гигабайт хватит примерно на 8 тысяч лет непрерывной записи. Учитывая такой объем свободного пространства, на карте удобно заодно хранить все сопутствующие программы: Arduino IDE вместе с прошивкой станции и утилиту для установки часов. В соответствии с программой, запись данных на карту будет происходить в часы, кратные трем: в 0, 3, 6, 9, 12, 15, 18 и 21 час. Согласно международным правилам, три часа составляют так называемый синоптический интервал, а моменты записи должны отсчитываться по всемирному времени UTC. В настоящее время московский регион отличается от UTC на четыре часа (т. е. всемирному времени 00:00 соответствует московское 04:00), потому для укладки в стандартный ряд синоптических наблюдений необходимо учитывать эту поправку[53]. Закомментированная строка в начале процедуры записи на карту if (clock.second = 0) служит для отладки программы — если ее восстановить (а вышележащую, наоборот, спрятать за комментарием), то запись на карту будет происходить каждую минуту.

После вставки карты следует обязательно перезагрузить станцию и проследить, чтобы после загрузки в первую очередь появилась надпись SD card Ok. Если вместо этого появляется сообщение об ошибке инициализации SD card failed, то выключить и включить питание станции необходимо еще раз. Если карта инициализировалась верно, то в файл data.txt на ней запишется строка Arduino meteostation data. Если этот файл на карте не существовал, то он будет создан заново, иначе указанная строка просто запишется в него еще раз, сигнализируя о том, что станция включалась.

Подтверждение тому, что запись действительно идет успешно, можно получить, если проследить за поведением станции в момент, соответствующий очередному сеансу записи, — не должно появиться сообщение File open failed!, которое возникает, если карта просто отсутствует в слоте. Если же карта вставлена, но инициализация прошла неудачно, то в момент записи станция «повиснет» примерно на 12 секунд — таковы особенности работы библиотеки SD.

Повторю — для успешной записи на карту карта должна быть вставлена в слот до включения питания станции. Следует взять за правило перезапускать станцию после каждого извлечения/вставки карты. Предоставляю читателю самому поэкспериментировать с модификацией программы, которая позволила бы избежать таких ограничений. Вероятно, для этого придется привлечь какую-нибудь другую библиотеку по работе с SD-картами в Arduino — особенность прилагаемой библиотеки SD в том, что если карта однажды была инициализирована, то после извлечения и последующей ее вставки при работающем контроллере от программы невозможно добиться не только сообщений об ошибках, но не получается даже принудительно инициализировать карту заново.


Конструкция


Перейти на страницу:

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки