serial monitor
- Войдите на сайт для отправки комментариев
Сб, 25/05/2019 - 01:06
Здравствуйте
Почему serial печатает только 1000, должен печатать 500, когда LED1 светит ?
int LED1 = PB15; int button = PB12; //int button = PB12; int LED2 = PC13; boolean LED1State = false; boolean LED2State = false; long buttonTimer = 0; //long longPressTime = 250; long longPressTime = 1000; boolean buttonActive = false; boolean longPressActive = false; void setup() { pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); //pinMode(button, INPUT); pinMode(button, INPUT_PULLDOWN); //Serial.begin(115200); Serial.begin(9600); } void loop() { if (digitalRead(button) == HIGH) { if (buttonActive == false) { buttonActive = true; buttonTimer = millis(); } if ((millis() - buttonTimer > longPressTime) && (longPressActive == false)) { longPressActive = true; digitalWrite(LED1, 1); } } else { digitalWrite(LED1, 0); if (buttonActive == true) { if (longPressActive == true) { longPressActive = false; } else buttonActive = false; } } //////////////////////// if (LED1 == 1) { Serial.println(500); } else { Serial.println(1000); } ///////////////////// }
А c чего ему печать 500? Вы как присвоили LED1 значение PB15 так оно и остается. А это явно не единица.
Потому что переменная LED1 никогда не будет равна 1.
1=HIGH= LED1 светит , 0= LOW = LED1 не светит
Вы нигде не присваиваете переменной LED1 единицу. Зажигание светодиода не означает, что в переменную запишется единица. Она хранит номер пина, а не его состояние.
LED1 = PB15
сделал так, печатает только а
digitalWrite(LED1, 0) LED1 не светит
digitalWrite(LED1, 1); LED1 светит
Тут НЕТ присваивания, это передача аргументов в функцию. Читайте азы программирования.
значение 0 или 1
значение 0 или 1
Значение передаётся в функцию digitalWrite, а не в переменную LED1.
Нет, получается if (PB15 == 1)
Valera19701
Спасибо, работает
Valera19701
Спасибо, работает
Не верю. код покажите.
Судя по обсуждению - вы ничего так и не поняли