Доброго времени суток. Ребята помоги мне. Кто нибудь знает в чем проблема у меня, я купил часы ds1302 все три штуки с разного магазина. С первого и второго купленного часы. Вообще не возможно даже настроить часы показывает постоянно 2000.00.00 час 00:00:00. А на в третьем часы показывают и даже настроит можно часы но дальше не идёт на мёртвой стоит там где как я настроил. Как и первый и второй модулях.
на одной микросхеме хотя-бы показывает часы то что я поставил. Я переставил эту микрасхема на другие модули там тоже показывают но не идёт часы
Схема И Кот Код (C++): #include <iarduino_RTC.h> // подключение библиотеки iarduino_RTC time(RTC_DS1302,4,2,3); // Задаем правильно название нашего модуля, а //также указываем к каким цифровым пинам его подключаем void setup() { delay(300); // задержка в 300мс перед началом инициализации Serial.begin(9600); // устанавливаем скорость передачи данных с модулей в 9600 бод time.begin(); // функция служит для инициализации работы модуля // Ниже у нас прописываются временные значения в виде секунд, минут, часов, даты, включая месяц и год, и также можете указать день недели time.settime(10,10,10,4,10,17,3); // 10 сек, 10 мин, 10 час, 4 , октября, 2017 года, среда } void loop(){ if(millis()%1000==0) { // задержка в одну секунду перед выводом времени в последовательный порт Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время delay(1); // делаем небольшую задержку, чтобы не выводить время слишком часто } }
Аэробус, там еще, памойму, надо старший бит по 0 адресу обнулять/устанавливать(не помню), тогда они пойдут
Помоги исправить одну маленькую ошибку переделал часы на ds3231 но там только год показывают не 2019 а 0019. Я скеч тоже скину
Часы ds1302 были раньше. мне переделали один парень на ds3231. Там не правильно показывает год 2019 а 0019 показывает. Помоги исправить ошибки буду рад. Спасибо!
Господи, ну, напиши ты в строке 455 вместо "now_year" что-нить вроде "now_year+2000" и радуйся. Если при этом начнёт показывать 4019 при установке даты, то вместо "now_year+2000" пиши "now_year+(now_year > 1999 ? 0 : 2000)" Только вот услуг за услугу. Объясни мне, пожалуйста, в чём цимес? Ведь хобби доставляет удовольствие оттого, что сделал сам то, чего ещё вчера не умел. А какой кайф, что кто-то посторонний показал что поменять в тексте, в котором ты не понимаешь ни одной буквы? Для тебя то в чём здесь удовольствие?
Подскажите пожалуйста, в чем ошибка. При компиляции пишет ('hour' was not declared in this scope'). #include <Servo.h> #include <iarduino_RTC.h> // подключение библиотеки iarduino_RTC time(RTC_DS1302,8,6,7); // Задаем правильно название нашего модуля, а также указываем к каким цифровым пинам его подключаем(в нашем случае – 8,6,7) #include <Wire.h> // библиотека для устройств I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку для дисплея #define feed_period LiquidCrystal_I2C LCD(0x27,16,2); Servo servo1; void setup() { servo1.attach(5); delay(300); // задержка в 300мс перед началом инициализации Serial.begin(9600); // устанавливаем скорость передачи данных с модулей в 9600 бод LCD.init(); // инициализация LCD дисплея LCD.backlight(); // включение подсветки дисплея time.begin(); // функция служит для инициализации работы модуля // Ниже у нас прописываются временные значения в виде секунд, минут, часов, даты, включая месяц и год, и также можете указать день недели //time.settime(25,20,19,13,6,21,6); // 10 сек, 10 мин, 10 час, 4 , октября, 2017 года, среда } void loop(){ if(millis()%1000==0) { // задержка в одну секунду перед выводом времени в последовательный порт Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время LCD.setCursor(0,0); LCD.print(time.gettime("d M Y, D")); LCD.setCursor(4,1); LCD.print(time.gettime("H:i:s")); delay(1); // делаем небольшую задержку, чтобы не выводить время слишком часто { if (hour == 7 && minute == 30 && second == 25); { servo1.write(0); delay(1500); servo1.write(90); delay(1500); } } }
hour не задекларированы/не определены в коде. Можно так Код (Text): if(time.seconds==25)&&(time.minutes==30)&&(time.Hours==7)
надо писать time.hour == 7 && time.minute == 30 && time.second == 25 еще возможно перед этим надо будет сделать time.gettime(); но это не точно
Код (C++): #include <Servo.h> #include <iarduino_RTC.h> // подключение библиотеки iarduino_RTC time(RTC_DS1302,8,6,7); // Задаем правильно название нашего модуля, а также указываем к каким цифровым пинам его подключаем(в нашем случае – 8,6,7) #include <Wire.h> // библиотека для устройств I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку для дисплея #define feed_period LiquidCrystal_I2C LCD(0x27,16,2); Servo servo1; void setup() { servo1.attach(5); delay(300); // задержка в 300мс перед началом инициализации Serial.begin(9600); // устанавливаем скорость передачи данных с модулей в 9600 бод LCD.init(); // инициализация LCD дисплея LCD.backlight(); // включение подсветки дисплея time.begin(); // функция служит для инициализации работы модуля // Ниже у нас прописываются временные значения в виде секунд, минут, часов, даты, включая месяц и год, и также можете указать день недели //time.settime(25,20,19,13,6,21,6); // 10 сек, 10 мин, 10 час, 4 , октября, 2017 года, среда } void loop(){ if(millis()%1000==0) { // задержка в одну секунду перед выводом времени в последовательный порт Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время LCD.setCursor(0,0); LCD.print(time.gettime("d M Y, D")); LCD.setCursor(4,1); LCD.print(time.gettime("H:i:s")); delay(1); // делаем небольшую задержку, чтобы не выводить время слишком часто { if (time.Hours == 7 && time.minutes == 30 && time.seconds == 25); { servo1.write(0); delay(1500); servo1.write(90); delay(1500); } } }
они уже определены в библиотеке и создаются вместе с классом iarduino_RTC time(RTC_DS1302,8,6,7); time - это экземпляр класса iarduino_RTC (типа как структура, только с функциями и круче) и в нем есть переменные time.hour time.minute и т.д. так же как всякие функции типа time.gettime();
Ну можно и так. Это в начале. Можно и прямо в Лоб в самом коде как у Вас и у меня. Но у Вас ошибка не в этом. Надо писать не hour a time.hours и также с минутами и секундами. Компилятор не понимает что такое hour и зачем оно. Ваш правильно выложеный код (пост 14) поправил и теперь попробуйте его скомпилить