Всем привет! для экономии энергии пытаюсь подавать питание на SD модуль от вывода Ардуино примерно раз в минуту перед записью данных и отключать после записи. поставил задержку по 20мс, но видимо мало. Не пойму или задержки надо еще больше ставить или вообще надо инициализировать заново или так вообще нельзя работать с этим модулем. Подскажите кто сталкивался с таким.
Модуль часов изначально спроектирован с учетом возможного пропадания внешнего напряжения. Что мешает добавить к строчке включения еще одну строку инициализации?
Микросхема часов умеет только выполнять простейшие команды, для которых не нужна никакая инициализация. А карта SD умеет вести обмен данными в различных режимах и вообще по сложности часам до нее далеко, поэтому после ее включения нужно всегда ее инициализировать - настроить на работу должным образом. А если вы хотите сэкономить время и потребление, держите контроллер в спящем режиме и включайте его только для выполнения нужных действий.
Именно так и делаю, контроллер спит все время и баклуши не бьет ). И при постоянном питании все работало, сейчас же при попытке вторичной инициализации возвращает ошибку. Может надо по аналогии с инициализацией как-то убивать этот объект в конце цикла, не нашел среди методов. Библиотеку использую стандартную из поставки Ардуино IDE 1.6.7.
Оказалось одна проблема была в том что модули (а их 2 - DS3231 и SD модуль) надо питать от разных выводов, одного на два модуля не хватает. А вторая - надо просто игнорировать ошибку, которую возвращает метод SD.begin при повторных вызовах. Реально дальше запись на карту идет нормально.