Перейти к содержанию

проблема с кнопкой


PJufa

Рекомендуемые сообщения

народ, беда, помогите разобраться

if (timer != timerPress) не срабатывает эта строка
&& timer <= (timerPress + 300) и эта часть
код и монитор порта прологаю
версия arduino IDE 1.8.2

есть светодиод (полевик и набор из 20 шт 5730)
хочу управлять им и с пульта и с кнопки поэтому там button пульт будет задействован позже.
на пульте есть неиспользуемая кнопка... она сделана для других стран
я уже пробовал ее - работает код получен и прочее

СУТЬ! при нажатии на кнопку длительностью меньше 300 миллисекунд включает val = 255 - подаем на светодиод
при повторном нажатии меньше 300 миллисекунд подает val = 0
при удержании с выключенного положения больше 300 миллисекунд начинает прибавлять значение val (скажем прибавили до 180)
при нажатии менее 300 мс val=0
при длительном нажатии начинает убавлять(скажем 150) совсем не светит почти
и при длительном нажатии опять начинает прибавлять...

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

 

int val = 0; // создаем переменную регулировки и определяем её значение
boolean button = false; // нажатие кнопки (пульта или клацалки)
boolean flag = false; // сработка кнопки
unsigned long timer = 0; // таймер с момента включения
unsigned long timerPress = 0; // таймер удержания кнопки
int gatePin = 3; // указываем пин который будем управлять затвором
int buttonPin = 5; // указываем пин кнопки
int regim = 0; // режим
int trend = 1; //направление переключения режимов в большую или меньшую сторону


void setup() {
  pinMode(buttonPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  timer = millis();

  button = digitalRead(buttonPin);

  // нажатие кнопки
  if (button == true) //если кнопка нажата ...
  {
    flag = true; //поднимаем флаг
    if (timer != timerPress) // и если таймеры не равны
    {
      timerPress = timer; //  то таймеру нажатия присваивается значение таймера
    }
  }
  //отпускание кнопки
  if (button == false && regim == 0 && flag == true && timer < (timerPress + 300) ) // если кнопка отжата и режим 0 и таймер меньше таймера нажатия на 300 мс
  {
    flag = false; // опускаем флаг
    regim  = 255; // режим равен 255
  }
  if (button == false && regim == 255 && flag == true && timer < (timerPress + 300) ) // если кнопка отжата и режим 255 и таймер меньше таймера нажатия на 300 мс
  {
    flag = false; // опускаем флаг
    regim  = 0; // режим равен 0
  }
  // ружимы
  if (regim == 0) {
    val = 0;
  }
  if (regim == 1) {
    val = 180;
  }
  if (regim == 2) {
    val = 180;
  }
  if (regim == 3) {
    val = 190;
  }
  if (regim == 4) {
    val = 200;
  }
  if (regim == 5) {
    val = 200;
  }
  if (regim == 6) {
    val = 210;
  }
  if (regim == 7) {
    val = 220;
  }
  if (regim == 8) {
    val = 230;
  }
  if (regim == 9) {
    val = 240;
  }
  if (regim == 10) {
    val = 255;
  }
  //вывод значения
  analogWrite(gatePin , val);
  //вывод в монитор
  Serial.print(" timer-");
  Serial.print (timer);
  Serial.print(" timerPress-");
  Serial.print (timerPress);
  Serial.print(" button-");
  Serial.print (button);
  Serial.print(" flag-");
  Serial.print (flag);
  Serial.print(" val-");
  Serial.println(val);
  //делея тут не будет в итоге
  delay(10);
}

монитор порта в скрине

 ткните носом в косяк

2017-07-03_02-14-24.png

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...