Здравствуйте! Помогите пожалуйста с расчётами!
- Войдите на сайт для отправки комментариев
Втр, 20/11/2018 - 20:53
Здравствуйте! Помогите пожалуйста с расчётами!
Зная текущее время и зная расписание звонков, нужно узнать какой из массива ближайший звонок и сколько минут до него осталось.
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты. Сразу говорю некоторые переменные в коде пока не используются
Код вот:
#include <iarduino_RTC.h>
iarduino_RTC time(RTC_DS1302, 22, 24, 26);
String D;
String M;
String Y;
String H;
String I;
String S;
String N;
String Time;
String Out;
int NH[] {
8, 9, 9, 10,
10, 11, 11, 11,
12, 12, 13, 13,
13, 14
};
int NM[] {
30, 10, 25, 05,
20, 00, 15, 55,
10, 50, 05, 45,
50, 30
};
#include <LiquidCrystal.h>
LiquidCrystal lcd(9, 8, 7, 6, 5, 4);
void setup() {
delay(300);
time.begin();
lcd.begin(16, 2);
}
void loop() {
D = time.gettime("d");
M = time.gettime("m");
Y = time.gettime("Y");
H = time.gettime("H");
I = time.gettime("i");
S = time.gettime("s");
N = time.gettime("D");
lcd.clear();
Time = H + ":" + I + ":" + S;
TiMe();
lcd.setCursor(0, 0);
lcd.print("Time: " + Time);
lcd.setCursor(0, 1);
lcd.print("Ring: " + Out);
delay(900);
}
void TiMe() {
int i = 0;
int z = 13;
int q = 0;
while (q == 0 or i <= z) {
if (H.toInt() * 60 + M.toInt() > NH[i - 1] * 60 + NM[i - 1]) {
if (H.toInt() * 60 + M.toInt() < NH[i] * 60 + NM[i]) {
Out = String(NH[i]) + ":" + String(NM[i]);
q = 1;
}
}
i++;
}
}
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты.
И охота себе проблемы создавать. Вот вам хинт - храните для каждого звонка не часы и минуты, а минуты с полуночи - будете высчитывать порядок звонков в одно действие.
Стесняюсь спросить, уважаемый, а что конкретно не работает?
- не считывает время из DS1302?
- не сравнивает его с заданными значениями?
- сама ардуинка перестала работать?
Что компилятор гутарит?
Можно и так, но будет ли это работать?
Не сравнивает! Я же вроде сказал.
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты.
И охота себе проблемы создавать. Вот вам хинт - храните для каждого звонка не часы и минуты, а минуты с полуночи - будете высчитывать порядок звонков в одно действие.
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты.
И охота себе проблемы создавать. Вот вам хинт - храните для каждого звонка не часы и минуты, а минуты с полуночи - будете высчитывать порядок звонков в одно действие.
Он вроде про это и имеет ввиду
Он вроде про это и имеет ввиду
если "он" - это я, то вовсе нет.
Попробуйте в обоих системах посчитать разницу между соседними звонками - ощутите разницу. Как предлагает SLKH - нагляднее, но в моем случае считать проще.
Ну выдайте на сериал перед строкой 61 (H.toInt() * 60 + M.toInt()), (NH[i - 1] * 60 + NM[i - 1]), (NH[i] * 60 + NM[i]), глазами посмотрите, чего там за цифры получаются.
Возможно это проблемы преобразования