Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что делать? Arduino

Александр Шильчиков Ученик (98), открыт 1 неделю назад
выходит ошибка
C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved20241122-14696-152agbt.wjpu\sketch_dec22a\sketch_dec22a.ino: In function 'void setup()':
C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved20241122-14696-152agbt.wjpu\sketch_dec22a\sketch_dec22a.ino:8:9: error: 'class iarduino_RTC' has no member named 'begin'
time.begin();
^~~~~

exit status 1

Compilation error: 'class iarduino_RTC' has no member named 'begin'

скетч вот:
#include "iarduino_RTC.h"
#include <GyverOLED.h>

GyverOLED<SSD1306_128x32, OLED_NO_BUFFER> oled;
iarduino_RTC time(RTC_DS1307,6,8,7); // для модуля DS1302 - RST, CLK, DAT

void setup() {
oled.init(); // инициализация
oled.clear(); // очистка
oled.setScale(1); // масштаб текста (1..4)
oled.home(); // курсор в 0,0
delay(300);
Serial.begin(9600);
time.begin();
time.settime(0, 30, 18, 12, 6, 20, 5);}

void loop() {
// если прошла 1 секунда выводим время
if (millis() % 1000 == 0) {
oled.setCursor(0, 2);
oled.println(time.gettime("d-m-Y, H:i:s, D"));
delay(1);
}
}
2 ответа
speexz Мыслитель (5953) 1 неделю назад
Ошибка возникает из-за того, что библиотека `iarduino_RTC`, которую вы используете, не содержит метод `begin`. Скорее всего, вы используете не ту версию библиотеки или API библиотеки изменилось. Вот как можно устранить проблему:

### Шаги для исправления
1. **Проверьте правильность библиотеки:**
- Убедитесь, что вы установили библиотеку `iarduino_RTC` через менеджер библиотек Arduino IDE или вручную с официального репозитория [iarduino_RTC]( https://github.com/iArduino/RTC ).
- Если библиотека устарела, попробуйте обновить её.

2. **Измените код в соответствии с API библиотеки:**
- Согласно документации, для модуля DS1307/DS1302 используется метод `beginModule()` вместо `begin()`. Попробуйте заменить строку `time.begin();` на `time.beginModule();`.

3. **Исправьте код для установки времени:**
- Проверьте метод `settime`. В некоторых версиях библиотеки используется метод `setDateTime()` для установки времени.
- Формат вызова может быть другим. Обратитесь к документации библиотеки или к примерам кода.

### Исправленный код:
 #include "iarduino_RTC.h"   
#include <GyverOLED.h>

GyverOLED<SSD1306_128x32, OLED_NO_BUFFER> oled;
iarduino_RTC time(RTC_DS1307, 6, 8, 7); // для модуля DS1307 - SDA, SCL, адрес

void setup() {
oled.init(); // инициализация
oled.clear(); // очистка
oled.setScale(1); // масштаб текста (1..4)
oled.home(); // курсор в 0,0
delay(300);
Serial.begin(9600);

if (time.beginModule()) { // Запуск модуля
time.setDateTime(2024, 12, 22, 18, 30, 0); // Установка времени: ГГГГ, ММ, ДД, ЧЧ, ММ, СС
} else {
Serial.println("Ошибка инициализации модуля RTC!");
}
}

void loop() {
// если прошла 1 секунда, выводим время
if (millis() % 1000 == 0) {
oled.setCursor(0, 2);
oled.println(time.getDateTime("d-m-Y, H:i:s, D"));
delay(1);
}
}


### Основные изменения:
1. Заменён метод `begin()` на `beginModule()`.
2. Метод `settime` заменён на `setDateTime` с соответствующим форматом.

Если проблема останется, проверьте, правильно ли подключён ваш модуль RTC (провода, пины SDA/SCL) и используйте тестовые скетчи из документации библиотеки для диагностики.
Александр ШильчиковУченик (98) 1 неделю назад
теперь ошибка
C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved20241122-8972-cc4jx5.zcen4\sketch_dec22a\sketch_dec22a.ino: In function 'void setup()':
C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved20241122-8972-cc4jx5.zcen4\sketch_dec22a\sketch_dec22a.ino:15:13: error: 'class iarduino_RTC' has no member named 'beginModule'
if (time.beginModule()) { // Запуск модуля
^~~~~~~~~~~
C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved20241122-8972-cc4jx5.zcen4\sketch_dec22a\sketch_dec22a.ino:16:12: error: 'class iarduino_RTC' has no member named 'setDateTime'; did you mean 'settime'?
Александр Шильчиков Ученик (98) Александр Шильчиков, (продолжение) time.setDateTime(2024, 12, 22, 18, 30, 0); // Установка времени: ГГГГ, ММ, ДД, ЧЧ, ММ, СС ^~~~~~~~~~~ settime C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved20241122-8972-cc4jx5.zcen4\sketch_dec22a\sketch_dec22a.ino: In function 'void loop()': C:\Users\User\AppData\Local\Temp\.arduinoIDE-unsaved20241122-8972-cc4jx5.zcen4\sketch_dec22a\sketch_dec22a.ino:26:23: error: 'class iarduino_RTC' has no member named 'getDateTime'; did you mean 'gettime'? oled.print(time.getDateTime("d-m-Y, H:i:s, D")); ^~~~~~~~~~~ gettime exit status 1 Compilation error: 'class iarduino_RTC' has no member named 'beginModule'
Лайт Ягами Искусственный Интеллект (314875) 1 неделю назад
Скачай последнюю версию модуля iarduino_RTC
Похожие вопросы