Энергосбережение..

Тема в разделе "Arduino & Shields", создана пользователем Proteus, 13 авг 2014.

  1. Unixon

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

    В компактном выводном исполнении не так много хороших транзисторов. Есть смысл обратить внимание на полевики в корпусах IPAK - они по размеру ближе к TO-126 (как, например, отечественные КТ-814, КТ-972), это что-то среднее между TO-220 и SMD-шным DPAK. В мелком TO-92 мощных полевиков нет.
     
  2. Proteus

    Proteus Guest

    Сначала 3П339А-2 хотел. Но одну две штуки купить почему-то очень затруднительно оказалось. Проще иностранные заказывать..
     
  3. Proteus

    Proteus Guest

    Резюмирую.. снижать частоту кристалла, никакого смысла нет...
    А красивый код я себе всё таки сочинил. Не знаю какой ногой и кто пишет пример, который обычно везде валяется...

    Код (Text):
    #include <avr/sleep.h>
    #include <avr/wdt.h>

    void setup()
    {
      pinMode(13,OUTPUT);
      set_sleep_mode(SLEEP_MODE_PWR_DOWN);
      wdt_enable(WDTO_8S);
      WDTCSR = 1 << WDIE;
    }

    void loop()
    {
      static int led=0;
      led=!led;
      digitalWrite(13,led);
      sleep_mode();
    }



    ISR(WDT_vect)
    {}
     
    • обработчик прерывания задаётся обязательно, даже пустой, иначе не работает
    • WDTO_8S - 8 сек. максимальное время которое можно задать, если надо больший интервал, то ставим в программу счётчик, с тем чтобы выполнять действия не при каждом вызове loop
    • если нужен Serial , то перед каждым засыпанием делаем Serial.flush()
    • еденички на пинах перед засыпанием не обнуляю, если энергия дорогая, тоже не забываем обнулять
    Вот пример с большим интервалом срабатывания:
    Код (Text):
    void loop()
    {
      static int count=0;
      if(!count++) {
        Serial.println("hello");
        Serial.flush();
      }
      count&=15;
      sleep_mode();
    }
     
    Последнее редактирование модератором: 3 сен 2014
  4. Arcanzas

    Arcanzas Нуб

    Сорри если повторяюсь, наверняка спрашивали уже - но я не смог найти...

    Как погасить диод на Arduino Pro Mini ?
     
  5. Proteus

    Proteus Guest

    Никак.. кусачками его отломай. Или отпаяй, но он всё равно развалиться от нагрева..
     
  6. Arcanzas

    Arcanzas Нуб

    Спасибо, реально экономней становиться гаджет?
     
  7. Proteus

    Proteus Guest

    Этот диод больше самого гаджета потребляет. А если в спячку его вводить, то вообще всё здорово
     
  8. Arcanzas

    Arcanzas Нуб

    Есть проект на MiniPro 3.3V c питанием от аккумулятора
    Подскажите, вот такую зарядку
    можно напрямую к выводам MiniPro присоединить, чтобы не отключать аккумулятор на время зарядки?
     
  9. funyfizik

    funyfizik Нерд

    а какое напряжение можно дать ардуино уно ? писал кто то что дал 12 В на вход и что то там затрещало..... Какой ток можно? Какое напряжение можно?
     
  10. geher

    geher Гуру

    Я могу ошибаться, но оптимальное, похоже, 7,5 В на VIn или на специальный разъем питания.
    Дело в том, что, с одной стороны, в силу особенностей регулятора, понижающего входное напряжение до используемых уной 5В, чем больше входящее напряжение, тем выше потери (и больше греется регулятор, особенно если собранная схема потребляет большой ток от ардуины). С другой стороны, снижение меньше 7В приведет к тому, что регулятор не сможет выдать 5 В, поскольку у него есть какая-то минимальная разница между входным и выходным напряжением, а потому ардуина не получит необходимого напряжения питания в 5В и может работать нестабильно.

    Впрочем, от 12 В вроде ничего не должно было случиться, разве что где-то случайное КЗ (например, винтик, валяющийся на плате), подключение означенных 12 В "не туда" или неисправность. Все-таки у большинства ардуин предельным значением напряжения питания является 20 В.

    Еще можно подать 5 В на USB, но тогда больше ограничение по току, потребляемому ардуиной и всем, питающимся от нее, поскольку, если не ошибаюсь, сам по себе этот вход для питания в большинстве ардуин и совместимых плат ограничен 500 мА.
    Еще один вариант - 5В непосредственно на контакт выхода 5В, причем одни пишут, что это нормально, но другие возражают, что регулятору может "поплохеть" от напряжения "не с той стороны".
     
  11. AlexVS

    AlexVS Гик

    Попробовал тут поиграться со спящим режимом для Pro Mini 3,3V.
    Почитав статью на хабре про watchdog залил предложенный тестовый скетч в Ардуинку и убедился, что в моем экземпляре watchdog не поддерживается загрузчиком. Поскольку программатора под рукой нет, а затестить режим sleep() шибко хотелось, я нашел в инете библиотеку LowPower Library и используя ее, на свой страх и риск, все же набросал тестовый скетч. Дополнительно подключил радиомодуль nRF24L01+, запитав его с цифрового пина Ардуины.
    Залил скетч и с радостью обнаружил, что все работает так как надо: После запуска, включается питание nFR, посылается запрос в домашнюю сетку (метеосенсор, ретранслятор, сервер, дисплейный модуль) оттуда получаю текущее время, после чего отключаю радиомодуль и отправляю Ардуину в спячку на 16 сек. После пробуждения, сново включаю питание радиомодуля и дальше все аналогично.
    Подключив мультиметр замерил ток, получилось в режиме сна 0,15 мА, в рабочем режиме, при обмене пакетами - 19,5мА.
    PS светодиод на ардуинке естественно отпаял.