Arduino Arduino и LCD экран

Arduino и LCD экран

Подключаем LCD экран к Arduino Uno

В данной статье мы рассмотрим как можно подключить к Arduino Uno LCD дисплей. В примере будет рассмотрено подключение экрана с двумя строчками и шестнадцатью столбцами.

Итак, вот что нам понадобится для работы: Arduino Uno (если у вас его нет, почитайте, как его купить), LCD экран с ножками для подключения к монтажной плате (в нашем случае LCM1602C), вязанка проводов, потенциометр или просто резистор на 47 кОм. Для работы с экраном необходимо соединить его контакты с Arduino по следующей схеме:

lcd экран для Arduino

Начинаем подключать через монтажную плату проводки (смотрите на картинку). Экран у нас плотно посажен на свои ножки или вообще к ним припаян. Итак втыкаем ножки экрана в монтажную плату.

  • Над первой ножкой втыкаем провод от GND, расположенном на Arduino.
  • Вторую ножку экрана соединяем с 5 вольтами
  • Над третьим втыкаем провод от потенциометра (будет регулировать контрастность экрана). Сам потенциометр имеет 3 ножки. На одну подаём 5 вольт на другую землю (черный и красный провод на картинке), со средней ножки мы как раз и будем "забирать" нужное для конкретной контрастности напряжение.
  • Четвертый соединим с 12 разъёмом на Arduino (зеленый провод)
  • Пятый с GND (черный провод)
  • Шестой с 10 разъёмом на Arduino (зеленый провод)
  • 7,8,9,10 оставляем пустыми
  • 11 с 5 разъёмом на Arduino (зеленый провод)
  • 12 с 4 разъёмом на Arduino (зеленый провод)
  • 13 с 3 разъёмом на Arduino (зеленый провод)
  • 14 с 2 разъёмом на Arduino (зеленый провод)
  • 15 через резистор с 5 вольтами (нужен для подсветки)
  • 16 с GND (нужен для подсветки)
Ниже приведен список разъёмов LCD экрана:
  • 1 - Gnd (земля)
  • 2 - Vin (питание +5В)
  • 3 - VO (настройка контрастности)
  • 4 - RS (данные/команды)
  • 5 - RW (чтение/запись)
  • 6 - E (Enable)
  • 7-14 - DB0-DB7 (линии данных)
  • 15 - LED+ (анод подсветки)
  • 16 - LED- (катод подсветки)

Если всё подключено правильно, то заливаем следующий скетч:

#include <LiquidCrystal.h>

//Создаем объект для работы с дисплеем.
//При создании указываем номера портов
//в порядке RS, E, DB4, DB5, DB6, DB7
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

void setup() {
  //Выставлем число столбцов и строк
  lcd.begin(16, 2);
  //Выводим текст
  lcd.print("hello, world!");
}

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

Если после этого экран мигает, но текст на нём не появляется, ещё аз проверьте, что всё подключено по схеме. Если и это не помогает убедитесь в хорошем контакте всех соединений. Подсветка должна гореть в любом случае, когда у экрана правильно подключены 16 и 15 разъём.

Добавляем свой символ на LCD экран

Сразу оговорюсь, символов на данный экран можно добавить не более 8 штук. Под каждый символ отведено 5 пикселей ширины и 8 пикселей высоты. При создании символа нам нужно указать, какие символы "зажигать" а какие нет. В примере мы создадим символ - лицо со шляпой (моей фантазии хватило только на это). Итак, слева пустая клетка 5 на 8, справа то, что мы хотим увидеть на экране.

lcd экран для Arduino lcd экран для Arduinolcd экран для Arduino

Мы зарегистрируем наш символ для вызова по команде /1. То есть в списке из восьми своих символов мы "посадим" наш на вторую позицию (нумерация от 0 до 7). (Обращаю внимание, что lcd.print("\0"); не выведет нулевой символ!) Для задания данного символа нужно написать следующий код:

#include <LiquidCrystal.h>

/* Описываем наш символ в виде массива битовых масок.
 * Каждый символ - это восемь масок по пять бит.
 * тут 8 - высота клетки экрана
 */
byte man_with_hat[8] =
{
  B01110,
  B11111,
  B00000,
  B01010,
  B00100,
  B10001,
  B01110,
  B00000,
};


/* Объявляем объект нашего дисплея */
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

void setup()
{
  /* Регистрируем собственный символы с кодом 1 */
  lcd.createChar(1, man_with_hat);

  /* Начинаем работу с дисплееем */
  lcd.begin(16, 2);
   lcd.print("\1");
}

void loop()
{

}

Данная возможность позволит вам немного решить проблему с русским алфавитом (кириллицей), если ваш LCD экран его не поддерживает. Вот русский алфавит: АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ - тут выделены те буквы, которые не имеют схожих по начертанию букв с буквами на английском языке. Жаль, таких букв больше 8.

p.s. Если хотите почитать более подробный материал по этой теме - вам сюда!

 

Случайная новость

Система активной помощи при парковке Ford Focus 3

Вы, наверное уже видели рекламу Форда Фокус 3, в которой показано как автомобиль сам себя паркует - сколько же стоит такое удовольствие?

Подробнее ...

Материал о ПК

Время отклика сенсорного экрана = 1 мс

Можете вы себе это представить или нет, но ребята из лабораторий Microsoft показали как бы удобно работалось человеку с сенсорным экраном, имеющим в 100 раз меньшую задержку по сравнению с теми устройствами, которые есть на рынке сейчас.

Подробнее ...


Нажимай!

Кто на сайте

Сейчас 13 гостей онлайн

Голосуй

Используете ли вы плёнку на сенсорных экранах?
 

Valid XHTML 1.0 Transitional Читать в Яндекс.Ленте