Arduino lcd отображает случайные символы

Я подключил arduino Nano Every к LCD. Он отлично работает, когда я помещаю весь свой код в часть setup (). Но когда я помещаю код в loop (), он делает вещи werid. Я должен поместить свой код в loop(), потому что я читаю данные из тензодатчика и отображаю значения, которые постоянно меняются. Задержка не может быть больше 250 мс.

Это хорошо работает.

#include <LiquidCrystal.h> 
int Contrast=30;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
 
void setup(){
    analogWrite(6,Contrast);
    lcd.begin(16, 2);
    lcd.setCursor(0, 0);
    lcd.print("testing");
} 
  
void loop(){ 


 } 

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

#include <LiquidCrystal.h> 
int Contrast=30;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
 
void setup(){
    analogWrite(6,Contrast);
    lcd.begin(16, 2);
    lcd.setCursor(0, 0);
    
} 
  
void loop(){
  
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(millis()/1000);
  delay(250);
 }

Я попытался удалить lcd.clear (), но это не помогло. Сначала я думал, что это проблема с проводкой, но это не так. Что я делаю не так?

Любая помощь была бы очень кстати, спасибо.

, 👍1

Обсуждение

- Что я делаю не так?` ... вы не отлаживаете код логическим способом ... сначала выведите фиксированный текст, например "hello world", и увеличьте время задержки примерно до 2 секунд ... таким образом, вы исключаете возможность того, что значение millis() каким-то образом портит отображаемые значения ... он также позволяет использовать секундомер, чтобы определить, сколько итераций выполняется до возникновения проблемы, @jsotola


1 ответ


2
  1. lcd.setCursor(0, 0); - вам действительно не нужна эта функция. lcd.clear() всегда автоматически переводит курсор в положение (0,0).

  2. проверьте проводку. Код, кажется, правильный

  3. Увеличьте задержку до 500 мс или более. Вам все равно не нужно писать на ЖК-дисплей быстрее, чем за 1 секунду

,