Помогите разобраться со сном ардуинки.

b707
Offline
Зарегистрирован: 26.05.2017

xDriver пишет:

потверждаю, без часов все работает ! (2 код)

ну теперь остается вляпаться в Гувера и попробовать первый код... раз уж все равно макет собрал

SVD
Offline
Зарегистрирован: 05.04.2018

Ну у меня тусклая, не подкручивал. Была 7.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

sadman41 пишет:

И подсветка 7мА?

минуточку....

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

Подкручивается контраст, а не подсветка. Тусклое и вяло меняющееся изображение на такого типа дисплеях как раз и есть признак проблем с питанием.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

контраст на MAX

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Плата с большой микросхемой еще маломощная по части питания с выводов. Китай получше будет.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

ну ввязался :)

че за 

#include "LowPower.h"

а то матерится на

exit status 1
'RTCDateTime' does not name a type

 

SVD
Offline
Зарегистрирован: 05.04.2018

В любом случае меньше 40 mA.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

похоже у меня DS3231.h старый

ой полхоже давно я этой хренью не занимался

SVD
Offline
Зарегистрирован: 05.04.2018

xDriver пишет:

ну ввязался :)

че за 

#include "LowPower.h"

а то матерится на

exit status 1
'RTCDateTime' does not name a type

 

https://1drv.ms/f/s!Ai-6GhJNEDRorzuFnuzSAsyeiC8F

Вот.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

ну до кучи кидай и DS3231 -)))))

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

Тем не менее - голосую за проседание напряжения на МК. 

b707
Offline
Зарегистрирован: 26.05.2017

А в первом коде есть интересный кусочек:

void sleep () {
  attachInterrupt(0, wakeUp, LOW);
  LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  detachInterrupt(0);
}

Он особенно интересен, если учесть что функция wakeUp - обработчик прерывания - пустая. Что-то мне кажется, что результатом этого должно стать состояние SLEEP_FOREVER .... foreever, huh?

SVD
Offline
Зарегистрирован: 05.04.2018

xDriver пишет:

ну до кучи кидай и DS3231 -)))))

Туда же кинул

SVD
Offline
Зарегистрирован: 05.04.2018

b707 пишет:

А в первом коде есть интересный кусочек:

void sleep () {
  attachInterrupt(0, wakeUp, LOW);
  LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  detachInterrupt(0);
}

Он особенно интересен, если учесть что функция wakeUp - обработчик прерывания - пустая. Что-то мне кажется, что результатом этого должно стать состояние SLEEP_FOREVER .... foreever, huh?

Код четко работает, пока питание дисплея подключено к постоянным 5 В, как только его подключаешь на цифровой пин все виснет. А просто дисплей с цифрового пина работает нормально. 

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

sadman41 пишет:
Тем не менее - голосую за проседание напряжения на МК. 

угу, в момент зарядки конденсаторов платы дисплея

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

скомпилил, ok

ща дайте покурить, надо макетку еще найти ....

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

ну вообщем работает, я не знаю что там в логике программы но экран работает, монитор порта тоже цифры бегут

видео ща скину

SVD
Offline
Зарегистрирован: 05.04.2018

xDriver пишет:

ну вообщем работает, я не знаю что там в логике программы но экран работает, монитор порта тоже цифры бегут

видео ща скину


Питание дисплея подключено к цифровом пину?

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

можно попробовать + дисплея на +5, а включать минус дисплея  по пину нулем.

при отключении все пины, включая и2с, выводить или в 1 или конфиг, как входы.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

SVD пишет:
xDriver пишет:

ну вообщем работает, я не знаю что там в логике программы но экран работает, монитор порта тоже цифры бегут

видео ща скину

Питание дисплея подключено к цифровом пину?

да

https://youtu.be/KdcIFxEcvkM

SVD
Offline
Зарегистрирован: 05.04.2018

Что-то не правильно. Она должна после 10 секунд засыпать и просыпаться через 2 минуты. Отсчитывать 10 секунд и снова засыпать. А на видео она не засыпает.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

подлючено все через USB тестер, V=4.77, A=0.08

SVD
Offline
Зарегистрирован: 05.04.2018

Sqw часов ко 2 пину не подключено. У Вас. Часы должны будить ардуинку.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

SVD пишет:
Что-то не правильно. Она должна после 10 секунд засыпать и просыпаться через 2 минуты. Отсчитывать 10 секунд и снова засыпать. А на видео она не засыпает.

засыпать...

это типа тушить экран ?

не вижу 

digitalWrite(PIN, LOW);

 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

SVD пишет:
Sqw часов ко 2 пину не подключено. У Вас. Часы должны будить ардуинку.

о да, ща сделаем...

SVD
Offline
Зарегистрирован: 05.04.2018
[code]
#include "LowPower.h"
#include <Wire.h>
#include <DS3231.h>
#include "GyverTimer.h"
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3f, 16, 2);
GTimer_ms myTimer1(1000);
GTimer_ms myTimer2(1000);

#define PIN 4

const int wakeUpPin = 2;
int count = 0;

int year;
int month;
int day;
int hour;
int min;
unsigned long year_min;
unsigned long month_min;
unsigned long day_min;
unsigned long hour_min;
unsigned long min_min;
unsigned long summ_min;
int summ_min_of;
int year_of = 2019;
int month_of = 3;
int day_of = 3;
int hour_of = 12;
int min_of = 0;
int loga;

DS3231 clock;
RTCDateTime dt;

void wakeUp()
{
}

void setup()
{
  pinMode(wakeUpPin, INPUT);
  pinMode(PIN, OUTPUT);
  Serial.begin (9600);
  clock.begin();
  //  clock.setDateTime(__DATE__, __TIME__);
  clock.enableOutput(false);
  clock.armAlarm1(false);
  clock.armAlarm2(false);
  clock.clearAlarm1();
  clock.clearAlarm2();
}

void loop()
{
  setSleepTimer(2);
  timer ();
  digitalWrite(PIN, HIGH);
  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print(summ_min);
  if (myTimer1.isReady()) {
    count++;
    Serial.println(count);
  }
  if (count >= 10) {
    Serial.println ("Timer: Entering Sleep mode");
    Serial.println(summ_min);
    digitalWrite(PIN, LOW);    
    delay(100);
    count = 0;
    sleep ();
  }
}

void timer () {
  dt = clock.getDateTime();
  year = dt.year;
  month = dt.month;
  day = dt.day;
  hour = dt.hour;
  min = dt.minute;
  year_min = (year - year_of) * 525600;
  month_min = (month - month_of) * 43200;
  day_min = (day - day_of) * 1440;
  hour_min = (hour - hour_of) * 60;
  min_min = min - min_of;
  summ_min = year_min + month_min + day_min + hour_min + min_min;
}

void sleep () {
  attachInterrupt(0, wakeUp, LOW);
  LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  detachInterrupt(0);
}

void setSleepTimer(int mins) {
  uint8_t hours = mins / 60;
  uint8_t mins_left = mins - hours * 60;
  dt = clock.getDateTime();
  uint8_t hnow = dt.hour;
  uint8_t mnow = dt.minute;
  uint8_t sec = dt.second;
  mnow += mins_left;
  if (mnow >= 60) {
    mnow -= 60;
    hnow += 1;
  }
  hnow += hours;
  if (hnow > 23) {
    hnow -= 24;
  }
  clock.setAlarm1(0, hnow, mnow, sec, DS3231_MATCH_H_M_S);
}

[/code]

 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

хз, ну вроде шевелиться -)))

 

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

SVD
Offline
Зарегистрирован: 05.04.2018

xDriver пишет:

хз, ну вроде шевелиться -)))

 

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


Что все работает? И сон? И дисплей от цифрового пина? И пробуждение от часов? И счётчик?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

дисплей горит и не гаснет, циферки на нем идет 620, 622, 624 ...

лог

Start
1
2
3
4
5
6
7
8
9
10
Timer: Entering Sleep mode
620
1
2
3
4
5
6
7
8
9
10
Timer: Entering Sleep mode
622
1
2
3
4
5
6
7
8
9
10
Timer: Entering Sleep mode
624
1
2
3
4
5
6
7
8
9
10
Timer: Entering Sleep mode
627
1
2
3

 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

SVD
Offline
Зарегистрирован: 05.04.2018

У меня так работает когда питание дисплея подключаю к постоянному питанию. А попробуйте пожалуйста последний скетч с LOW.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

походу спит, потребление по USB падает на 2 мин до 0.06 потом опять 0.08

ща зальем...

SVD
Offline
Зарегистрирован: 05.04.2018

Я тогда просто не знаю что за фигня у меня. Завтра куплю другую унку, буду пробывать на ней... Ничего не понимаю. Спасибо большое за такой отклик.

AlexanderNO
Offline
Зарегистрирован: 08.11.2018
А если вместо:
digitalWrite(PIN, HIGH);
digitalWrite(PIN, LOW);
lcd.setBacklight(true);
lcd.setBacklight(false);

 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

работает !

шош ты мля пинто на 4 поменял :))))

https://youtu.be/8FKEz_VJJS4

SVD
Offline
Зарегистрирован: 05.04.2018

xDriver пишет:

работает !

шош ты мля пинто на 4 поменял :))))

https://youtu.be/8FKEz_VJJS4


Блин. Спасибо большое. Походу что-то с ардуинкой моей. Спасибо. Извиняюсь что так напряг)

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

SVD пишет:
xDriver пишет:

работает !

шош ты мля пинто на 4 поменял :))))

https://youtu.be/8FKEz_VJJS4

Блин. Спасибо большое. Походу что-то с ардуинкой моей. Спасибо. Извиняюсь что так напряг)

да все нормально, все одно занятся было не чем.