питание SD модуля от вывода Ардуино

Тема в разделе "Arduino & Shields", создана пользователем mot.spb, 11 мар 2016.

  1. mot.spb

    mot.spb Нерд

    Всем привет!
    для экономии энергии пытаюсь подавать питание на SD модуль от вывода Ардуино примерно раз в минуту перед записью данных и отключать после записи. поставил задержку по 20мс, но видимо мало. Не пойму или задержки надо еще больше ставить или вообще надо инициализировать заново или так вообще нельзя работать с этим модулем. Подскажите кто сталкивался с таким.
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    После подачи питания в любом случае нужно заново инициализировать.
     
  3. mot.spb

    mot.spb Нерд

    Однако модуль часов DS3231 в этом же проекте в аналогичной ситуации работает без проблем.
     
  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    Модуль часов изначально спроектирован с учетом возможного пропадания внешнего напряжения.
    Что мешает добавить к строчке включения еще одну строку инициализации?
     
  5. mot.spb

    mot.spb Нерд

    спасибо, попробую. просто хотел сэкономить процессорное время :))
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    Он все равно 99% своего времени баклуши бьет. Пусть трудится ;)
     
    noevile нравится это.
  7. Megakoteyka

    Megakoteyka Оракул Модератор

    Микросхема часов умеет только выполнять простейшие команды, для которых не нужна никакая инициализация. А карта SD умеет вести обмен данными в различных режимах и вообще по сложности часам до нее далеко, поэтому после ее включения нужно всегда ее инициализировать - настроить на работу должным образом.
    А если вы хотите сэкономить время и потребление, держите контроллер в спящем режиме и включайте его только для выполнения нужных действий.
     
  8. mot.spb

    mot.spb Нерд

    Именно так и делаю, контроллер спит все время и баклуши не бьет :)). И при постоянном питании все работало, сейчас же при попытке вторичной инициализации возвращает ошибку. Может надо по аналогии с инициализацией как-то убивать этот объект в конце цикла, не нашел среди методов. Библиотеку использую стандартную из поставки Ардуино IDE 1.6.7.
     
  9. mot.spb

    mot.spb Нерд

    Оказалось одна проблема была в том что модули (а их 2 - DS3231 и SD модуль) надо питать от разных выводов, одного на два модуля не хватает. А вторая - надо просто игнорировать ошибку, которую возвращает метод SD.begin при повторных вызовах. Реально дальше запись на карту идет нормально.
     
    AlexVS нравится это.