Всем привет, давайте сегодня займемся подключением ардуино к дисплею LCD 1602.
Дисплей идет обычно не распаянный, мне пришлось припаять к нему гребенку вот такую, здесь 16 контактов.
Обратите внимание, когда будете паять, не лудите контакты сразу, а лучше вставьте гребенку и потом уже пропаяйте вместе, не совершайте такую ошибку, как сделал я. Залудил, и все отверстия были перекрыты припоем, потом были трудности с установкой гребенки.
Рассмотрим, что у нас на схеме, это резистор, который регулирует яркость дисплея, схему подключения я покажу чуть позже. Здесь у нас 5 Вольт, 3,3 Вольты, черный традиционно GRD, и тут остальная разводка выполнена, покажу, как это всё устроено, как это работает.
Перейдем к написанию скетча, но перед этим я хотел бы вам показать такую программу как Fritzing, она для разработки печатных плат, для монтажа.
Вот схема ардуино, это дисплей LCD 1602, сопротивление, проводники, питание 5 Вольт, и так далее. Принципиальная схема выглядит так, контакты дисплея пронумерованы от одного до 16, так же всё это буквенно обозначено, сопротивление на 100 ом, и вот меняя его значение, изменяется яркость на дисплее.
Сейчас займемся написанием простенького скетча, и сделаем его более понятным.
Нам нужно будет подключить библиотеку, называется она 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. Так загрузилась программа, регулируя настройку добьемся нормального отображения текста на экране дисплея, цикл один за другим идёт, можно выжать яркость на максимум, но текст расплывается.
Давайте теперь напишем какой-нибудь текст на русском, на второй строчке, посмотрим, что получится, допустим напишем не hello world, а привет мир. Сохраняем, проверяем, загружаем обновление. Первая строчка без изменений maxfad.ru а текст второй строки – как в фильме Хищник, абракадабра, корявит дико.
Давайте я поправлю камеру что бы было лучше видно, зависло, перезалью с первоначальным текстом и опять все нормально. Для статического текста этот дисплей подходит лучше, чем для быстроменяющегося, будет все нормально видно, этим и займемся в следующий раз.
Как подключить дисплей LCD1602 к Arduino
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилось? Поделись этим видео с друзьями!
Как подключить дисплей LCD1602 к Arduino
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на видео ВКонтакте, там Вы найдете много интересного, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилось? Поделись этим видео с друзьями!
Как подключить дисплей LCD1602 к Arduino
Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в Рутубе, там Вы найдете много интересного, которое выходит достаточно часто. Приятного просмотра!
С уважением, авторы сайта Компьютерапия
Понравилось? Поделись этим видео с друзьями!