Неизвестный дисплей

Mac
Offline
Зарегистрирован: 12.11.2016

Здравствуйте!

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

Надписи на самом дисплее следующие: LM2540SYLU, KS0068 340.

LiquidCrystal с таким скетчем ничего не выводит. Экран просто светится.

// Подключаем стандартную библиотеку LiquidCrystal
#include <LiquidCrystal.h>
// Инициализируем объект-экран, передаём использованные
// для подключения контакты на Arduino в порядке:
LiquidCrystal lcd(4, 5, 10, 11, 12, 13); // RS, E, DB4, DB5, DB6, DB7

void setup()
{
  // устанавливаем размер (количество столбцов и строк) экрана
  lcd.begin(16, 2);
  // печатаем первую строку
  lcd.print("Hello world!");
  // устанавливаем курсор в колонку 0, строку 1. То есть на
  // самом деле это вторая строка, т.к. нумерация начинается с нуля
  lcd.setCursor(0, 1);
  // печатаем вторую строку
  lcd.print("foo bar baz");
}
void loop()
{
}

Если повернуть экран под определенным углом, можно разглядеть едва заметные 7 темных прямоугольников знакомест в первом ряду (всего рядов влезет 3), а снизу надпись noSvc. Что бы это могло значить?

P.S. В ардуино и схемотехнике в целом пока новичок, потому прошу как можно подробнее.

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Контрастность менять надо. 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

1. Пятую ногу на землю подключили?

2. Ряд из квадратиков означает не проинициализированный дисплей.
    скорее всего попутаны провода. проверьте 101 раз.
    данные правильно ( DB4, DB5, DB6, DB7)? не наоборот?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

на третью ногу точно с резистора подаете?

Mac
Offline
Зарегистрирован: 12.11.2016

Yarik.Yar пишет:
Контрастность менять надо.
Попробовал подключить третий пин через потенциометр. Ожидаемо вращение ручки лишь усиливает или уменьшает яркость подсветки.

trembo пишет:

1. Пятую ногу на землю подключили?

Ага.

trembo пишет:

2. Ряд из квадратиков означает не проинициализированный дисплей.
    скорее всего попутаны провода. проверьте 101 раз.
    данные правильно ( DB4, DB5, DB6, DB7)? не наоборот?

Да, 101 раз проверил за этих дни.

10 пин ардуино  - 10 пин дисплея

11 пин ардуино - 9 пин дисплея

12 пин ардуино - 8 пин дисплея

13 пин ардуино - 7 пин дисплея

ua6em пишет:
на третью ногу точно с резистора подаете?
Мм... вот это нет. Третья нога просто идет в минус. Как через резистор подключить?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ну так через 3-ю жеж регулируется яркость дисплея?

Я бы попробовал подавать на неё регулируемый плюс, на LCD1602 подсветка выведена на отдельные пины, раз здесь отдельного нет логично регулировать + питания, а не минусом, считая что минуc подсветки сидит на GND

Mac
Offline
Зарегистрирован: 12.11.2016

ua6em, как я писал выше, подключение третьего пина через потенциометр лишь усиливает/уменьшает яркость подсветки. Если вы имели ввиду что-то другое, пожалуйста, объясните поподробнее. Я пока слабо разбираюсь в предмете.

__Alexander
Offline
Зарегистрирован: 24.10.2012

в третьей строчке выведено noSvc ? 

Странно как-то. Попробуй другой текст выводить, этот будет меняться?

Mac
Offline
Зарегистрирован: 12.11.2016

Да, на третьей. Но на всей этой третьей строке явно нет знакомест для вывода. Похоже на то, что эта надпись неизменяема. Например, буква S находится между двумя знакоместами (если бы они там были).

Стоит также обратить внимание, что на бумажке из первого поста присутствует эта надпись noSvc (9,0) "2" 50. Понятия не имею, что она означает.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

судя вашей бумажке инициализировать надо не так

LiquidCrystal lcd(4, 5, 10, 11, 12, 13)

А ТАК:

LiquidCrystal lcd(4, 5, 10, 9, 8, 7)

И тогда

// Подключаем стандартную библиотеку LiquidCrystal
#include <LiquidCrystal.h>
// Инициализируем объект-экран, передаём использованные
// для подключения контакты на Arduino в порядке:
LiquidCrystal lcd(4, 5, 10, 9, 8, 7); // RS, E, DB4, DB5, DB6, DB7

void setup()
{
  // устанавливаем размер (количество столбцов и строк) экрана
  lcd.begin(16, 2);
  // печатаем первую строку
  lcd.print("Hello world!");
  // устанавливаем курсор в колонку 0, строку 1. То есть на
  // самом деле это вторая строка, т.к. нумерация начинается с нуля
  lcd.setCursor(0, 1);
  // печатаем вторую строку
  lcd.print("foo bar baz");
}
void loop()
{
}