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 (), но это не помогло. Сначала я думал, что это проблема с проводкой, но это не так. Что я делаю не так?
Любая помощь была бы очень кстати, спасибо.
@animos_be, 👍1
Обсуждение1 ответ
lcd.setCursor(0, 0);
- вам действительно не нужна эта функция.lcd.clear()
всегда автоматически переводит курсор в положение (0,0).проверьте проводку. Код, кажется, правильный
Увеличьте задержку до 500 мс или более. Вам все равно не нужно писать на ЖК-дисплей быстрее, чем за 1 секунду
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- Как отобразить символ º на ЖК-дисплее?
- Путаница между SPI и I2C для SSD1306 OLED
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
- Не могу заставить 4 значный 7 сегментный дисплей показывать разные значения
- Сделать CS (chip select) для работаты в SPI (для и SD карты и OLED)
- Запуск 7-контактного OLED-дисплея с 4 контактами (I2C)
- Как отобразить переменные с плавающей запятой на OLED-дисплее (0,96 дюйма)
- Что я делаю не так?` ... вы не отлаживаете код логическим способом ... сначала выведите фиксированный текст, например "hello world", и увеличьте время задержки примерно до 2 секунд ... таким образом, вы исключаете возможность того, что значение millis() каким-то образом портит отображаемые значения ... он также позволяет использовать секундомер, чтобы определить, сколько итераций выполняется до возникновения проблемы, @jsotola