Здравствуйте! Раньше программил на PHP, но тут, хоть и синтаксис похож все по другом, в частности исполнение в loop, а не последовательно как в PHP, никак не могу привыкнуть))) Поэтому прошу помощи. Суть такая. Есть некоторый код (я его максимально скоратил, чтобы не вдаваться в подробности): Код (C++): uint32_t timeButton; bool stateButtonUP; void setup() { Serial.begin(9600); Serial.println("Start..."); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); } void loop(){ testButton(2); //testButton(3); // !!!!если раскомментировать, то будут проблемы!!!! } int testButton(int PinButtonUP) { // Функция управления uint32_t timeNow = millis(); // Фиксируем нажатие кнопки UP // if( digitalRead(PinButtonUP) == HIGH && !stateButtonUP && ( timeNow - timeButton ) > 50 ){ stateButtonUP = true; Serial.println(" "); Serial.println(" "); Serial.println("********"); Serial.println("Press Button on PIN number"); Serial.println(PinButtonUP); } // Фиксируем отпускание кнопки UP // if( digitalRead(PinButtonUP) == LOW && stateButtonUP && ( timeNow - timeButton ) > 50 ){ stateButtonUP = false; Serial.println("Realse Button"); Serial.println("********"); } } Так вот, если запустить его как есть, с одним выводом функции testButton(2) http://prntscr.com/ex3jaq , то все работает как нужно, то есть при нажатии на кнопку на пине 2 происходит единичный вывод следующих строк в монитор: Start... ******** Press Button on PIN number 2 Realse Button ******** То есть фиксируется нажатие и отпускание кнопки, сколько кнопку не держи, вывод будет один раз. Если же я раскомментирую второе использование функции testButton(3) http://prntscr.com/ex3jig , то у Ардуино едет крыша и при нажатии на кнопку один раз он выводит в монитор сразу кучу нажатий http://prntscr.com/ex3i5r Я подозреваю, что проблема в том, что переменная bool stateButtonUP (состояние кнопки) задекларирована глобально и когда я раскомментирую вторую функцию, то она меняет ее состояние независимо от первой. Хотя могу и ошибаться. Прошу помощи! Заранее большое спасибо!