Дисплей LCD5110

Гриша
Offline
Зарегистрирован: 27.04.2014

skyspirit пишет:

Благодарю! буду переваривать дальше :)

там нечего переваривать :) все пережевано   :))))))) когда поймете, будете широко улыбаться, а пока учитесь

skyspirit
Offline
Зарегистрирован: 27.02.2015

:)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

А лучше  http://arduino.ru/Reference/SwitchCase    применяйте.

Тогда проще понять и добавлять будет.

skyspirit
Offline
Зарегистрирован: 27.02.2015

Пишет страница не найдена по ссилке

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Гриша пишет:

int k;

if (k=1){

}

else......

т.е. так как и влюбом другом случае... значение "к" = нажатия кнопки :) 

Специально для таких случаев придумали конструкцию switch-case.

Гриша
Offline
Зарегистрирован: 27.04.2014

andriano пишет:

Специально для таких случаев придумали конструкцию switch-case.

чрезвычайно редко пишу коды :) чаще ремонт железа, а arduino - для меня, средство от ржавчины в мозгах, привык я к if and for и чтоб в loop минимум строк - все делю на подпрограммы, дебагить легче. А вот  switch-case для меня - простое сокращение записи и т.к. не знаю ограничений для этого оператора мне не доводилось его использовать... 

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

Гриша пишет:

чрезвычайно редко пишу коды :) чаще ремонт железа, а arduino - для меня, средство от ржавчины в мозгах, привык я к if and for и чтоб в loop минимум строк - все делю на подпрограммы, дебагить легче. А вот  switch-case для меня - простое сокращение записи и т.к. не знаю ограничений для этого оператора мне не доводилось его использовать... 

в большинстве случаев более оптимально по скорости исполнения - т.к. не происходит обязательный перебор всех вариантов значений переменной, как в случае применения if.

skyspirit
Offline
Зарегистрирован: 27.02.2015
int k;
void button()
{
  смотрим кнопку
}


обозначение 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.... 
 }

Мне бы проще было разобратся если бы  подписывали какая переменная за что отвечает каие действия, я понимаю что это тупые вопросы но вспомните себя когда вы этого не знали

      
Гриша
Offline
Зарегистрирован: 27.04.2014

skyspirit пишет:

Мне бы проще было разобратся если бы  подписывали какая переменная за что отвечает каие действия, я понимаю что это тупые вопросы но вспомните себя когда вы этого не знали



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 класс (в смысле алгоритма, тока названия другие)   :))))))))))))))

Гриша
Offline
Зарегистрирован: 27.04.2014

забываем обо всем, что уже сделано! пишем программу чисто для кнопки!!! в этой программе мы будем смотреть в мониторе порта значение нашей переменной  на компьютере.  

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

4) и 5)  -  в последнем  case  делаем  к=0

Гриша
Offline
Зарегистрирован: 27.04.2014

trembo пишет:

4) и 5)  -  в последнем  case  делаем  к=0

подробнее пожалуйста (двойной смысл поста)! это начнет само крутить экраны, а если по кнопке, то в подпрограмме кнопки делаем проверку и если после инкремента получаем условие к>х то к=0, или я не понял смысл поста

мы выполняем loop по кругу и если в case засунуть изменение к, то это будет выкидывать из экрана...

либо, при сбое к>х+1 будет глюк т.е. необходимо озаботиться, чтобы при любых раскладах выполнгялось одно из условий

строго говоря всегда можно найти несколько решений этой задачи, главное выполнить их все... ну не пользовался я  case всех тонкостей не знаю и вообще, я много чего не знаю :)

skyspirit
Offline
Зарегистрирован: 27.02.2015

...