Тот же код, но другой вывод в Arduino - PullRequest
4 голосов
/ 19 июня 2019

В последнее время я разрабатываю программу с использованием Arduino UNO.Код, который я пишу для двух кнопок, полностью одинаков, но вывод отличается.

Вот код, который я пишу.

const int BUTTON1 = 6;
const int BUTTON2 = 7;
String i, j, x;

int ButtonState = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(BUTTON1, INPUT_PULLUP);
  pinMode(BUTTON2, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(BUTTON1) == LOW) {
    delay(500);
    i = "1";
    Serial.println(i);
  } 
  if (digitalRead(BUTTON2) == LOW) {
    delay(500);
    j = "2";
    Serial.println(j);
  } 
  else {
    delay(500);
    x = "0";
    Serial.println(x);
  }
}

Когда я продолжаю нажимать кнопку 1, вывод будет 1 0 10 1 0 1 0

И когда я продолжаю нажимать кнопку2, выходной сигнал будет равен 2 2 2 2 2 2 2

Как я могу сделать так, чтобы выход button1 совпадал с выходом button2?

1 Ответ

4 голосов
/ 19 июня 2019

Как сделать так, чтобы выход button1 совпадал с выходом button2?

Вы получаете 1 0 1 0 1 0 1 0 для button 1, потому что сначала if, а затем elseБлок будет выполняться каждый раз при нажатии button1.

Добавить else ко второму if.

if (digitalRead(BUTTON1) == LOW) {
    delay(500);
    i = "1";
    Serial.println(i);
  } 
  else if (digitalRead(BUTTON2) == LOW) {
    delay(500);
    j = "2";
    Serial.println(j);
  } 
  else {
    delay(500);
    x = "0";
    Serial.println(x);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...