Подстановка слова в Serial.print вместо значения выхода

Zero-Botanik
Zero-Botanik аватар
Offline
Зарегистрирован: 02.11.2019

Доброго дня.

Пишу код про кнопку, на мониторе порта проверяю - вывожу значение 1 или 0 кнопки.

Захотел поменять на слова "нажата" или "отжата". И не получается ((

Код, который прекрасно работает:

int buttonPin = A0;

boolean button;
boolean prev_button;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
  prev_button = 1;
}

void loop() {
  button = digitalRead(buttonPin);
  
  if (button != prev_button)
  {  
  delay(5);
  Serial.print("Кнопка сработала, сейчас: ");
  Serial.println(button);
    
  prev_button = button;
  }

}

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

int buttonPin = A0;

boolean button;
boolean prev_button;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
  prev_button = 1;
}

void loop() {
  button = digitalRead(buttonPin);
  
  if (button != prev_button)
  {  
  delay(5);
  Serial.print("Кнопка сработала, сейчас: ");
    if (button = 1)
    {
      Serial.println("отжата");
    }
    else 
    {
      Serial.println("нажата");
    }
    
  prev_button = button;
  }

}

Подскажите, что я упустил?

b707
Offline
Зарегистрирован: 26.05.2017

ошибка в 19 строке, в скобках у вас не логический оператор, а присваивание

Zero-Botanik
Zero-Botanik аватар
Offline
Зарегистрирован: 02.11.2019

ну конечно же! ))

спасибо!

два часа уже смотрю и не вижу, даже решился написать ..

Гриша
Offline
Зарегистрирован: 27.04.2014

b707 пишет:

ошибка в 19 строке, в скобках у вас не логический оператор, а присваивание

грабли новичков :))))))))))))))))

sadman41
Offline
Зарегистрирован: 19.10.2016

Пишите if (1 = button) и компилятор не допустит такой дребедени в коде.

Zero-Botanik
Zero-Botanik аватар
Offline
Зарегистрирован: 02.11.2019

если б я не знал об этом!

но не помогло )))