#1 2016-04-16 14:36:56

ArturBamb
Учасник
Зареєстрований: 2016-04-16
Повідомлень: 3

Однократное нажатие кнопок

Подскажите пожалуйста взял из другого скетча там работает именно однократное нажатие, в таком случае не работает в порт при зажатой кнопки постоянно валит 1 или 2, при отладке заметил что переменная knopka_a и knopka_b даже не переходит в 1! Что не так?

 
int button1 = 7;
int button2 = 8;

int knopka_a = 0;
int knopka_b = 0;



void setup () {
  Serial.begin(9600);
  pinMode(button1, INPUT);
  digitalWrite(button1, 1);
  pinMode(button2, INPUT);
  digitalWrite(button2, 1);
}
void loop () {


   if (digitalRead(button1) == 0 && knopka_a == 0) {
    knopka_a = 1;
  Serial.print("1"); 

    }
  if (digitalRead(button2) == 0 && knopka_b == 0) {
    knopka_b = 1;
  Serial.print("2");  
    }


  if (digitalRead(button1) == 1 && knopka_b == 1) knopka_b = 0;
  if (digitalRead(button2) == 1 && knopka_a == 1) knopka_a = 0;

  delay(100);
}

Остання редакція ArturBamb (2016-04-16 14:44:41)

Неактивний

#2 2016-04-16 14:42:24

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Однократное нажатие кнопок

knopka_a == 1;
исправить на
knopka_a = 1;
knopka_b =1;

Неактивний

#3 2016-04-16 14:45:33

ArturBamb
Учасник
Зареєстрований: 2016-04-16
Повідомлень: 3

Re: Однократное нажатие кнопок

NoName, Тоже самое, изначально так и было это я уже экспериментировал.
Так переменная переходит в истину но в порт дальше льет 1

Остання редакція ArturBamb (2016-04-16 14:47:40)

Неактивний

#4 2016-04-16 15:05:18

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Однократное нажатие кнопок

ну ладно смотрим алгоритм

void loop () {

если на входе 0  (кнопка нажата )и статус ноль то  
   if ((digitalRead(button1) == 0() && (knopka_a == 0)  {
   идем сюда и выводим 1
   knopka_a = 1;
  Serial.print("1"); 
    }

если  кнопка1 отпушена  на входе  1 но статус кнопки 2 в 1 то снимаем  признак кнопки 2
  if (digitalRead(button1) == 1 && knopka_b == 1) knopka_b = 0;
думаю что статусы попутали, пива хочу, не хочу ковырять чужой алгоритм,  )
точно так должно быть ????
 if (digitalRead(button1) == 1 && knopka_b == 1) knopka_b = 0;
 кнопка 1 но статус кнопки 2?
 
  delay(100);
}

Неактивний

#5 2016-04-16 15:10:26

ArturBamb
Учасник
Зареєстрований: 2016-04-16
Повідомлень: 3

Re: Однократное нажатие кнопок

NoName, Спасибо большое)) Понял о чем вы, исправил все работает, не заметил сразу)

Неактивний

#6 2016-04-16 15:26:12

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: Однократное нажатие кнопок

успеха, будьте внимательней )

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму