помогите с кодом

Pasqa95
Offline
Зарегистрирован: 31.03.2018

доброго времени суток, форумчане. 

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

код:

 

 
 
BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Я сейчас как модератор или бывалый скажу, но оформи код в в нужном виде {code} в верхней панели. А то неудобочитабельно и объяснять потом так же не удобно будет. Сделай милость для решения твоего же вопроса. 

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

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

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

BOOM пишет:

неудобочитабельно

Дело даже не в этом, а в том, что придётся писать: "исправьте ошибку в строке №ХЗ". 

Для обсуждения код должен иметь номера строк.

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

А куда подключен базер на 5 ногу или на 6?

Pasqa95
Offline
Зарегистрирован: 31.03.2018

извените

#include <virtuabotixRTC.h>
virtuabotixRTC myRTC(6, 7, 8); //CLK, DAT, RST
 
 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27 ,2,1,0,4,5,6,7,3, POSITIVE);
 
void setup() {
lcd.begin(16,2);
myRTC.setDS1302Time(00,24, 20, 0, 24, 7, 2019);
}
int buzzer = 5;
 
 
void loop() {
 
myRTC.updateTime();
lcd.setCursor(0, 0);
lcd.print("date: ");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("time: ");
lcd.print(myRTC.hours);
lcd.print(":");
lcd.print(myRTC.minutes);
lcd.print(":");
lcd.print(myRTC.seconds);
lcd.println("  ");
 
 if (myRTC.hours== 20 && myRTC.minutes== 55) {//пробовал minutes,hours  hour,minute   min,hour
 tone(6,400,300);}
 delay (500);
 
 
}

 

Pasqa95
Offline
Зарегистрирован: 31.03.2018

на 5

kalapanga
Offline
Зарегистрирован: 23.10.2016

Pasqa95 пишет:

на 5

А почему тогда tone(6, ... ?

Pasqa95
Offline
Зарегистрирован: 31.03.2018

извените опечатка вышла, но исправив 6 на 5  будильник так и не заработал

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

добавить:
Serial.begin(9600);

Serial.println(myRTC.minutes,HEX);

И посмотреть в мониторе порта что?

Pasqa95
Offline
Зарегистрирован: 31.03.2018

я так понимаю это момен когда должен включиться будильник

22:04:03.684 -> 18
22:04:04.227 -> 18
22:04:04.737 -> 18
22:04:05.281 -> 18
22:04:05.824 -> 18
22:04:06.334 -> 18
22:04:06.877 -> 19
22:04:07.421 -> 19
22:04:07.965 -> 19
22:04:08.474 -> 19
22:04:09.019 -> 19
22:04:09.562 -> 19
22:04:10.072 -> 19
22:04:10.616 -> 19
22:04:11.160 -> 19

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

И?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Я такой же начинающий, и лично мне не вполне понятна логика работы ПО без логичных коментариев. Скорее всего более грамотные коллеги разберут что там и как, а мне не понятно. В первую очередь (опустив 5 и 6) мне не понятно - если используются переменное причём тут фиксированные значения? 

Pasqa95
Offline
Зарегистрирован: 31.03.2018

больше ничего не было

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pasqa95 пишет:

больше ничего не было

то-есть на часах 4 минуты а в мониторе? или у вас время не выставлено?

А так?
 

if (myRTC.hours>= 20 && myRTC.minutes>= 55) {//пробовал minutes,hours  hour,minute   min,hour
 tone(6,400,300);}

 

Pasqa95
Offline
Зарегистрирован: 31.03.2018

результат тот же

22:29:09.257 -> 18
22:29:09.801 -> 18
22:29:10.345 -> 18
22:29:10.854 -> 18
22:29:11.398 -> 19
22:29:11.942 -> 19
22:29:12.486 -> 19
22:29:12.996 -> 19

часы пока что при включении автоматом насавляються на  20:24:00

kalapanga
Offline
Зарегистрирован: 23.10.2016

Может не слышно ничего с длительностью 300 миллисекунд-то? Хоть оно и будет вызываться много раз за эту минуту. Сделайте поболее.

Да и вобще - буззер-то проверен, пищит от tone?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pasqa95 пишет:

результат тот же

22:29:09.257 -> 18
22:29:09.801 -> 18
22:29:10.345 -> 18
22:29:10.854 -> 18
22:29:11.398 -> 19
22:29:11.942 -> 19
22:29:12.486 -> 19
22:29:12.996 -> 19

часы пока что при включении автоматом насавляються на  20:24:00

 а монитор порта показывает, что у вас 24 (0х18) и 25 (0x19) ну так и выставьте в логике, чтобы сразу запищало

Pasqa95
Offline
Зарегистрирован: 31.03.2018

только что сделал проверочный скетч 

void setup() {
 
int buzzer = 5;
}

void loop() {
  
tone(5,400,300);
delay (500);

}

кричит на всю квартиру

Pasqa95
Offline
Зарегистрирован: 31.03.2018

если есть возможность роспишите пожалуйста как это сделать ибо представления не имею как это сделать

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pasqa95 пишет:

если есть возможность роспишите пожалуйста как это сделать ибо представления не имею как это сделать

для начала так

if (myRTC.minutes>= 25) {
 tone(6,400,300);}

 

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

И он все оставшиеся 35 минут орать будет.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

И он все оставшиеся 35 минут орать будет.

у него совсем не орёт жеж, заорёт через минуту, разбираться с часами

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

sadman41 пишет:

И он все оставшиеся 35 минут орать будет.

Проблем-то!

Спросит на форуме, как сделать так, чтобы не орало. (проблемы надо решать по мере их поступления)

Pasqa95
Offline
Зарегистрирован: 31.03.2018

наконец то заорало

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pasqa95 пишет:

наконец то заорало

теперь проверь, что с часами выходит?

Pasqa95
Offline
Зарегистрирован: 31.03.2018

магия, орет в нужное время не переставая))))

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Соседи долбят в стену. Магия удалась )))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pasqa95 пишет:

магия, орет в нужное время не переставая))))

if (myRTC.hours >= 20 && myRTC.minutes == 25) {//пробовал minutes,hours  hour,minute   min,hour
 tone(6,400,300);}

 

Pasqa95
Offline
Зарегистрирован: 31.03.2018

а на этом моменте глючит и скидает время на 0/0/2000 год

Pasqa95
Offline
Зарегистрирован: 31.03.2018

ой забыл пин поменять, все работает, Моему щастю нет предела

Pasqa95
Offline
Зарегистрирован: 31.03.2018

Теперь как застовить его замолчать ?

может :

else 

buzzer low

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Pasqa95 пишет:

Теперь как застовить его замолчать ?

http://arduino.ru/Reference/NoTone

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

andriano пишет:

Проблем-то!

Спросит на форуме, как сделать так, чтобы не орало. 

Не прошло и суток ...

Pasqa95 пишет:

Теперь как застовить его замолчать ?

Шаман, однако!

Pasqa95
Offline
Зарегистрирован: 31.03.2018

та всю ночь орал хорошо что на роботу убежал от него)))))))))))))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Pasqa95 пишет:

та всю ночь орал хорошо что на роботу убежал от него)))))))))))))

всю ночь он не мог орать