Не выводятся символы на дисплей

vladF
Offline
Зарегистрирован: 23.08.2016

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. Да-да, знаю, провода не аккуратные, но они не коротят друг с другом. Так же, всех их прозвонил, с ними всё нормально

arduinec
Offline
Зарегистрирован: 01.09.2015

Адрес у I2C-модуля точно 0x3F? Да и русскими буквами данный дисплей вряд ли будет писать.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

переменный резистор покрути. синенький такой. но сначала английский текст отправь для настройки

vladF
Offline
Зарегистрирован: 23.08.2016

Да, точно такой. С помощью скетча проверял. Пробовал и английские символы вывести, такая же картина. Очень похоже на режим тестирования(есть на этом дисплее) 

vladF
Offline
Зарегистрирован: 23.08.2016

Крутил, прямоугольники становятся ярче или тусклее 

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

vladF пишет:

Крутил, прямоугольники становятся ярче или тусклее 

прекрасно - дисплей рабочий.

осталось перепаять все сопли и проверить правильность подключения

vladF
Offline
Зарегистрирован: 23.08.2016

А где сопли? Осмотрел платки, сопли только там, где я напоял. Но везда контакт есть, а между собой они не коротят

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

vladF пишет:

А где сопли? Осмотрел платки, сопли только там, где я напоял. Но везда контакт есть, а между собой они не коротят

ты читаешь только то, что тебе выгодно и собрался торговаться?

можешь вообще ничего не делать.

Клапауций 232 пишет:

осталось перепаять все сопли и проверить правильность подключения

 

vladF
Offline
Зарегистрирован: 23.08.2016

А чем я торгуюсь-то? Я просто спрашиваю. Правильность подключения проверил, всё нормально. Думаю, что-то не то с либами. Уже написал продовцу, жду ответа

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

vladF, у вас странные представления о нормальном. Посмотрите на заводскую пайку как на втором скрине -вот это нормально. Точно так же и никак иначе должна выглядеть ваша пайка с противоположного конца разъёма. После этого тщательно промыть все места паек спиртом и только после этого можно подключать.

enjoyneering
enjoyneering аватар
Offline
Зарегистрирован: 05.09.2016

Попробуте вот эту библиотеку.

работает с нестандартными переходниками (с перепутанными ножками).

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, пин LCD поключен к P2 порту (6 ноге) PCF857416 пин LCD поключен к P3 порту (7 ноге) PCF8574 и тд.

вам надо "прозвонить" и узнать каим портам подключены пины LCD и записать их в последовательности

LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, P0, P1, P2, P3, P4, P5, P6, P7, POSITIVE);

 

вот тут подробнее расписал

 

enjoyneering
enjoyneering аватар
Offline
Зарегистрирован: 05.09.2016

vladF пишет:

Очень похоже на режим тестирования(есть на этом дисплее) 

Можно по подробнее про режим тестирования? Как в него войти? Заранее спасибо.

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

enjoyneering пишет:
vladF пишет:

Очень похоже на режим тестирования(есть на этом дисплее) 

Можно по подробнее про режим тестирования? Как в него войти? Заранее спасибо.

подключить питание

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

enjoyneering пишет:
Можно по подробнее про режим тестирования? Как в него войти?

При подаче на дисплей _только_ питания (без линий данных) - он входит в режим тестирования: строка "прямоугольников".

ps: У предыдущего оратора русский - не родной, поэтому он если и говорит правильно, то зачастую что-то ключевое умалчивает...

enjoyneering
enjoyneering аватар
Offline
Зарегистрирован: 05.09.2016

Спасибо, не знал о такой фиче.

diger67
Offline
Зарегистрирован: 25.07.2015

Советов и рассуждений море. По внешним проявлениям индикатор просто не инициализируется. Для начала надо понять исправен или подключен правильно модуль I2C-parallel. Да и выяснить исправен ли сам индикатор. Бывало в практике такое что подключив питание видел засветку мтриц вехнего ряда, а инициализировав его не получал ожидаемого результата, все оставалось в исходном.

enjoyneering
enjoyneering аватар
Offline
Зарегистрирован: 05.09.2016

enjoyneering пишет:

Попробуте вот эту библиотеку.

работает с нестандартными переходниками (с перепутанными ножками).

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, пин LCD поключен к P2 порту (6 ноге) PCF857416 пин LCD поключен к P3 порту (7 ноге) PCF8574 и тд.

вам надо "прозвонить" и узнать каим портам подключены пины LCD и записать их в последовательности

LiquidCrystal_I2C lcd(PCF8574_ADDR_A21_A11_A01, P0, P1, P2, P3, P4, P5, P6, P7, POSITIVE);

 

вот тут подробнее расписал

 

 

возмите пример из этой либы. он пишет в терминал если есть проблемы с подключение i2c переходника

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

vladF пишет:
А чем я торгуюсь-то? Я просто спрашиваю. Правильность подключения проверил, всё нормально. Думаю, что-то не то с либами. Уже написал продовцу, жду ответа

А наче, что вы русские буквы пытаетесь печатать. lcd.print("Прив");

ПРИВЕТ :-)

diger67
Offline
Зарегистрирован: 25.07.2015

Okmor пишет:

vladF пишет:
А чем я торгуюсь-то? Я просто спрашиваю. Правильность подключения проверил, всё нормально. Думаю, что-то не то с либами. Уже написал продовцу, жду ответа

А наче, что вы русские буквы пытаетесь печатать. lcd.print("Прив");

ПРИВЕТ :-)

И че, ну если нет перекодировки в либе под карилицу, то и будут выводится кракозябры. Но это не значит что выводя русские символы вы увидите все засвеченные точки во всех знакоместах в первой строке.

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

diger67 пишет:
И че, ну если нет перекодировки в либе под карилицу, то и будут выводится кракозябры. Но это не значит что выводя русские символы вы увидите все засвеченные точки во всех знакоместах в первой строке.

Я раньше тоже так думал. Вы попробуйте и отпишитесь. Тогда будем искать причину в другом месте.

При поиске проблемного места, всегда исключайте из кода все, что не касается сути. Выбрасывайте не жалея даже те куски кода, в которых уверенны на 100%. Так вы быстрее найдете проблемное место.

diger67
Offline
Зарегистрирован: 25.07.2015

Okmor пишет:

diger67 пишет:
И че, ну если нет перекодировки в либе под карилицу, то и будут выводится кракозябры. Но это не значит что выводя русские символы вы увидите все засвеченные точки во всех знакоместах в первой строке.

Я раньше тоже так думал. Вы попробуйте и отпишитесь. Тогда будем искать причину в другом месте.

При поиске проблемного места, всегда исключайте из кода все, что не касается сути. Выбрасывайте не жалея даже те куски кода, в которых уверенны на 100%. Так вы быстрее найдете проблемное место.

После инициализации и правильном уровне контрастности вывод любого символа приводит к записи значения из GCC. Поэтому сначала надо убедится в исправности индикатора и преобразователя и их правильной инициализации. А еще лучше начинать работу с изучения даташитлв на устройство.

papaha
Offline
Зарегистрирован: 26.01.2017

Была та же проблема: после заливки скетча светилась только одна строка с прямоугольниками и ничего не происходило. Причем не работали счетчи из примеров к библиотеке. Заработало после "озарения", когда увидел ваш код:

LiquidCrystal_I2C lcd(0x3F,16,2);  // Устанавливаем дисплей

Только в моих примерах было:

LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей

Поменял 0x27 на 0x3F и случилось чудо: все заработало! А про пайку... Они шутят. Пайка непричем.