Специально для таких случаев придумали конструкцию switch-case.
чрезвычайно редко пишу коды :) чаще ремонт железа, а arduino - для меня, средство от ржавчины в мозгах, привык я к if and for и чтоб в loop минимум строк - все делю на подпрограммы, дебагить легче. А вот switch-case для меня - простое сокращение записи и т.к. не знаю ограничений для этого оператора мне не доводилось его использовать...
чрезвычайно редко пишу коды :) чаще ремонт железа, а arduino - для меня, средство от ржавчины в мозгах, привык я к if and for и чтоб в loop минимум строк - все делю на подпрограммы, дебагить легче. А вот switch-case для меня - простое сокращение записи и т.к. не знаю ограничений для этого оператора мне не доводилось его использовать...
в большинстве случаев более оптимально по скорости исполнения - т.к. не происходит обязательный перебор всех вариантов значений переменной, как в случае применения if.
обозначение int k ето условное значение или обязательное, так как в других примерах кнопка задается как int button = 12;
и "смотреть кнопку" это if (digitalRead(button) == HIGH) ?
в плане картинки это подразумивается ?
myGLCD.setFont(SmallFont);
myGLCD.print("Humidity", CENTER, 0); // задаем влажность с DHT22
myGLCD.print("%", 60, 20);
myGLCD.setFont(MediumNumbers);
myGLCD.printNumF(h, 0, 5, 20);// показания влажности
myGLCD.update(); // Вывод вместимого буфера на дисплей
delay (500); // Задержка 0,5 с
И эти действия несовсем понятны а именно :
millis............. // пауза, если нужно
clearDisplay(); // чистим экран - это подпрограмма, если нужно
if (k==0)
void loop()
{
button(); // кнопка
if (k==0)
{
display1();
millis............. // пауза, если нужно
clearDisplay(); // чистим экран - это подпрограмма, если нужно
}
else if (k==1)
{
display2();
millis............. // пауза, если нужно
clearDisplay(); // чистим экран - это подпрограмма, если нужно
}
else if....
}
Мне бы проще было разобратся если бы подписывали какая переменная за что отвечает каие действия, я понимаю что это тупые вопросы но вспомните себя когда вы этого не знали
Мне бы проще было разобратся если бы подписывали какая переменная за что отвечает каие действия, я понимаю что это тупые вопросы но вспомните себя когда вы этого не знали
1) объявляем глобальную переменную (к примеру "k" т.к. "i" често занята...)
2) при запуске устройства присваеиваем k=0 чтоб непоняток небыло...
3) если нажали кнопку k=k+1 , прибавляем значение
4) сколько экранов = к-1 (пусть в нашем тексте будет "х") т.к. к может быть 0
5) как только при нажатии к+1>x , делаем к=0 - получаем круг
6) в loop записываем алгоритм (последовательность) выполнения подпрограмм
а) проверяем кнопку т.е. устанавливаем значение нашей переменной "к"
б) сравниваем значение "к" if(k==0) выполняем подпрограмму display0();
а остальные (экраны) выполнять не будем
в) думаем какие еще подпронграммы у нас есть и куда их поставить в нашем алгоритме.
PS видел у сына в учебнике подобную задачу по информатике "школа 2000" 4 класс (в смысле алгоритма, тока названия другие) :))))))))))))))
забываем обо всем, что уже сделано! пишем программу чисто для кнопки!!! в этой программе мы будем смотреть в мониторе порта значение нашей переменной на компьютере.
подробнее пожалуйста (двойной смысл поста)! это начнет само крутить экраны, а если по кнопке, то в подпрограмме кнопки делаем проверку и если после инкремента получаем условие к>х то к=0, или я не понял смысл поста
мы выполняем loop по кругу и если в case засунуть изменение к, то это будет выкидывать из экрана...
либо, при сбое к>х+1 будет глюк т.е. необходимо озаботиться, чтобы при любых раскладах выполнгялось одно из условий
строго говоря всегда можно найти несколько решений этой задачи, главное выполнить их все... ну не пользовался я case всех тонкостей не знаю и вообще, я много чего не знаю :)
Благодарю! буду переваривать дальше :)
там нечего переваривать :) все пережевано :))))))) когда поймете, будете широко улыбаться, а пока учитесь
:)
А лучше http://arduino.ru/Reference/SwitchCase применяйте.
Тогда проще понять и добавлять будет.
Пишет страница не найдена по ссилке
http://arduino.ru/Reference/SwitchCase
int k;
if (k=1){
}
else......
т.е. так как и влюбом другом случае... значение "к" = нажатия кнопки :)
Специально для таких случаев придумали конструкцию switch-case.
чрезвычайно редко пишу коды :) чаще ремонт железа, а arduino - для меня, средство от ржавчины в мозгах, привык я к if and for и чтоб в loop минимум строк - все делю на подпрограммы, дебагить легче. А вот switch-case для меня - простое сокращение записи и т.к. не знаю ограничений для этого оператора мне не доводилось его использовать...
чрезвычайно редко пишу коды :) чаще ремонт железа, а arduino - для меня, средство от ржавчины в мозгах, привык я к if and for и чтоб в loop минимум строк - все делю на подпрограммы, дебагить легче. А вот switch-case для меня - простое сокращение записи и т.к. не знаю ограничений для этого оператора мне не доводилось его использовать...
в большинстве случаев более оптимально по скорости исполнения - т.к. не происходит обязательный перебор всех вариантов значений переменной, как в случае применения if.
в плане картинки это подразумивается ?
И эти действия несовсем понятны а именно :
millis............. // пауза, если нужно
clearDisplay(); // чистим экран - это подпрограмма, если нужно
if (k==0)
Мне бы проще было разобратся если бы подписывали какая переменная за что отвечает каие действия, я понимаю что это тупые вопросы но вспомните себя когда вы этого не знали
Мне бы проще было разобратся если бы подписывали какая переменная за что отвечает каие действия, я понимаю что это тупые вопросы но вспомните себя когда вы этого не знали
1) объявляем глобальную переменную (к примеру "k" т.к. "i" често занята...)
2) при запуске устройства присваеиваем k=0 чтоб непоняток небыло...
3) если нажали кнопку k=k+1 , прибавляем значение
4) сколько экранов = к-1 (пусть в нашем тексте будет "х") т.к. к может быть 0
5) как только при нажатии к+1>x , делаем к=0 - получаем круг
6) в loop записываем алгоритм (последовательность) выполнения подпрограмм
а) проверяем кнопку т.е. устанавливаем значение нашей переменной "к"
б) сравниваем значение "к"
if
(k==0) выполняем подпрограмму
display0();а остальные (экраны) выполнять не будем
в) думаем какие еще подпронграммы у нас есть и куда их поставить в нашем алгоритме.
PS видел у сына в учебнике подобную задачу по информатике "школа 2000" 4 класс (в смысле алгоритма, тока названия другие) :))))))))))))))
забываем обо всем, что уже сделано! пишем программу чисто для кнопки!!! в этой программе мы будем смотреть в мониторе порта значение нашей переменной на компьютере.
4) и 5) - в последнем case делаем к=0
4) и 5) - в последнем case делаем к=0
подробнее пожалуйста (двойной смысл поста)! это начнет само крутить экраны, а если по кнопке, то в подпрограмме кнопки делаем проверку и если после инкремента получаем условие к>х то к=0, или я не понял смысл поста
мы выполняем loop по кругу и если в case засунуть изменение к, то это будет выкидывать из экрана...
либо, при сбое к>х+1 будет глюк т.е. необходимо озаботиться, чтобы при любых раскладах выполнгялось одно из условий
строго говоря всегда можно найти несколько решений этой задачи, главное выполнить их все... ну не пользовался я case всех тонкостей не знаю и вообще, я много чего не знаю :)
...