Всем привет, давайте сегодня займемся подключением ардуино к дисплею LCD 1602.

Подключение ардуино к дисплею LCD 1602

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

Гребенка для подключение дисплея LCD 1602

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

Распайка дисплея LCD 1602

Рассмотрим, что у нас на схеме, это резистор, который регулирует яркость дисплея, схему подключения я покажу чуть позже. Здесь у нас 5 Вольт, 3,3 Вольты, черный традиционно GRD, и тут остальная разводка выполнена, покажу, как это всё устроено, как это работает.

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

Вид схемы в программе Fritzing

Вот схема ардуино, это дисплей LCD 1602, сопротивление, проводники, питание 5 Вольт, и так далее. Принципиальная схема выглядит так, контакты дисплея пронумерованы от одного до 16, так же всё это буквенно обозначено, сопротивление на 100 ом, и вот меняя его значение, изменяется яркость на дисплее.

Принципиальная схема в программе Fritzing

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

Нам нужно будет подключить библиотеку, называется она Liquid Crystal (жидкие кристаллы), также объявим массивы array1 и array2 тип char.

#include < LiquidCrystal.h >

В массиве array1 я написал название своего сайта – maxfad.ru, давайте я напишу название маленькими буквами.

char array1[]="maxfad.ru                 ";

Второй массив array2 у нас будет вот такой с текстом hello, world!.

char array2[]="hello, world!             ";

Обратите внимание количество знаков в массивах нас равно 26, то есть мы имеем одинаковую длину строк, чтобы у нас примерно одинаково они все прорисовывались на дисплее.

Объявим переменную для задержки в 250 миллисекунд и объявим контакты, которые будем использовать на нашем lcd-экране и пока с этим всё.

int tim = 250;
LiquidCrystal lcd(4, 6, 10, 11, 12, 13);

Давайте сохраним на рабочий стол наш проект, очистим как всегда лишняя в setup у нас будет всё очень просто, мы указываем что в нас LCD двухстрочный, по 16 символов,

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

а вот в цикле loop займёмся написанием следующего кода.

lcd.setCursor(15,0);

Давайте установим курсор в положение 15:0, напишем цикл for int, пройдемся в цикле от 0 до 26 до нашей длины строки и будем увеличивать на единичку наш счётчик.

В счётчике мы будем скролить в лево дисплей через функцию Scroll displayleft будем делать смещение влево, нас получится смещение влево.

Далее мы начнём печатать символы из массива array1, начну печатать исходя из значения 1 2 3 4 и так далее, и далее мы сделаем задержку между печатью символов через 250 миллисекунд.

for (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++)
    {
      lcd.scrollDisplayLeft();
      lcd.print(array1[positionCounter1]);
      delay(tim); 
    }

Далее вне цикла очищаем экран после написания строки наш LCD, ставим курсор в положение 15:1 это получается вторая строчка на LCD, опять делаем такой же цикл у нас здесь счётчик получается с другим названием, то есть здесь у нас отличаются название буквально на одну единицу.

lcd.clear();
lcd.setCursor(15,1);

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

for (int positionCounter = 0; positionCounter < 26; positionCounter++)
    {
      lcd.scrollDisplayLeft();
      lcd.print(array2[positionCounter]);
      delay(tim);
    }
lcd.clear();

И после этого мы очищаем наш экран от всяких записей сохраним, сделаем форматирования текста (ctrl+T). Давайте ещё раз посмотрим, что у нас тут получилось, такой вот скетч.

#include < LiquidCrystal.h>
char array1[]="MAXFAD.RU                 ";
char array2[]="hello, world!             ";
int tim = 250;  
LiquidCrystal lcd(4, 6, 10, 11, 12, 13);

void setup()
{
  lcd.begin(16, 2);  
}
void loop() 
{
    lcd.setCursor(15,0);  
    for (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++)
    {
      lcd.scrollDisplayLeft();
      lcd.print(array1[positionCounter1]);
      delay(tim); 
    }
    lcd.clear(); 
    lcd.setCursor(15,1);  
    for (int positionCounter = 0; positionCounter < 26; positionCounter++)
    {
      lcd.scrollDisplayLeft();
      lcd.print(array2[positionCounter]);
      delay(tim);
    }
    lcd.clear();
}

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

Текст на дисплее LCD 1602

Давайте теперь напишем какой-нибудь текст на русском, на второй строчке, посмотрим, что получится, допустим напишем не hello world, а привет мир. Сохраняем, проверяем, загружаем обновление. Первая строчка без изменений maxfad.ru а текст второй строки – как в фильме Хищник, абракадабра, корявит дико.

Кириллица на дисплее LCD 1602

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

Смотрите видео: Как подключить дисплей LCD1602 к Arduino




Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok