Таймер на DS3231

Chainick
Offline
Зарегистрирован: 10.08.2015

Вот накалякал таймер с отключением/включением по времени. Но при проверке выдаёт ошибку. Думаю что реализовал я функцию включения/ выключения неверно. Подскажите что не так пожалуйста.

[code]
#include <Wire.h>
#include <DS3231.h>
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x27, 16, 2);
DS3231 Clock;
bool h12 = false;
bool PM;
bool Century = false;
 
void setup() {
 
  Wire.begin();
  Clock.setSecond(50);
  Clock.setMinute(52);
  Clock.setHour(16);
  Clock.setDoW(3);
  Clock.setDate(12);
  Clock.setMonth(8);
  Clock.setYear(15);
  
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setBacklight(HIGH);
  Wire.begin();
  pinMode(13, OUTPUT);
}
 
void loop() {
  int second, minute, hour, date, month, year, temperature;
 
  year = Clock.getYear();
  month = Clock.getMonth(Century);
  date = Clock.getDate();
  hour = Clock.getHour(h12, PM);
  minute = Clock.getMinute();
  second = Clock.getSecond();
  temperature = Clock.getTemperature();
 
  if ( hour <= 18 $$ hour >= 9 )
  {
    digitalWrite(13, HIGH);
  }
  else
  {
  digitalWrite(13, HIGH);
  delay(10000);            
  digitalWrite(13, LOW); 
  delay(10000);
  }
 
  lcd.print("20");
  lcd.print(year, DEC);
  lcd.print('-');
  if (month < 10) lcd.print('0');
  lcd.print(month, DEC);
  lcd.print('-');
  if (date < 10) lcd.print('0');
  lcd.print(date, DEC);
 
  lcd.setCursor(0, 1);
  if (hour < 10) lcd.print('0');
  lcd.print(hour, DEC);
  lcd.print(':');
  if (minute < 10) lcd.print('0');
  lcd.print(minute, DEC);
  lcd.print(':');
  if (second < 10) lcd.print('0');
  lcd.print(second, DEC);
  lcd.print(' ');
  lcd.print("Temp:");
  lcd.print(temperature);
  delay(500);
  lcd.setCursor(0, 0);
 
 
}
[/code]

 

Araris
Offline
Зарегистрирован: 09.11.2012

Дайте-ка я догадаюсь... ага... ошибка в строке "if ( hour <= 18 $$ hour >= 9 )". Дааа, тут без помощи форума никак, не описание же синтаксиса читать...

Будут еще ошибки - сразу пишите сюда (а лучше для каждой ошибки - отдельную тему создавайте), только ошибки не указывайте, так интереснее.

Chainick
Offline
Зарегистрирован: 10.08.2015

Хорошо. Где про синтаксис почитать?

Araris
Offline
Зарегистрирован: 09.11.2012

Вы шутите, наверное. http://arduino.ru/Reference , ищите "Логические операторы".

Chainick
Offline
Зарегистрирован: 10.08.2015

Я конечно извиняюсь за таое некоректное изложение своей проблемы. Но да, проблема в  if ( hour <= 18 $$ hour >= 9 ). Подскажите что не так.

vvadim
Offline
Зарегистрирован: 23.05.2012

про логические операторы почитал?

if ( hour >= 9 && hour <= 18 )

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Chainick пишет:

Я конечно извиняюсь за таое некоректное изложение своей проблемы. Но да, проблема в  if ( hour <= 18 $$ hour >= 9 ). Подскажите что не так.

Вам выше дали ссылку. Внимательно посмотрите как пишется логический оператор И.

Chainick
Offline
Зарегистрирован: 10.08.2015

Ну я так понял, что функцией :

if ( hour <= 18 $$ hour >= 9 )
  {
    digitalWrite(13, HIGH);
  }
  else
  {
  digitalWrite(13, HIGH);
  delay(10000);            
  digitalWrite(13, LOW); 
  delay(10000);
  }
 
я в своём таймере не отделаюсь? ))
Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Сравните строчку, которую выше написал vvadim и вашу. Побуквенно. Найдите различие.

Ещё раз откройте справку по синтаксису и посмотрите как правильно пишется логическое И.

Chainick
Offline
Зарегистрирован: 10.08.2015

Сори что торможу в форуме. Не обновились сообщения

Chainick
Offline
Зарегистрирован: 10.08.2015

Ребята))) я индюк слепой, только сейчас заметил)))

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Плюсанул твоё последнее сообщение...

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Araris пишет:

Вы шутите, наверное. http://arduino.ru/Reference , ищите "Логические операторы".

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

:D

Chainick
Offline
Зарегистрирован: 10.08.2015

не выгружается, при выгрузке выдаёт ошибку

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0d
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0d
avrdude: stk500_recv(): programmer is not responding
 
и так далее до 10
Araris
Offline
Зарегистрирован: 09.11.2012

JollyBiber пишет:

Araris пишет:

Вы шутите, наверное. http://arduino.ru/Reference , ищите "Логические операторы".

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

:D

Признаю, был вчера непозволительно добр. Каюсь. Обещаю впредь !

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

"Дайте закурить, а то так пить хочется, что переночевать негде."

 

alex_r61
Offline
Зарегистрирован: 20.06.2012

У человека все мысли о курсе доллара, а вы всей кучей накинулись:)

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Он еще не написал что у него двое детей и черепаха.

Chainick
Offline
Зарегистрирован: 10.08.2015

Спасибо ребяты, всё работает, ошибок нету! Чего б я делал без вашей помощи?! Главное- все такие отзывчивые, прям я не ожидал. Надеюсь кому- нибудь из ищущих, таких как я,  пригодится этот бесплатный, рабочий скетч. Да, кстати, ошибка была в том, что неправильно был выбран порт. Спасибо за отзывчивость!

by_ruslan
Offline
Зарегистрирован: 15.08.2015

Araris пишет:

 (а лучше для каждой ошибки - отдельную тему создавайте), только ошибки не указывайте, так интереснее.

вот это правильно!!!))))

Клапауций 998
Offline
Зарегистрирован: 12.08.2015

Chainick пишет:

Надеюсь кому- нибудь из ищущих, таких как я,  пригодится этот бесплатный, рабочий скетч.

ок - всем кретинам будем бесплатно выдавать твой скетч