Не выводятся символы на дисплей
- Войдите на сайт для отправки комментариев
Вс, 04/09/2016 - 21:22
Arduino uno r3. Дисплай http://ru.aliexpress.com/item/Free-Shiipping-1lot-2pcs-1pcs-1602-16x2-HD44780-Character-LCD-blue-1pcs-IIC-I2C-1602-Serial/32608734770.html?spm=2114.10010208.0.41.TuGZ1x&isOrigTitle=true . В комплекте шёл I2C модуль. Подключил, стал проверять. Использую следующий скетч:
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F,16,2); // Устанавливаем дисплей void setup() { lcd.begin(); lcd.backlight();// Включаем подсветку дисплея lcd.print("Прив"); //lcd.setCursor(8, 1); //lcd.print("LCD 1602"); } void loop() { // Устанавливаем курсор на вторую строку и нулевой символ. // lcd.setCursor(0, 1); // Выводим на экран количество секунд с момента запуска ардуины // lcd.print(millis()/1000); }
Но на дисплее появляются прямоугольники 5х8 пикселей. И они находятся только на одной строке. Что делать?
p.s. Да-да, знаю, провода не аккуратные, но они не коротят друг с другом. Так же, всех их прозвонил, с ними всё нормально
Адрес у I2C-модуля точно 0x3F? Да и русскими буквами данный дисплей вряд ли будет писать.
переменный резистор покрути. синенький такой. но сначала английский текст отправь для настройки
Да, точно такой. С помощью скетча проверял. Пробовал и английские символы вывести, такая же картина. Очень похоже на режим тестирования(есть на этом дисплее)
Крутил, прямоугольники становятся ярче или тусклее
Крутил, прямоугольники становятся ярче или тусклее
прекрасно - дисплей рабочий.
осталось перепаять все сопли и проверить правильность подключения
А где сопли? Осмотрел платки, сопли только там, где я напоял. Но везда контакт есть, а между собой они не коротят
А где сопли? Осмотрел платки, сопли только там, где я напоял. Но везда контакт есть, а между собой они не коротят
ты читаешь только то, что тебе выгодно и собрался торговаться?
можешь вообще ничего не делать.
осталось перепаять все сопли и проверить правильность подключения
А чем я торгуюсь-то? Я просто спрашиваю. Правильность подключения проверил, всё нормально. Думаю, что-то не то с либами. Уже написал продовцу, жду ответа
vladF, у вас странные представления о нормальном. Посмотрите на заводскую пайку как на втором скрине -вот это нормально. Точно так же и никак иначе должна выглядеть ваша пайка с противоположного конца разъёма. После этого тщательно промыть все места паек спиртом и только после этого можно подключать.
Попробуте вот эту библиотеку.
работает с нестандартными переходниками (с перепутанными ножками).
LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, 4, 5, 6, 16, 11, 12, 13, 14, POSITIVE);
где 4 пин LCD поключен к P0 порту (4 ноге) PCF8574, 5 пин LCD поключен к P1 порту (5 ноге) PCF8574, 6 пин LCD поключен к P2 порту (6 ноге) PCF8574, 16 пин LCD поключен к P3 порту (7 ноге) PCF8574 и тд.
вам надо "прозвонить" и узнать каим портам подключены пины LCD и записать их в последовательности
LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, P0, P1, P2, P3, P4, P5, P6, P7, POSITIVE);
вот тут подробнее расписал
Очень похоже на режим тестирования(есть на этом дисплее)
Можно по подробнее про режим тестирования? Как в него войти? Заранее спасибо.
Очень похоже на режим тестирования(есть на этом дисплее)
подключить питание
При подаче на дисплей _только_ питания (без линий данных) - он входит в режим тестирования: строка "прямоугольников".
ps: У предыдущего оратора русский - не родной, поэтому он если и говорит правильно, то зачастую что-то ключевое умалчивает...
Спасибо, не знал о такой фиче.
Советов и рассуждений море. По внешним проявлениям индикатор просто не инициализируется. Для начала надо понять исправен или подключен правильно модуль I2C-parallel. Да и выяснить исправен ли сам индикатор. Бывало в практике такое что подключив питание видел засветку мтриц вехнего ряда, а инициализировав его не получал ожидаемого результата, все оставалось в исходном.
Попробуте вот эту библиотеку.
работает с нестандартными переходниками (с перепутанными ножками).
LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, 4, 5, 6, 16, 11, 12, 13, 14, POSITIVE);
где 4 пин LCD поключен к P0 порту (4 ноге) PCF8574, 5 пин LCD поключен к P1 порту (5 ноге) PCF8574, 6 пин LCD поключен к P2 порту (6 ноге) PCF8574, 16 пин LCD поключен к P3 порту (7 ноге) PCF8574 и тд.
вам надо "прозвонить" и узнать каим портам подключены пины LCD и записать их в последовательности
LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, P0, P1, P2, P3, P4, P5, P6, P7, POSITIVE);
вот тут подробнее расписал
возмите пример из этой либы. он пишет в терминал если есть проблемы с подключение i2c переходника
А наче, что вы русские буквы пытаетесь печатать.
lcd.print(
"Прив"
);
ПРИВЕТ :-)
А наче, что вы русские буквы пытаетесь печатать.
lcd.print(
"Прив"
);
ПРИВЕТ :-)
Я раньше тоже так думал. Вы попробуйте и отпишитесь. Тогда будем искать причину в другом месте.
При поиске проблемного места, всегда исключайте из кода все, что не касается сути. Выбрасывайте не жалея даже те куски кода, в которых уверенны на 100%. Так вы быстрее найдете проблемное место.
Я раньше тоже так думал. Вы попробуйте и отпишитесь. Тогда будем искать причину в другом месте.
При поиске проблемного места, всегда исключайте из кода все, что не касается сути. Выбрасывайте не жалея даже те куски кода, в которых уверенны на 100%. Так вы быстрее найдете проблемное место.
Была та же проблема: после заливки скетча светилась только одна строка с прямоугольниками и ничего не происходило. Причем не работали счетчи из примеров к библиотеке. Заработало после "озарения", когда увидел ваш код:
Только в моих примерах было:
Поменял 0x27 на 0x3F и случилось чудо: все заработало! А про пайку... Они шутят. Пайка непричем.