Объясните непонятливому по LCD1602

leks
Offline
Зарегистрирован: 22.10.2017

К праздникам сделал кубическую переключалку на ws2812b с акустическим датчиком управления , захотелось добавить ещё и экран... для тренировки забил скетч пересчёта от 1 до 25 через секунду - не высвечивает пересчёт, а почему?

#include <LiquidCrystal.h>  // Добавляем необходимую библиотеку
LiquidCrystal lcd(8, 7, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)
int n=0; int k;
void setup(){ 
  lcd.begin(16, 2);                  // Задаем размерность экрана
 
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("PROGR. DLITEL.");       // Выводим текст
 
}
 
void loop()
{
 
for (k=0;k>=25;k++)
 {
  n++;
  lcd.setCursor(0, 1);   // Устанавливаем курсор в начало 2 строки
  lcd.print(n);          // Выводим текст 
  delay(1000);
 if(n==25){n=0;lcd.setCursor(1, 1);lcd.print(" ");}
 }
}

Но пишу так и всё работает.

#include <LiquidCrystal.h>  // Добавляем необходимую библиотеку
LiquidCrystal lcd(8, 7, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)
int n=0; int k;
void setup(){ 
  lcd.begin(16, 2);                  // Задаем размерность экрана
 
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("PROGR. DLITEL.");       // Выводим текст
 
}
 
void loop()
{
 

 {
  n++;
  lcd.setCursor(0, 1);   // Устанавливаем курсор в начало 2 строки
  lcd.print(n);          // Выводим текст 
  delay(1000);
 if(n==25){n=0;lcd.setCursor(1, 1);lcd.print(" ");}
 }
}

В цикле loop() да, внутри ещё одного цикла нет?! Где я недопонимаю ?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Посмотрите на операцию сравнения в строке 15 первого скетча. Вас там ничто не смущает?

leks
Offline
Зарегистрирован: 22.10.2017

Ёжки матрёшки... счас перебью и пересмотрю, а то совсем удивлённый сижу.

leks
Offline
Зарегистрирован: 22.10.2017
#include <LiquidCrystal.h>  // Добавляем необходимую библиотеку
LiquidCrystal lcd(8, 7, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)
int n=0; int k;
void setup(){ 
  lcd.begin(16, 2);                  // Задаем размерность экрана
 
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("PROGR. DLITEL.");       // Выводим текст
 
}
 
void loop()
{
 
for (n=0;n<=25;n++)
 {
 
  lcd.setCursor(0, 1);   // Устанавливаем курсор в начало 2 строки
  lcd.print(n);          // Выводим текст 
  delay(1000);
 if(n==25){n=0;lcd.setCursor(1, 1);lcd.print(" ");}
 }
}

Заработала, спасибо, не увидел бы сам и весь день мучился что делать и кто виноват?