Таймер обратного отсчета по кнопке, с настройкой временеи

Scream174
Offline
Зарегистрирован: 13.01.2019

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

 

Имеется: arduino uno, LCD 1602 i2c, релейный модуль, две тактовые кнопки подключенные через триггер шмитта (для устранения дребезжания контактов).

 

Релейный модуль подключаю к пину 8; кнопки к пинам 2,3; LCD i2c a4,a5 (использую библиотеку LiquidCrystal_I2C).

 

Задача следующая: выводить на LCD экран устанавливаемое временя, начальное минимальное время 15 минут, по нажатию кнопки 1 (pin2) добавлять время +15 минут, до максимального 90 минут (при превышении 90 минут сброс на начальные 15 минут). По нажатию кнопки 2 (pin3) запускать релейный модуль и выводить на экран обратный отсчет (достаточно просто минуты, секунды не интересны). По повторному нажатию кнопки 2 ставить отсчет на паузу и отключать релейный модуль (с возможностью добавить еще время по первой кнопке), по очередному нажатию кнопки 2 снимать с паузы и заставлять время тикать с выводом его счета на Lcd и повторным включением реле.

 

Модуля реального времени не имею.

 

Заранее благодарен, предоставить свой жалкий скетч ну просто стыдно.

 

 

 

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

Scream174 пишет:

Друзья прошу помощи в написании скетча. 

Начните с прочтения этой темы - ПЕСОЧНИЦА. ДЛЯ ВСЕХ НОВИЧКОВ. Особо обратите внимание на пункты 4, 5, 6.

Scream174 пишет:

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

Не нужно стыдиться. Для совсем новичков есть раздел "Песочница", там относятся с пониманием. Совсем без скетча Вам помогать никто не станет.

Scream174
Offline
Зарегистрирован: 13.01.2019

Да я прекрасно понимаю, что полно болванов вроде меня, и никому не хочется тратить время. Ну научился я мигать светодиодами, включать выключать реле по кнопке, выводить что-нибудь на экран, но этого просто мало. Работу с time и прерывания просто не могу осилить.

В любом случае спасибо.

Буду как завещал великий Ленин учиться учиться и еще раз.

Тему можно закрывать.

Scream174
Offline
Зарегистрирован: 13.01.2019

так а что в данном случае я могу предоставить в скетче :)

назначение пинов.

включение выключение реле :(((

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
 
#define PIN_TIMEBUTTON 2
#define PIN_DRIVE 8
#define PIN_DRIVEBUTTON 3
 
boolean buttonWasUp = true;
boolean driveEnabled = false;
int TIME=15;
 
void setup()
{
  Serial.begin(9600); //установка частоты
  lcd.begin(); //инициализация LCD
  lcd.backlight();
  lcd.clear(); //предварительная отчистка LCD
  lcd.print(String(TIME)+(" min")); // начальный вовод минимального времени 15 минут
  pinMode(PIN_DRIVE,OUTPUT);
  pinMode(PIN_TIMEBUTTON, INPUT_PULLUP);
  pinMode(PIN_DRIVEBUTTON, INPUT_PULLUP);
  digitalWrite(PIN_DRIVE, HIGH);
 
}
 
void loop()
{
ISP();
}
 
void ISP()
{
   boolean buttonIsUp = digitalRead(PIN_DRIVEBUTTON);
 
  if (buttonWasUp && !buttonIsUp)
  {
    delay(10);
    buttonIsUp=digitalRead(PIN_DRIVEBUTTON);
    if (!buttonIsUp)
    {      
      driveEnabled=!driveEnabled;
      digitalWrite(PIN_DRIVE, driveEnabled);
      //delay(10000);
    }    
   } 
  buttonWasUp = buttonIsUp;   
}
 
qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

#1   И прокачайте свой скил -Вставка кода на форум.

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

Scream174 пишет:

так а что в данном случае я могу предоставить в скетче :)

Ну, Вам же говорили:

Jeka_M пишет:

Начните с прочтения этой темы - ПЕСОЧНИЦА. ДЛЯ ВСЕХ НОВИЧКОВ

А Вы проигнорировали!

Как Вы собираетесь чему-то научиться, если не делаете, что Вам говорят?

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

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

Как Вы собираетесь чему-то научиться, если не делаете, что Вам говорят?

Перефразируя классика: "А зачем мне что-то читать, если форум есть?"

Щас клиент обидится и запишет нас в ряды пособников госдепа и толерастов.