нужна подсказка по прагроммированию!!!!
- Войдите на сайт для отправки комментариев
[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
> как вообще это выглядит? Ну попытки разобраться.
Игра в гляделки. Гор смотрит на код, а код на Гора.
Я грешным делом подумал, что нужна подсказка по правильному написанию слова "ПРАГРОММИРОВАНИЮ"))
Я грешным делом подумал, что нужна подсказка по правильному написанию слова "ПРАГРОММИРОВАНИЮ"))
:)))))