Старые Часы На ардуино

leomax
Offline
Зарегистрирован: 15.11.2019

Добрый День дорогие друзья!

Я начинающий специалист по сборки заказов на Ардуино, Об аппаратуре узнал недавно

Есть Заказ На ремонт Больших Уличных Часов На Стрелках. Задача Такая: Запустить Часы, В которых стоит мотор на 24 В, передвигать надо минутную (большую) стрелку, А через час за большой стрелкой сама по себе пойдет маленькая (В управлении не нуждается).Часы Через Каждый час должны играть мелодию (На подобие Часов с боем Кремлевских курантов).

Для Осуществления Есть следующее: Плата Arduino Uno (с кабелем) есть модуль часов реального времени (Ds1302), Мотор L298N (Который подает импульс на большие часы), MP3 плеер с флешкой(Sc-Card) (MP3-TF-18P) к нему проверочный динамик,  ЖК-Экран 16x2 с последовательным интерфейсом. все это дело подсоеденено к ардуино

Каждая плата по отдельности управляется через ардуино, все скетчи подобраны. Для часов Есть скечт который берет время с ПК, загружает в модуль времени и выводит на жк-экран,мп3 играет определенную мелодию, моторчик через каждую минуту передвигает большую стрелку (только для выводов нужно чередовать полярность, например первая минута - 1 контакт + другой -, на вторую минуту наоборот, иначе стрелки не пойдут)

Не могу все это обьеденить, прошу помогите разобраться с кодом, как его грамотно составить,  Надо чтобы,

с часов реального времени каждую минуту подавался импульс в мотор и передвигал стрелку, при этом на слудующую минуту менялась полярность к контактам мотора на ардуине, и так циклично (чтоб стрелка двигалась) и с часов реального времени каждый час подавался импульс в мп3 для включения мелодии.

Я новичок, прошу сильно не бить, помогите плз

 

Коды:

 

DS1302- Часы реального времени:

 

Moderator : пожалуйста, вставьте код правильно (возможно, новым сообщением в тему), как описано в http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

 

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Скоро стоит такой ремонт?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

DS1302- Часы реального времени:

Немедленно выкинь каку. 

leomax
Offline
Зарегистрирован: 15.11.2019

На данным момент точно не знаем, может около 100 $

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

дак тут один код $300 стОит, без железа, НИР и пусконаладки. 

leomax
Offline
Зарегистрирован: 15.11.2019

Заказан Другой, 

DC 3.3~5.5V DS3231

Но пака приедет из Китая есть только этот

leomax
Offline
Зарегистрирован: 15.11.2019

Цену Пересмотрим и предложим. Аппаратура им принадлежит полностью( с Часами)

leomax
Offline
Зарегистрирован: 15.11.2019
Коды: 

DS1302- Часы реального времени:

#include <iarduino_RTC.h>                                   // Подключаем библиотеку iarduino_RTC для работы с модулями реального времени.
  iarduino_RTC time(RTC_DS1302, 2,4,3);                 // Объявляем объект time для работы с RTC модулем на базе чипа DS1302, указывая выводы Arduino подключённые к выводам модуля RST, CLK, DAT.
//  iarduino_RTC time(RTC_DS1307);                          // Объявляем объект time для работы с RTC модулем на базе чипа DS1307, используется аппаратная шина I2C.
//  iarduino_RTC time(RTC_DS3231);                          // Объявляем объект time для работы с RTC модулем на базе чипа DS3231, используется аппаратная шина I2C.
                                                            //
//  Определяем системное время:                             // Время загрузки скетча.
const char* strM="JanFebMarAprMayJunJulAugSepOctNovDec";    // Определяем массив всех вариантов текстового представления текущего месяца.
const char* sysT=__TIME__;                                  // Получаем время компиляции скетча в формате "SS:MM:HH".
const char* sysD=__DATE__;                                  // Получаем дату  компиляции скетча в формате "MMM:DD:YYYY", где МММ - текстовое представление текущего месяца, например: Jul.
//  Парсим полученные значения в массив:                    // Определяем массив «i» из 6 элементов типа int, содержащий следующие значения: секунды, минуты, часы, день, месяц и год компиляции скетча.
const int i[6] {(sysT[6]-48)*10+(sysT[7]-48), (sysT[3]-48)*10+(sysT[4]-48), (sysT[0]-48)*10+(sysT[1]-48), (sysD[4]-48)*10+(sysD[5]-48), ((int)memmem(strM,36,sysD,3)+3-(int)&strM[0])/3, (sysD[9]-48)*10+(sysD[10]-48)};
                                                            //
void setup(){                                               //
    delay(300);                                             // Ждем готовности модуля отвечать на запросы.
    Serial.begin(9600);                                     // Инициируем передачу данных в монитор последовательного порта на скорости 9600 бод.
    time.begin();                                           // Инициируем работу с модулем.
    time.settime(i[0],i[1],i[2],i[3],i[4],i[5]);            // Устанавливаем время в модуль: i[0] сек, i[1] мин, i[2] час, i[3] день, i[4] месяц, i[5] год, без указания дня недели.
//  time.settime(i[0],i[1],i[2],i[3],i[4],i[5], 2);         // Можно установить время с указанием дня недели, где последний параметр, это день недели (указывается вручную) в формате: 0-воскресенье, 1-понедельник, ... , 6-суббота.
}                                                           //
void loop(){                                                //
    if(millis()%1000==0){                                   // Если прошла 1 секунда.
      Serial.println(time.gettime("d-m-Y, H:i:s, D"));      // Выводим время.
      delay(1);                                             // Приостанавливаем скетч на 1 мс, чтоб не выводить время несколько раз за 1мс.
    }                                                       //
}         

MP3 -
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
void setup () {
    Serial.begin (9600);
    mp3_set_serial (Serial);
  delay (100);
  mp3_set_volume (10);
}
void loop () {        
 delay (1);
 mp3_play (1); // проигрывает первую мелодию на карте памяти - 
delay (59000); // -  в течении одной минуты

Мотор на часы: 

int IN3 = 9;
int IN4 = 10;
 
void setup ()
{
pinMode (IN4, OUTPUT);
pinMode (IN3, OUTPUT);
}

void loop()

{

digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay (59999);
digitalWrite (IN4, LOW);
digitalWrite (IN3, HIGH);
delay (59999);


}

 

nik182
Offline
Зарегистрирован: 04.05.2015

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

leomax
Offline
Зарегистрирован: 15.11.2019

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

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

leomax пишет:

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

так от нас то что вы хотите? - не нашел в топике вопроса...

leomax
Offline
Зарегистрирован: 15.11.2019

помощи друзья, помощи, для реализации

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

leomax пишет:

помощи друзья, помощи, для реализации

какой помощи, конкретнее? - огород вам вскопать, пока вы на часах зарабатываете?

bwn
Offline
Зарегистрирован: 25.08.2014

В порядке оказания шефской помощи, переместил в "Песочницу", почитайте начало приколоченной темы, а еще, там книжки хорошие есть, всяки-разны.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Данунафиг, уважаемый. А как Вы поймете начальное положение стрелок? Тута датчики нужны - хотя-бы нулевого положения стрелок, да и то не факт, что будет нормально работать. Раз в сутки (если только 2 датчика) сверять время, подстраивать. 100 бакинских - это только посмотреть, ну и может ногой пнуть. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Мне одному кажется, что вот эти две вещи никак не сочетаются между собой?

leomax пишет:

специалист по сборки заказов на Ардуино

новичок

И ещё одна пара слабо сочетающихся понятий.

leomax пишет:

Есть Заказ

помогите плз

У нас теперь мода такая - взять коммерческий заказ и идти на форум за бесплатной "помощью"? 

Ну, вы, блин, даёте! (как говаривал Михалыч)

sadman41
Offline
Зарегистрирован: 19.10.2016

ЕвгенийП пишет:

У нас теперь мода такая - взять коммерческий заказ и идти на форум за бесплатной "помощью"? 

Мода сейчас разная. Вот одна контора, которая сидит в Сколково и продаёт муниципальным образованииям некоторую систему безопасности, просто взяла модулем мониторинга опенсорцный софт, поменяла названия исполняемых файлов и не стесняясь берёт мильён за право использования этого модуля. Да ещё, как говорит ея владыка, работает в минус. 

bwn
Offline
Зарегистрирован: 25.08.2014

ЕвгенийП пишет:

Мне одному кажется, что вот эти две вещи никак не сочетаются между собой?

leomax пишет:

специалист по сборки заказов на Ардуино

новичок

И ещё одна пара слабо сочетающихся понятий.

leomax пишет:

Есть Заказ

помогите плз

У нас теперь мода такая - взять коммерческий заказ и идти на форум за бесплатной "помощью"? 

Ну, вы, блин, даёте! (как говаривал Михалыч)

А все вместе, называется модным словом - стартап или старпёр, не помню, как правильно? А, вспомнил, распил.))))
Что характерно, сегодня в Яндексе увидел новость, про вумные остановки общественного транспорта, типа - нажимаешь кнопку, автобас определяет наличие свободных мест и решает, останавливаться али нет. Никакую недавнюю тему не навевает?

sadman41
Offline
Зарегистрирован: 19.10.2016

Так это не автобус, а маршрутное такси. Автобус должен останавливаться на каждой остановке - у него расписание движения.

Или он будет стоять, но никого не впускать и никого не выпускать?

bizzon
Offline
Зарегистрирован: 29.03.2016

Дед. Не гони волну. Сама по себе она никого не обидела. Пару конденсаторов пик по 12 от ног кварца к земле и всё с точностью в порядке

bizzon
Offline
Зарегистрирован: 29.03.2016

leomax пишет:

Добрый День дорогие друзья!

Я начинающий специалист по сборки заказов на Ардуино, Об аппаратуре узнал недавно

Есть Заказ На ремонт Больших Уличных Часов На Стрелках. Задача Такая: Запустить Часы, В которых стоит мотор на 24 В, передвигать надо минутную (большую) стрелку, А через час за большой стрелкой сама по себе пойдет маленькая (В управлении не нуждается).Часы Через Каждый час должны играть мелодию (На подобие Часов с боем Кремлевских курантов).

Для Осуществления Есть следующее: Плата Arduino Uno (с кабелем) есть модуль часов реального времени (Ds1302), Мотор L298N (Который подает импульс на большие часы), MP3 плеер с флешкой(Sc-Card) (MP3-TF-18P) к нему проверочный динамик,  ЖК-Экран 16x2 с последовательным интерфейсом. все это дело подсоеденено к ардуино

Каждая плата по отдельности управляется через ардуино, все скетчи подобраны. Для часов Есть скечт который берет время с ПК, загружает в модуль времени и выводит на жк-экран,мп3 играет определенную мелодию, моторчик через каждую минуту передвигает большую стрелку (только для выводов нужно чередовать полярность, например первая минута - 1 контакт + другой -, на вторую минуту наоборот, иначе стрелки не пойдут)

Не могу все это обьеденить, прошу помогите разобраться с кодом, как его грамотно составить,  Надо чтобы,

с часов реального времени каждую минуту подавался импульс в мотор и передвигал стрелку, при этом на слудующую минуту менялась полярность к контактам мотора на ардуине, и так циклично (чтоб стрелка двигалась) и с часов реального времени каждый час подавался импульс в мп3 для включения мелодии.

Я новичок, прошу сильно не бить, помогите плз

 

Коды:

 

DS1302- Часы реального времени:

 

Moderator : пожалуйста, вставьте код правильно (возможно, новым сообщением в тему), как описано в http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

 

 

 

Там точно мотор? Или электромагнит, которому раз в минуту надо импульсы со сменой полярности подавать?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

bizzon пишет:

Дед. Не гони волну. ...  всё с точностью в порядке

это уличные часы.

bizzon
Offline
Зарегистрирован: 29.03.2016

1302 сама по себе на точность не влияет. В ней же генератор(с внешним кварцем) и счётчики со схемой управления. Что её отличает от 1307 и 3231? Ну да. в последней всё внутри и якобы термостабилизировано. Как раньше справлялись - то?