нужна подсказка по прагроммированию!!!!
- Войдите на сайт для отправки комментариев
[code] int regim = 1; int flag = 0; void setup() { pinMode(10, OUTPUT); pinMode(9, OUTPUT); } void loop() { Serial.begin(9600); if (digitalRead(8) == HIGH && flag == 0) //если кнопка нажата // и перемення flag равна 0 , то ... { regim++; flag = 1; //это нужно для того что бы с каждым нажатием кнопки //происходило только одно действие // плюс защита от "дребезга" 100% if (regim > 4) //ограничим количество режимов { regim = 1; //так как мы используем только одну кнопку, // то переключать режимы будем циклично } } if (digitalRead(8) == LOW && flag == 1) //если кнопка НЕ нажата //и переменная flag равна - 1 ,то ... { flag = 0; //обнуляем переменную "knopka" } if (regim == 1) //первый режим { digitalWrite(9, LOW); //выключаем все светодиоды digitalWrite(10, LOW); Serial.print("00"); //здесь может быть любое ваше действие } if (regim == 2) //второй режим { digitalWrite(10, HIGH); //включае красный светодиод digitalWrite(9, LOW); Serial.print("10"); } if (regim == 3) //третий режим { digitalWrite(9, HIGH); //включае зеленый светодиод digitalWrite(10, LOW); Serial.print("01"); //здесь может быть любое ваше действие } if (regim == 4) //четвертый режим { digitalWrite(9, HIGH); //включаем светодиоды одновременно digitalWrite(10, HIGH); Serial.print("11"); //здесь может быть любое ваше действие } } [/code]
есть мега2560,два светодиода на 9 и 10 пинах, и кнопка на 8 .
при включении диоды не горят, нажал кнопку ,первый диод загорелся, нажал кнопку-первый погас, второй загорелся, нажал кнопку-загорелись два диода. нажал кнопку, погасли...и так по кругу.....решил попробовать передавать на комп сообщения на монитор последовательного порта, приходит вместо "00","10",01","11" , какие то хаотичные символы, во вторых-доходит до первого сообщения и или зависает, или останавливается. Если удаляю первый, доходит до следующего состояния и опять виснет. Вопрос, что не так????. И еще, в программе изначально сказано, что меня flag на 1, «/это нужно для того что бы с каждым нажатием кнопки //происходило только одно действие // плюс защита от "дребезга" 100%».
Но проходит секунда три ,прежде чем, можно опять переключить режим…. Вопрос ,откуда такая задержка??? Как ускорить время реакции на нажатие кнопки. Я третий день как пытаюсь разобраться, поэкспериментировать с Arduino. Если что,,,,,извеняйте;))
защиты от дребезга здесь нет вообще.
у меня такой код работал нормально
У вас программа построена не верно, она будет "дрючить" Serial пока он не "отвалится". Нужно ограничить вывод - только при изменении переменной regim а не постоянно как сейчас. И убрать настройку порта в setup, в цикле ее не должно быть.
Все хотел спросить, что это значит, третий день пытаюсь разобраться. .. как вообще это выглядит? Ну попытки разобраться.
Для начала https://www.arduino.cc/en/Reference/SwitchCase
> как вообще это выглядит? Ну попытки разобраться.
Игра в гляделки. Гор смотрит на код, а код на Гора.
Я грешным делом подумал, что нужна подсказка по правильному написанию слова "ПРАГРОММИРОВАНИЮ"))
Я грешным делом подумал, что нужна подсказка по правильному написанию слова "ПРАГРОММИРОВАНИЮ"))
:)))))