Проблема с выводом ( LCD 1602 )

Bright_Darkness
Offline
Зарегистрирован: 25.02.2012

Доброго Вам времени суток! У меня проблема с выводом символов на экран. Я использую 1602 LCD Module.

Подключал так:

Контакт дисплея   Контакт Arduino    Значение
  1                            GND                        Vss
  2                            5V                           Vdd
  3                            GND                        Vo (контрастность)
  4                            digital 12                 RS
  5                            digital 11                 R/W
  6                            digital 10                 ENABLE
  11                          digital 5                   DB4
  12                          digital 4                   DB5
  13                          digital 3                   DB6
  14                          digital 2                   DB7
  15                          5V                            LED+
  16                          GND                         LED-

Вот программа:

#include <LiquidCrystal.h>
 LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

 void setup() {
   lcd.begin(16, 2);
   lcd.print("Hello, world!");
 }

 void loop() {
 }

В итоге получаю:

За ранее спасибо!

mitos
Offline
Зарегистрирован: 11.12.2011

У меня  5 нога экрана на gnd и в строчка выглядит    LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

Bright_Darkness
Offline
Зарегистрирован: 25.02.2012

Сделал как Вы сказали, но к сожалению ничего не изменилось.

mitos
Offline
Зарегистрирован: 11.12.2011

Самое правильное снять все провода и подключить еще раз , и желательно на другом месте матрицы .

От одного плохого контакта может быть много разных проблем.

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

 

chaytan
Offline
Зарегистрирован: 02.02.2012

 

подключался вот так-

LCD Pin Символ Назначение Arduino Pin
1 Vss Общий (0 V) Общий (0 V)
2 Vdd Питание (4.5 – 5.5 V) +5V
3 Vo Управ. контрастностью 9
4 RS H/L register select signal 12
5 R/W H/L read/write signal Общий (0 V)
6 E H/L enable signal 11
11 DB4 H/L data bus for 4-bit mode 5
12 DB5 H/L data bus for 4--bit mode 4
13 DB6 H/L data bus for 4-bit mode 3
14 DB7 H/L data bus for 4-bit mode 2 
 

Схема подключения:
* LCD RS пин к цифр. выходу 12
* LCD Enable пин к цифр. выходу 11
* LCD R/W к Общему
* LCD VO пин (пин 3) к ШИМ-выходу 9
* LCD D4 пин к цифр. выходу 5
* LCD D5 пин к цифр. выходу 4
* LCD D6 пин к цифр. выходу 3
* LCD D7 пин к цифр. выходу 2

*/

#include <liquidcrystal.h> // подключаем библиотеку

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // инициализация библиотеки с перечнем задействованных выводов

void setup() {
pinMode(9, OUTPUT);
analogWrite(9, 50); // устанавливаем ШИМ выход
lcd.begin(16, 2); // устанавливаем кол-во столбцов и строк
lcd.print(" HobbyTronics"); // печать сообщения на LCD
}

void loop() {
// устанавливаем курсор в 0-ом столбце, 1 строка (начинается с 0)
lcd.setCursor(0, 1);
lcd.print(millis()/1000); // печать числа секунд после сброса
}
</liquidcrystal.h>

Zapek@n
Offline
Зарегистрирован: 16.02.2012

 А чтой-то за конструкция в конце </liquidcrystal.h> ?

achechet
Offline
Зарегистрирован: 04.02.2012

В скетче не видно начала комментария

chaytan
Offline
Зарегистрирован: 02.02.2012
*/

#include <liquidcrystal.h> // подключаем библиотеку

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // инициализация библиотеки с перечнем задействованных выводов

void setup() {
 pinMode(9, OUTPUT); 
 analogWrite(9, 50); // устанавливаем ШИМ выход 
 lcd.begin(16, 2); // устанавливаем кол-во столбцов и строк
 lcd.print(" HobbyTronics"); // печать сообщения на LCD
 }

void loop() {
 // устанавливаем курсор в 0-ом столбце, 1 строка (начинается с 0)
 lcd.setCursor(0, 1);
 lcd.print(millis()/1000); // печать числа секунд после сброса
 }

 

achechet
Offline
Зарегистрирован: 04.02.2012

 */

Это конец комментария.

Что они там делают? Зачисти. Да и ШИМ  убери. Просто через потенциометр запитай, для начала.

 

chaytan
Offline
Зарегистрирован: 02.02.2012

achechet пишет:

 */

Это конец комментария.

Что они там делают? Зачисти. Да и ШИМ  убери. Просто через потенциометр запитай, для начала.

 

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

achechet
Offline
Зарегистрирован: 04.02.2012

Тогда играйся...!

Прикольно.

Bright_Darkness
Offline
Зарегистрирован: 25.02.2012

mitos пишет:

Самое правильное снять все провода и подключить еще раз , и желательно на другом месте матрицы .

От одного плохого контакта может быть много разных проблем.

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

 

Проблема была в ножках экрана. В итоге поприпаивал намертво.

 

Diemon
Offline
Зарегистрирован: 18.11.2011

 Попробуйте русский язык на дисплее. ибо у меня такой же, и русского к сожалению нет(

chaytan
Offline
Зарегистрирован: 02.02.2012

спаял себе был вчера платку, для подключения дисплея по i2C.

включаю и наблюдаю туже картину что и в начале темы... пересмотрел.... прозвонил всё.... неработает... хотя при перезагрузке видко что реагирует... а на экране полоса по первому ряду....

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

по утру дай думаю розсмотрю повнимательнее...

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

припаял... включил... заработало...

ух..... отлягло...

сегодня прикупил еще один дисплей, 20*4 и еще пару микрух росширителей.... 

vworld
vworld аватар
Offline
Зарегистрирован: 26.09.2011

поясните пожалуйста мне...сейчас подключен ЛСД через потенциометр, но хотелось бы попробовать программно управлять, но я ушел от "нормального" подключения ЛСД в сторону регистра сдвига и использования библиотеки LCD3wire

basilblinov
Offline
Зарегистрирован: 02.06.2013

А кто может ответить.... Можно ли менять пины на ардуино для lcd дисплея??? Например, мне надо освободить пины 2 и 3???

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

basilblinov пишет:

А кто может ответить.... Можно ли менять пины на ардуино для lcd дисплея??? Например, мне надо освободить пины 2 и 3???

Можно.

basilblinov
Offline
Зарегистрирован: 02.06.2013

Просто изменить их, когда объявляешь LCD???

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

basilblinov пишет:

Просто изменить их, когда объявляешь LCD???

Изменить на те, к которым переподключили.

ZSeregaA
ZSeregaA аватар
Offline
Зарегистрирован: 21.04.2013

Я в начале даже не хоте ничего паять, контакт был плохой и было все как в первом сообщении. Припаял, подключил всё заработало.

я даже игру для этого дисплея сделал, посмотреть видео и скетч можете в моем блоге, может кто запустит http://robocontroller.ru/news/arduman_igra_na_arduino_s_lcd_16x2_i_ik_pultom/2013-06-18-21

Энже
Offline
Зарегистрирован: 14.05.2014

http://wiki.amperka.ru/_media/%D1%81%D1%85%D0%B5%D0%BC%D1%8B-%D0%BF%D0%B...   вот посмотри те так же сделала экран говрит но текста не выходит помогите)((((

Rinus
Offline
Зарегистрирован: 25.04.2015

Добрый день, вчера только начал играться с пришедшими блоками Ардуино...с подключением Мини Про и прошивкой через ТТЛ переходник разобрался, с миганием светодиода разобрался, подключаю LCD1601 (тут 1602, но разница минимальная, о заполнении обоих половин экрана и русском языке буду беспокоиться после) - картина такая же как тут наверху. Дергаю проводки, слегка покачиваю дисплей на бесппаечной макетке - иногда внутри квадратиков проскакивают какие то знаки, иногда без квадратиков на весь экран что то носится...В общем у меня такое предположение, что беспаечная макетная плата - это сплошной плохой контакт! ((( Видимо такие ответственные синхронные вещи на ней замучаешься контакт править? Вопрос - так на всех беспаечных макетках (у меня с Алиэкспресс) или есть "фирменные", на которых все ок? Да, заодно на проводках для макетки "папа-папа" заметил на некоторых плохой контакт, пришлось проводить инспекцию. Удается ли кому нибудь на беспаечной макетке на всех этих проводках-соплях, которые болтаются как бог на душу положит в контактах, собрать индикацию?

vov4ik
Offline
Зарегистрирован: 10.09.2013

Энже пишет:

http://wiki.amperka.ru/_media/%D1%81%D1%85%D0%B5%D0%BC%D1%8B-%D0%BF%D0%B...   вот посмотри те так же сделала экран говрит но текста не выходит помогите)((((

Почему +5В на Vss, а 0(GND) на Vdd вот правильное подключение http://www.geeetech.com/wiki/index.php/1602_LCD и после выгрузки скеча настроить контраст резистором

На бредбордах если не втыкалось что-то массивное и не топилось контакт для передачи сигнала хороший, использовать до 500мА !!! .

Rinus
Offline
Зарегистрирован: 25.04.2015

Разобрал дисплей - с одной стороны стекло по краям покрошенное, почистил контактную резинку от стеклянных крошек, собрал - теперь ваще ничо не показывает ( Буду ждать вскоре придет 1602 (который, кстати, дешевле, чем 1601!).

hedin
Offline
Зарегистрирован: 10.08.2015

Один вопрос, который как бы важен для меня -  что называется "курсором"  в ардуинской библиотеке LCD? Это видимый/невидимый символ курсора, т.е. просто вывод подчеркивания, или же это логически одновременно и место , куда будет выведен очередной символ?
Просто непонятно, как простым и правильным образом организовать, например такое:
Хочу чтобы писал всегда слева слово Time, и правее допустим через пробел были часы-минуты-секунды.  
Я должен каждый раз переписывать всю строку, или один раз написал Time, сдвинул курсор в позицию где секунды и раз в секунду пишу туда текущее значение ?

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

курсор это скажем координаты/место где сейчас будешь выводить символы

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

exez
exez аватар
Offline
Зарегистрирован: 04.04.2015

тоже вначале была проблема с выводом. контакты были пропаяны норм. просто выводились два ряда квадратов. решилось тем, что между землей и 3 пином с дисплея(контрастность) поставил резистор 1кОм.

всем желаю удачи в подключении девайса.

exez
exez аватар
Offline
Зарегистрирован: 04.04.2015

и 500 Ом на подсветку, чтоб глаза не выедала :)

зы: уже смотрю что на контраст лучше попробовать 1.5 или 2к резистор поставить..

Гриша
Offline
Зарегистрирован: 27.04.2014

офтоп :)

exez пишет:

и 500 Ом на подсветку, чтоб глаза не выедала :)

зы: уже смотрю что на контраст лучше попробовать 1.5 или 2к резистор поставить..

а потом переменник, а потом ШИМ и управлять контрастом  с кнопки... потом с пульта управления IR .... изернет шилд... WIFI
 

exez
exez аватар
Offline
Зарегистрирован: 04.04.2015

да! 2к то что надо.. шимом управлять не буду. врядле хватит лап на ардуинке :)

Sergoen
Offline
Зарегистрирован: 22.01.2016

У меня  проблема почему-то высвечиваются только первые буквы. На первой строке Н на второй Y. Причем на демке работают все строчки .Библиотека -LiquidCrystal_I2C2004V1 , среда 1.6.6 Что делать? помогите!

З.Ы - скетч

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
 
void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Ywrobot Arduino!");
   lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
   lcd.setCursor(2,3);
  lcd.print("Power By Ec-yuan!");
}
 
 
void loop()
{

 

}
Гриша
Offline
Зарегистрирован: 27.04.2014

почитайте это и исправьте

Sergoen
Offline
Зарегистрирован: 22.01.2016

Спасибо ! Помогло!