Відповісти

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

Назад

Огляд теми (нові повідомленні вгорі)

NoName
2016-04-16 15:26:12

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

ArturBamb
2016-04-16 15:10:26

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

NoName
2016-04-16 15:05:18
ну ладно смотрим алгоритм

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);
}
ArturBamb
2016-04-16 14:45:33

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

NoName
2016-04-16 14:42:24

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

ArturBamb
2016-04-16 14:36:56

Подскажите пожалуйста взял из другого скетча там работает именно однократное нажатие, в таком случае не работает в порт при зажатой кнопки постоянно валит 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);
}

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