Arduino LCD показывает только черные квадраты в нижнем ряду - PullRequest
3 голосов
/ 09 февраля 2012

Отказ от ответственности: Это домашнее задание.

Я беру урок Arduino, и для нашего проекта мы должны реализовать простой эскиз.Используемое аппаратное обеспечение - плата Arduino Mega ADK и электронный стартовый комплект .Мне удалось успешно общаться с Arduino с моими набросками;другие вещи (например, кнопки и светодиоды) работают, кроме ЖК-дисплея.Я следил за многочисленными уроками (включая примерную программу для ЖК-дисплеев во второй ссылке), но я не могу заставить что-либо работать.Мой ЖК-дисплей постоянно показывает черные квадраты в нижней строке.Посмотрев вокруг, я вижу, что черные ящики появляются, когда ЖК-дисплей не подключен должным образом.Тем не менее, это стартовый набор, который содержит кабели, которые можно подключить к шасси, что избавляет от боли, связанной с пайкой отдельных проводов.Что-то не так с моим ЖК-дисплеем?Вот простой набросок, который я не могу заставить работать:

#include <LiquidCrystal.h>

LiquidCrystal lcd(10,11,12,13,14,15,16);

void setup()
{
  Serial.begin( 9600 );
  lcd.begin(16, 2);
  lcd.clear();
}

void loop()
{
  lcd.setCursor(0,0);
  lcd.println( "hello world!    ");
  delay(1000);
}

Контакты соответствуют BUS2, и я правильно подключил свой кабель от BUS2 к ЖК-дисплею.

Ответы [ 9 ]

3 голосов
/ 04 сентября 2014

Мой ЖК-дисплей постоянно показывает черные квадраты в нижней строке.

У меня была похожая проблема.Подключал ЖК-дисплей, используя минимальное количество контактов: LiquidCrystal(rs, enable, d4, d5, d6, d7).Проблема в том, что я не подключил вывод R/W (чтение / запись) ЖК-дисплея к GND.Когда я это сделал - это начало работать.Также я считаю полезным добавить резистор 3,3 кОм из Vo (контрастность) в GND, чтобы текст можно было легко прочитать.

2 голосов
/ 13 декабря 2013

Пожалуйста, убедитесь, что у вас все контакты на ЖК-дисплее припаяны нормально.

Если вы используете контакты заголовка без пайки в 16 отверстиях вашего LCD перемещайте ЖК-дисплей, пока не найдете устойчивую позицию для тестирования. Легко, что не все из них связываются

Этот базовый пример helloworld должен работать http://www.arduino.cc/en/Tutorial/LiquidCrystal

Для тестирования push-загрузки в Arduino IDE для загрузки скрипта. Кнопка сброса на плате Arduino иногда не инициализирует ЖК-дисплей

1 голос
/ 03 июля 2013

Вы должны проверить свой LiquidCrystal lcd ().Получил ту же проблему, и я настроил это, и теперь это работает.

0 голосов
/ 24 апреля 2016

У меня была такая же проблема.Я перепроверил кабели, чтобы найти два плохих провода.После их изменения у меня осталась та же проблема.Следующим шагом я припаиваю штырьки к ЖК-дисплею.Я видел много сообщений на эту тему и думал, что знаю лучше.Ну что ж, после приварки штырьков к ЖК-дисплею, MAGIC!Все идет хорошо, если вы внимательно следите за шагами других.

0 голосов
/ 10 апреля 2016

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

Аппаратное обеспечение: Ardunio Uno, экран HD47780 (8x2 от sparkfun)

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

Во-первых: у меня есть потенциометр на контрастном выводе, и если я загружаю код / ​​сброс, и этот банк в основном заземляет вывод, он не будет работать. Он должен быть намного выше, и тогда, когда код будет запущен, я могу пойти дальше и обосновать его.

Второе: когда я вызываю setCursor из основного цикла, он просто снова отображает столбцы. Но если я не позвоню, он с радостью просто напечатает символы в следующей доступной позиции.

Код:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);


// NOTE: This code will work just fine but you need to have the contrast pin at a resonably high resistance value when you turn it on, and then decreade it once the 
// device has booted otherwise you just see solid bars. Not sure why this is. 
void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(8, 2);
  lcd.clear();
  // Print a message to the LCD.
  lcd.print("hello");
  lcd.setCursor(0, 1);
}

void loop() {
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
  delay(5000);

}
0 голосов
/ 07 июня 2013

Я попробовал ваш код, за исключением объявления на ЖК-дисплее "LiquidCrystal lcd (10,11,12,13,14,15,16);" Эскиз работает, и на ЖК-дисплее отображается сообщение.

Мои устройства:

  1. Arduino UNO
  2. SC1602BSLB (без подсветки)
  3. Компьютерная ОС: Windows 7
  4. Arduino IDE: 1.0.4

Я подозреваю, что что-то не так в вашей декларации на ЖК-дисплее. Мой код выглядит следующим образом (из примера arduino "hello world" в "LiquidCrystal":

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Как вы понимаете, штыревые соединения в приведенной выше декларации:

   Arduino/LCD
  • Цифровой 5/11
  • Цифровой 4/12
  • Цифровой 3/13
  • Цифровой 2/14

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

0 голосов
/ 17 февраля 2012

Вам нужно пошагово решать проблемы.Например:

  1. Проверьте, работает ли ваш эскиз, запустив ваш набросок на оборудовании друга, которое хорошо работает для него.Если ваш эскиз работает, то вы знаете, что проблема в вашем оборудовании , если он не работает, тогда проблема в вашем программном обеспечении (эскиз).

  2. Если проблема заключается в аппаратном обеспечении: поменяйте подозреваемый ЖК-дисплей с другом, который работает правильно.Если теперь он работает, то вы знаете, что ваш ЖК-дисплей неисправен.

  3. Если замена ЖК-дисплея не помогает, поменяйте местами основные платы.В конце концов, если вы начнете с подозрительной системы (также известной как тестируемая система) и с заведомо исправной системой (также называемой «золотой системой»), то вы сможете определить, какие частиТестируемая система работает, а какие нет.

Дополнительные комментарии

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

  • Хорошая экспериментальная установка также должна включать в себя хорошо известную (золотую) систему для использования в диагностике проблем.

  • Каждый заменяемый блок (также известный как FRU или полевой сменный блок) нуждается в хорошей этикетке.Этикетка используется, чтобы удостовериться, что вы не перепутали хорошие и подозрительные FRU.Поскольку они одинаковы во всех отношениях (кроме одного работает, а другой может или не может), их легко перепутать.

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

0 голосов
/ 10 февраля 2012

Черные поля в нижней строке обычно указывают на то, что ЖК-дисплей не получил требуемые команды инициализации.Причины могут быть неправильными кабелями - команды идут в нирвану, но не на ЖК-дисплей.

Поэтому вам следует

  • перепроверить каждый переключатель на плате, экране иСам ЖК-модуль - они в правильном состоянии?

  • дважды проверьте, что на Arduino действительно правый эскиз.

  • Вставьте delay(1000); непосредственно перед lcd.begin(...) - Возможно,Для запуска ЖК-дисплея требуется больше времени

  • Если это домашнее задание, то вы можете проверить свой ЖК-дисплей на Arduino помощника или учителя.

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

0 голосов
/ 10 февраля 2012

С этой готовой жк-панелью непонятно, какие настройки у вас есть.Но если на ЖК-дисплее отображаются черные ящики, которые соответствуют тому, что вы пишете в него (например, если вы написали «привет мир!», И вы видите 12 черных ящиков для каждого символа и пробела, то возможно, что напряжение на ЖК-дисплее слишком высокое.Если у вас нет никакого способа отрегулировать напряжение на ЖК-дисплее, то, возможно, используйте более низкое напряжение питания для Arduino (в случае, если ваш ЖК-дисплей получает входное напряжение, а не отрегулированный источник питания 5 В.

...