3 / 3 / 0
Регистрация: 03.10.2018
Сообщений: 249
1

Часы на RTC_DS1302

10.06.2024, 19:51. Показов 413. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,  11,  5,  4,  3,  2);
#include "iarduino_RTC.h"
const int pinRST = 8;
const int pinCLK = 6;
const int pinDAT = 7;
iarduino_RTC time(RTC_DS1302,pinRST,pinCLK,pinDAT);  // для модуля DS1302 - RST, CLK, DAT
 
void setup()  {
lcd.begin(16, 2);
time.begin();   //    ???????????
}
 
void loop() {
//..........
}
error: 'class iarduino_RTC' has no member named 'begin'
нет такой функции в библиотеке?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2024, 19:51
Ответы с готовыми решениями:

нужно сделать аналоговые часы с тремя циферблатами. на разных часы, минуты, секунды.
нужно сделать аналоговые часы с тремя циферблатами. на разных часы, минуты, секунды. немного не...

Флеш часы: часы, показывающие указанное время
Привет всем!!!Помогите пожалуйста!!!Как создать флеш часы чтобы они показывали разное указанное...

Сколько минут будут показывать цифровые часы в момент, когда стрелочные часы вновь покажут верное время?
Домашние часы со стрелками и цифровые часы синхронизованно показывают верное время. Ровно в полночь...

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента ...

10
Модератор
988 / 572 / 274
Регистрация: 10.11.2019
Сообщений: 1,213
10.06.2024, 20:03 2
В каталоге библиотеки должен быть файл readme.md и примеры программ в подкаталоге examples.
0
3 / 3 / 0
Регистрация: 03.10.2018
Сообщений: 249
10.06.2024, 20:20  [ТС] 3
Цитата Сообщение от qbfan Посмотреть сообщение
В каталоге библиотеки должен быть файл readme.md и примеры программ в подкаталоге examples.

Из файла readme.md:
**Подключаем библиотеку.**
#include <iarduino_RTC.h> // Подключаем библиотеку.
**Создаём объект.**
iarduino_RTC ОБЪЕКТ ( НАЗВАНИЕ [, ВЫВОД_RST [, ВЫВОД_CLK [, ВЫВОД_DAT ]]] ); // Создаём объект.
**Инициализация работы RTC модуля.**
Функция begin(); // Инициализация работы RTC модуля.
**Установка времени.**
Функция settime( СЕК [, МИН [, ЧАС [, ДЕНЬ [, МЕС [, ГОД [, ДН ]]]]]] ); // Установка времени.

и в примерах begin(); есть... из разных источников скачивал эту библиотеку, и всегда одно и то же.... settime и другие функции нет ошибки
0
Модератор
Эксперт по электронике
8924 / 6691 / 920
Регистрация: 14.02.2011
Сообщений: 23,582
11.06.2024, 09:06 4
Цитата Сообщение от Belju Посмотреть сообщение
iarduino_RTC time
имя переменой(объекта) поменяй,
time служебное слова
например так
C++
1
iarduino_RTC Mytime(...
0
3 / 3 / 0
Регистрация: 03.10.2018
Сообщений: 249
11.06.2024, 14:36  [ТС] 5
Цитата Сообщение от ValeryS Посмотреть сообщение
имя переменой(объекта) поменяй,
timeслужебное слова
тоже так подумал, не помогло
C++
1
2
3
arduino_RTC myrtc(RTC_DS1302,pinRST,pinCLK,pinDAT);
.......
myrtc.begin();  //  error: 'class iarduino_RTC' has no member named 'begin'
0
549 / 241 / 33
Регистрация: 22.09.2023
Сообщений: 678
11.06.2024, 15:22 6
Лучший ответ Сообщение было отмечено Belju как решение

Решение

Вы же подключаете файл iarduino_RTC.h! Что вам мешает открыть его и посмотреть описание класса?

C++
1
2
3
4
5
6
7
    /** Пользовательские функции **/                                                                     //
        #if defined(TwoWire_h) || defined(__ARDUINO_WIRE_IMPLEMENTATION__)                                  //  Если подключена библиотека Wire.h
        bool begin (TwoWire* i=&Wire ){ selI2C->init(i); objClass->begin((iarduino_I2C_Select*)selI2C); gettime(); }    //  Определяем функцию инициализации модуля (Параметр: объект для работы с аппаратной шиной I2C).
        #endif                                                                                              //
        #if defined(iarduino_I2C_Software_h)                                                                //  Если подключена библиотека iarduino_I2C_Software.h
        bool begin (SoftTwoWire* i   ){ selI2C->init(i); objClass->begin((iarduino_I2C_Select*)selI2C); gettime(); }    //  Определяем функцию инициализации модуля (Параметр: объект для работы с программной шиной I2C).
        #endif                                                                                              //
Я ни разу не писал для ардуины, но элементарных знаний хватает чтобы понять, что вам надо либо перед этим заголовочным файлом включить файл соответствующей реализации I2C (TwoWire.h или iarduino_I2C_Software.h), либо где-то в оболочке выбрать какую-то галочку, которая определит __ARDUINO_WIRE_IMPLEMENTATION__.

qbfan писал же, что в комплекте идут примеры. Почему вы не открыли их? Хотя бы в текстовом редакторе. Это же так просто...
C++
1
2
3
                                                            //
#include <Wire.h>                                           // Если используется аппаратная шина I2C, то подключаем библиотеку Wire, до подключения библиотеки iarduino_RTC.
#include <iarduino_RTC.h>                                   // Подключаем библиотеку iarduino_RTC для работы с модулями реального времени.
C++
1
2
3
4
5
6
                                                               //
#include <iarduino_I2C_Software.h>                             // Подключаем библиотеку для работы с программной шиной I2C, до подключения библиотеки iarduino_RTC.
SoftTwoWire sWire(3,4);                                        // Создаём объект программной шины I2C указав выводы которым будет назначена роль линий: SDA, SCL.
                                                               //
#include <iarduino_RTC.h>                                      // Подключаем библиотеку iarduino_RTC для работы с модулями реального времени.
//   iarduino_RTC watch(RTC_DS1302, 2, 3, 4);                  // Объявляем объект watch для работы с RTC модулем на базе чипа DS1302, указывая выводы Arduino
1
3 / 3 / 0
Регистрация: 03.10.2018
Сообщений: 249
11.06.2024, 15:59  [ТС] 7
Dushevny, куча примеров где ничего выбирать не надо, например скетч с выводом в монитор порта:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iarduino_RTC.h >               
iarduino_RTC time(RTC_DS1302, 6, 8, 7);  
void setup() {
  delay(300);          
  Serial.begin(9600);  
  time.begin();        
  time.settime(0, 15, 12, 20, 11, 21, 7);  
}
void loop() {
  if (millis() % 1000 == 0) {                         
    Serial.println(time.gettime("d-m-Y, H:i:s, D"));  
    delay(1);                                         
  }
}
ссылка https://radio-hobby.org/module... rduino_RTC

и здесь у меня такая же ошибка, единственная, error: 'class iarduino_RTC' has no member named 'begin'

Добавлено через 20 минут
Dushevny, но вы оказались правы, так все работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <Wire.h>  
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,  11,  5,  4,  3,  2);
#include "iarduino_RTC.h"
const int pinRST = 8;
const int pinCLK = 6;
const int pinDAT = 7;
iarduino_RTC myrtc(RTC_DS1302,pinRST,pinCLK,pinDAT); 
 
void setup()  {
lcd.begin(16, 2);
myrtc.begin(&Wire);
myrtc.settime(0,44,16,5,6,2024,4);
}
Спасибо!!
0
Модератор
Эксперт по электронике
8924 / 6691 / 920
Регистрация: 14.02.2011
Сообщений: 23,582
11.06.2024, 16:14 8
Цитата Сообщение от Belju Посмотреть сообщение
time.begin();
скачал библиотеку iarduino_RTC версия 2.0.6
вот её h файл (выдержки)
C++
1
2
3
4
5
#if defined(TwoWire_h) || defined(__ARDUINO_WIRE_IMPLEMENTATION__)                                  //  Если подключена библиотека Wire.h
        bool begin (TwoWire* i=&Wire ){ selI2C->init(i); objClass->begin((iarduino_I2C_Select*)selI2C); gettime(); }    //  Определяем функцию инициализации модуля (Параметр: объект для работы с аппаратной шиной I2C).
        #endif                                                                                              //
        #if defined(iarduino_I2C_Software_h)                                                                //  Если подключена библиотека iarduino_I2C_Software.h
        bool begin (SoftTwoWire* i   )
как видно для вызова begin без аргументов(аргументы по умолчанию) нужно подключить "библиотеку"TwoWire. перед iarduino_RTC.h
#if defined(TwoWire_h) || defined(__ARDUINO_WIRE_IMPLEMENTATION__)
0
3 / 3 / 0
Регистрация: 03.10.2018
Сообщений: 249
11.06.2024, 16:17  [ТС] 9
ValeryS, спасибо... как на моем последнем примере тоже все работает
0
Модератор
Эксперт по электронике
8924 / 6691 / 920
Регистрация: 14.02.2011
Сообщений: 23,582
11.06.2024, 16:34 10
Цитата Сообщение от Belju Посмотреть сообщение
Dushevny, куча примеров где ничего выбирать не надо, например скетч с выводом в монитор порта:
из примеров
C++
1
2
#include <Wire.h>                                           // Если используется аппаратная шина I2C, то подключаем библиотеку Wire, до подключения библиотеки iarduino_RTC.
#include <iarduino_RTC.h>
везде изначально подключается Wire.h
0
549 / 241 / 33
Регистрация: 22.09.2023
Сообщений: 678
11.06.2024, 19:26 11
Цитата Сообщение от Belju Посмотреть сообщение
куча примеров где ничего выбирать не надо
Вы думаете, я код в своем сообщении набирал из головы? Нет, я забил в гугля "iarduino_RTC.h", он выдал ссылку на эту библиотеку, я скачал архив и нашел в нем папку examples. И в ней был ответ на ваш вопрос. Это заняло не более 3 минут.

Может ваша куча примеров от более старой версии библиотеки, в которой аппаратный I2C был прибит гвоздями?
0
11.06.2024, 19:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2024, 19:26
Помогаю со студенческими работами здесь

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента ...

Преобразовать введенное значение в часы и минуты и выводит на экран в виде “часы: минуты”
Здравствуйте, помогите пожалуйста с написанием программы. Написать программу, которая запрашивает...

Из секунд - часы, минуты и секунды. Из минут - часы, минуты
private void button4_Click(object sender, EventArgs e) { if (textBox3.Text ==...

Программ, которая переводит часы и минуты в минуты или минуты – в часы и минуты
Составьте программу, которая в зависимости от входных данных переводит часы и минуты в минуты или...

Программа, которая переводит часы и минуты в минуты или минуты – в часы и минуты
Составьте программу, которая в зависимости от входных данных переводит часы и минуты в...

Часы
Всем привет товарищи нужна помощь-)надо написать программку на C+++ или паскале не сильно...

Часы
Помогите написать программу, в которой часы работают с времени, введенного с клавиатуры.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru