#1 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-28 09:53:16

vvr

Thanks.
Документація велика сила !!!

Я там свого часу полазив, а зараз не зрозумів...

#2 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-27 19:40:06

vvr
dimich пише:

У вас взагалі на лініях I²C є pull-up резистори?


На цих модулях годинника підтяжка є.

#3 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-27 19:38:17

vvr

Дякую всім за участь. За порадою dimich годинник пішов, поки без збоїв.
Але вирішив перестрахуватися)))
Запустив wifi (вперше з ним зіткнувся) і тепер раз на годину оновлюю час на годиннику з NTP.
У мене ESP32 WROOM 32D. Так, при підключенні wifi GPIO25 (у мене на ньому сенсорна кнопка) не хотів працювати. Пошуки в інтернеті ні до чого не привели (даташит не подужаю))). Довелося перекинути на 33.
Другий день без нарікань))))

#4 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 18:43:59

vvr
requestFrom() = 19
0h: 85
1h: 40
2h: 0
3h: 1
4h: 1
5h: 1
6h: 0
7h: 0
8h: 0
9h: 0
Ah: 0
Bh: 0
Ch: 0
Dh: 0
Eh: 28
Fh: 136
10h: 0
11h: 21
12h: 128

#5 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 18:42:08

vvr

всі 19 регістрів:


requestFrom() = 19
0h: 37
1h: 38
2h: 0
3h: 1
4h: 1
5h: 1
6h: 0
7h: 0
8h: 0
9h: 0
Ah: 0
Bh: 0
Ch: 0
Dh: 0
Eh: 28
Fh: 136
10h: 0
11h: 21
12h: 192

#6 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 18:37:51

vvr
dimich пише:
vvr пише:

На дисплей виводиться 2000+year)))


Відʼєднайте зовнішнє живлення та батарейку. На пару секунд закоротіть контакти гнізда куди вона підключається, щоб розрядити ємності. Вставте батарейку назад.


тепер час не зупиняється))))

#7 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 15:58:54

vvr
dimich пише:
vvr пише:

Теж саме - при вимкненні живлення годинник зупиняється (((((

А ви часом ніде не записали одиницю в біт EOSC?

Здампте вміст всіх регістрів та подивіться вже, що там робиться.

Я навіть не знаю, як з ними працювати, ніколи не стикався.
Нічого тада не записував

#8 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 15:56:49

vvr
dimich пише:

Цікаво, як цей код може видавати "2165 рік", коли

byte ... year;

...

Serial.print(year);

Або це не той код, або щось недоговорюєте.

На дисплей виводиться 2000+year)))

#9 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 15:20:00

vvr

Вже дивлюся у бік синхронізації часу за NTP)))

#10 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 15:13:17

vvr

static byte prevSecond = 0;

  if (millis() - prevSecond >= 1000)
  {
    getDateDs3231(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
    prevSecond = millis();
  }


Теж саме - при вимкненні живлення годинник зупиняється (((((

#11 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 15:00:05

vvr

Наразі немає підзарядки батарейки.
Батарейка нова, 3.1 вольта.

#12 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 14:58:39

vvr

Спробую раз на секунду зчитувати час.


А тепер нові фокуси - при вимкненні живлення і повторному включенні годинник показує час відключення))))

На якомусь російському форумі вчора зустрів таку проблему.
Писали про запуск та зупинку осциллятора.

#13 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 14:33:44

vvr
#include <Wire.h>

#define DS3231_I2C_ADDRESS   0x68

///////////  годинник  //////////

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

byte decToBcd(byte val)
{
  return ((val / 10 * 16) + (val % 10));
}

byte bcdToDec(byte val)
{
  return ((val / 16 * 10) + (val % 16));
}

void setDateDs3231(byte second,        // 0-59
                   byte minute,        // 0-59
                   byte hour,          // 1-23
                   byte dayOfWeek,     // 1-7
                   byte dayOfMonth,    // 1-28/29/30/31
                   byte month,         // 1-12
                   byte year)          // 0-99
{
  Wire.beginTransmission(DS3231_I2C_ADDRESS);
  Wire.write(0);
  Wire.write(decToBcd(second));
  Wire.write(decToBcd(minute));
  Wire.write(decToBcd(hour));
  Wire.write(decToBcd(dayOfWeek));
  Wire.write(decToBcd(dayOfMonth));
  Wire.write(decToBcd(month));
  Wire.write(decToBcd(year));
  Wire.endTransmission();
}

void getDateDs3231(byte *second,
                   byte *minute,
                   byte *hour,
                   byte *dayOfWeek,
                   byte *dayOfMonth,
                   byte *month,
                   byte *year)
{

  Wire.beginTransmission(DS3231_I2C_ADDRESS);
  Wire.write(0);
  Wire.endTransmission();

  Wire.requestFrom(DS3231_I2C_ADDRESS, 7);

  *second     = bcdToDec(Wire.read() & 0x7f);
  *minute     = bcdToDec(Wire.read());
  *hour       = bcdToDec(Wire.read() & 0x3f);
  *dayOfWeek  = bcdToDec(Wire.read());
  *dayOfMonth = bcdToDec(Wire.read());
  *month      = bcdToDec(Wire.read());
  *year       = bcdToDec(Wire.read());
}

void setup()
{
  Serial.begin(115200);

  Wire.begin();
}

void loop()
{
  getDateDs3231(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);

  Serial.print(year);
  Serial.print("-");
  Serial.print(hour);
  Serial.print(':');
  Serial.print(minute);
  Serial.print(':');
  Serial.println(second);
}

#14 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 14:22:19

vvr

Така поведінка тільки після переходу на esp32 (півроку як почав з нею грати)))

У ванній блок управління світлом і витяжкою та блок управління шторою на балконі працюють на дуньках вже по 8 років без нарікань.
Годинник підключений за тим же принципом, час коригується.
Ось з ESP32 щось не ладиться.

#15 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-23 10:51:18

vvr

Саме годинник ds3231.
зараз на них 2165 рік, 25 годин, 104 місяць))))

#16 Програмування Arduino » ESP32 та ds3231 » 2025-02-22 22:38:24

vvr
відповідей: 31

Давно зробив собі погодну станцію на нано, bme та датчику со2 та світлодіодної матриці. Працює 5 років чудово. Вирішив додати плюшок з рядком, що біжить, але пам'яті в нано не вистачає. Переробив на esp32. Датчики та годинник ds3231 запитані від 3.3 вольта. І тут почалися проблеми - годинник через кілька годин починає показувати не коректний час.
Типо 45 годин 87 хвилин 2189 рік.
У цьому датчики працюють нормально.
Замінив модуль годинника, поставив нову батарейку, випаяв резистор у ланцюгу підзарядки батарейки (вичитав, що з літій краще не заряджати) – жодних змін. З годинником працюю з бібліотекою WIRE, щоби була можливість коригувати час.
Чи уст які міркування, може хто стикався?

#17 Re: Проекти » Автоматизация предметного столика микроскопа » 2024-12-01 14:35:36

vvr

делал когда то такое  https://youtu.be/3pGm3lp6Lrk
ваша задача похожа.
в связи с тем, что много работы с механикой, дешево такой проект стоить не будет.

#19 Re: Апаратні питання » Чи може Arduino замінити Speedybee f 405 або ReadytoSky 1,2 GHZ » 2024-05-27 08:35:43

vvr

Не реальна ідея.
Це як замість двигуна в авто впендюрити чайник...

Разробка та випуск свого продукту в Україні буде в
рази дорожче за китайський.
Це має сенс тільки в разі унікальних розробок, які не мають
аналогів

#21 Re: Апаратні питання » Джойстик,..... дефект? » 2024-04-11 05:28:12

vvr

Звичайний джойстік з потенціометрами та кнопкою.

#23 Re: Проекти » FPV дрон » 2024-01-07 13:43:17

vvr

Якщо ви задаєте такі питання, то ви не зможете реалізувати цей проект.

Підвал форуму