Режим сна Arduino

Ivan00qq00
Ivan00qq00 аватар
Offline
Зарегистрирован: 17.02.2017

Здравствуйте, помогите разобраться с режимом сна Arduino ! Я начинающий в этом деле, в интернете на эту тему ни чего нет !

Как усыпить и разбудить Arduino ? При этом должны работать прерывания и сон должен быть по таймеру.

Такое возможно реализовать ?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016
Ivan00qq00
Ivan00qq00 аватар
Offline
Зарегистрирован: 17.02.2017

А что за аргумент в функции "powerDown();" - "SLEEP_8S" ? Таймер сна что ль ?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Да. Спать бесконечно SLEEP_FOREVER.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ivan00qq00 пишет:

в интернете на эту тему ни чего нет !

Да. неужели? В итернете этого добра почти как порнухи - на каждом заборе написано.

Изучайте самое полное руководство: https://www.gammon.com.au/power

Tony-Fox
Offline
Зарегистрирован: 24.02.2017

Хмм... а если мне нужно обновлять данные каждую минуту, по циклу гонять ардуино придётся, или есть другой выход ? Я новичок, камнями особо не кидайте

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Обновление данных займет в худшем случае десяток миллисекунд, остальное время пусть спит.
Если напрягает, что МК будет для этого просыпаться дважды в секунду - не парься, в итоге все равно получается что 90% времени он в спячке, т.е. экономия энергии.

Волшебник
Offline
Зарегистрирован: 22.12.2016

На ардуино (Уно) стоят две микросхемы, атмега328-я - основная и атмега8 (или сн340 китайский вариант). Если 328-ю спать отправить то больше чем на 50% экономии не расчитывайте, 43мА снизится до 20мА или около того. Если надо совсем мало потребление, нужна ардуина без юсб-сериал, мини кажется называется.

Волшебник
Offline
Зарегистрирован: 22.12.2016

 

Волшебник
Offline
Зарегистрирован: 22.12.2016

А, пусть тогда схема повисит, а вопрос сотру.  СН340 жрёт 30mA когда работает, а без юсб вроде 0.2мА. Пойду померяю.

 Обновлено

Кажись не врут, обычная Уно 43 мА, а СН340 23 мА - с отключеной юсб. Тогда имеет смысл в спячку отправлять китаянку.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Волшебник пишет:

Тогда имеет смысл в спячку отправлять китаянку.

Тогда имеет смысл обойтись без USB

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Для начала имеет смысл выпаять светодиод.

Потом - линейный стабилизатор.

Ivan00qq00
Ivan00qq00 аватар
Offline
Зарегистрирован: 17.02.2017

А если на ардуинку подовать сразу 5v, потребление стабилизатора должно уменьшиться. Не так ли ?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Если мы будем подавать на стабилизатор 5 В, то с него можно будет снять не более 3.5. Да и функции стабилизатора он при этом выполнять не будет.

И вообще, если Вас заботит именно уменьшение энерглпотребления, а не просто вгонять в сон ради того, чтобы вогнать, то питание должно быть в точности такое, как нужно, т.е. либо 3.3, либо 5 В. Ну, либо что-то в этом диапазоне при условии, что Ардуинке этого хватит (3.3 В для 16 МГц Ардуины может не хватить). 

И в таких условиях стабилизатор вообще не нужен, а потому подлежит выпаиванию.

Tony-Fox
Offline
Зарегистрирован: 24.02.2017

Внешние прерывания ардуинка во сне не обрабатывает, все аргументы перепробовал, не помогает ! Может есть какой-нибудь необязательный, отвечающий за внешние прерывания ?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Внешние прерывания ардуинка во сне обрабатывает только на пинах D2 и D3, вы невнимательно читали ссылку выше.

Ivan00qq00
Ivan00qq00 аватар
Offline
Зарегистрирован: 17.02.2017

Ну я к d2 и прицепил...

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Ты фильм, "Иван Васильевич меняет профессию видел? Позволь его процитировать ...

Ivan00qq00 пишет:

в интернете на эту тему ни чего нет !

"Врёшь, собака!"

Информации в сети некуда девать (в т.ч. и на этом форуме). "Ищите и обрящете".

кудрявый
Offline
Зарегистрирован: 14.12.2017

Есть ардуина с эзернет шилдом. Отправляет раз в 10 мин значение на сервер. Испытываю желание отправлять адруину в сон в перерывах.

Но тут вопрос - как поведет себя эзернет шилд после пробуждения ардуины - от не потеряется за время спячки?

Или при пробуждении каждый раз инициализировать эзернет заново ?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

кудрявый пишет:

Но тут вопрос - как поведет себя эзернет шилд после пробуждения ардуины - от не потеряется за время спячки?

Потеряться не может, спереть могут. Шилд жрет столько, что нет особого смысла в погружении МК в сон.

Georgiy2004
Offline
Зарегистрирован: 22.06.2019

Подскажите пожалуйста как отправить ардуино в сон через 10 мин после подачи на неё питания?

bwn
Offline
Зарегистрирован: 25.08.2014

Georgiy2004 пишет:

Подскажите пожалуйста как отправить ардуино в сон через 10 мин после подачи на неё питания?

Читайте "Блинк без делей" и погружайте.

Georgiy2004
Offline
Зарегистрирован: 22.06.2019

Можете написать пример скетча ухода в сон или пример скинуть, пожалуйста

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014
MacSim
Offline
Зарегистрирован: 28.11.2012

Смысл вгонять в сон поясните...а то мне кажеться что вам это и не надо, может когда будете объяснять поймете почему оно вам не надо...

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Georgiy2004 пишет:
Можете написать пример скетча ухода в сон

Могу.

#include <avr/sleep.h>
#include <avr/power.h>

volatile bool onflag=false,      // going on state
              onflagdone=false;  // went in on state
int           seconds=0;
byte          old_adcsr=0;       // prev ADC stat register contents

unsigned long    last_on=millis();

void waking(void){               // ISR
  onflag=true;
}

void sleeping(void){
  byte i;
  onflag=false;
  onflagdone=false;
  old_adcsr=ADCSRA;
  ADCSRA=0;
  seconds=0;
  for(i=0;i<20;i++){             // hi-z state
    digitalWrite(i,0);
    pinMode(i,INPUT);
  }
  delay(100);
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  sleep_mode();
  sleep_disable(); 
  ADCSRA=old_adcsr;
}

void setup(){
  pinMode(3,INPUT_PULLUP);       // on btn
  attachInterrupt(1,waking,LOW);
  sleeping();
}

void loop(){
  if(onflag){
    if(millis()-last_on>=1000){
      seconds++;
      last_on=millis();
    }
    if(!onflagdone){
      delay(2000);
      if(digitalRead(3)==LOW) onflagdone=true;
      else sleeping();
    }else{

      // working here

      if((digitalRead(3)==LOW && seconds>=5)||(seconds>=600)){   // switch off if onswitch pressed again,
        digitalWrite(5,LOW);                                     // or if on for more than 600 sec
        delay(500);
        sleeping();
      }
    }
  }
}

Georgiy2004 пишет:
пожалуйста

Платить сюда: https://money.yandex.ru/to/410011919696337

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Заплатил?

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Ворота пишет:
Заплатил?

Посмотрим. Я не знаю, кто или что их так приучило, что можно "памагити, сами мы не местные" и всё чпок и сразу будет. Как по волшебству, блеать. Хз, поколение такое. А так может осознает что "памагите" и всё готовенькое денег стоит.

Кстати, на форумах типа античата, фрикера, кардерпланеты и т. п. околокриминальных площадок, любой продавец, вендор, заказчик и вообще кто-то кому надо что-то, за деньги, работает через гаранта (участника форума со 100% репой, который выступает промежуточным пунктом между контрагентами). За процент. Кто не согласен - рискуют, но если кого-то кидают, представить доказательства достаточно просто. И любой кидала в профиле получает зачёркнутый ник, и напротив надпись - "deer". То бишь по-русски - олень.

Навсегда.

Полезный опыт, так сказать. Перенять не лишне. Людей, которые бывают здесь регулярно и имеют авторитет, тот же ЕвгенийП, то есть подходящих на должность гаранта, больше трёх человек тут точно найдётся. Бонусом и копейка от сделок между форумянами.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП на это не подпишется! :-)

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Провальная идея. Заказал, кинул, зарегистрировался под новым ником, заказал, кинул... Да и тут редко можно сходу трудозатраты определить - корректировка случается. Вот "гаранту" придётся херней страдать вместо занятием хобби.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

ua6em пишет:

ЕвгенийП на это не подпишется! :-)

Само собой. Это уже не хобби, а работа и обязательства.