Скочи на садржај

„Здраво, свете!“ пројекат са ЛЦД 1602 модулом

Како време одмиче, тако број компоненти, модула и идеја за пројекте базиране на Ардуину расте! Овај пут биће обрађена широко распрострањена компонента која представља незаобилазни део било ког уграђеног система. Ради се о компоненти чија је намена приказ података – текстуалних или бројевних, а у питању је ЛЦД модулу 1602а. Упознавање са карактеристикама компоненте, начином рада и њено програмирање биће илустровано помоћу два једноставна програма (скица). Први је „Здраво, свете!“, који врши једноставан приказ текстуалних података на дисплеј, док други укључује приказ података добијених са тастатуре.

Видео туторијал

ЛЦД 1602а модул

LCD 16x2 module
Слика 1 – ЛЦД 1602а модул

Модул ЛЦД екрана 1602а (слика 1) је широко распрострањени и често коришћен у уграђеним системима због своје доступности, ниске цене и једноставности програмирања. Име 1602 означава да је ЛЦД екран има 16 колона и 2 реда, дакле укупно је могуће приказати 32 карактера. Сваки карактер се приказује преко мреже димензија 8*5 пиксела (Слика 2). Подешавање контраста екрана врши се коришћењем потенциометра чији средњи извод се доводи на пин 3 – VE. Исправан рад обезбеђује додатна библиотека „LiquidCrystal.h“.

LCD_16x2_model
Слика 2 – Физичке особине модула и екрана
LCD_16x2_pinout
Слика 3 – распоред пинова

Распоред пинова ЛЦД модула 1602а

Пин #ПинОпис
1VSSПин на који се повезује маса
2VDDНапајање ЛЦД екрана +5V (дозвољен напон 4,7 – 5,3V)
3VEПодешавање контраста екрана
4Register Select (RS)Одабир режима рада модула (0 = режим података и 1 = командни режим)
5Read/WriteЧитање/Писање (0 = операција писања и 1 = операција читања)
6Enable0 неактивно стање; 1 = обрада долазних података
7-14Data Pin 0 – 7Пинови података (могући режим рада је 4b или 8b)
15LED Positive (A)Анода (за контролу позадинског осветљења)
16LED Positive (C)Катода (за контролу позадинског осветљења)
Слика 3 и Табела 1 – Распоред пинова ЛЦД модула 1602

Карактеристике овог ЛЦД-а су:

  • Радни напон ЛЦД-а ЈЕ 4,7-5,3 волти.
  • Садржи два реда у којима сваки ред може произвести 16 знакова.
  • Искоришћење струје је 1 милиампера без позадинског осветљења.
  • Сваки знак се може направити са мрежом од 5*8 пиксела.
  • Знакови су алфанумерички
  • Екран може да ради на 2 режима – 4-битни и 8-битни
  • Може се купити у плавом или зеленом позадинском осветљењу.
  • Приказује кориснички дефинисане знакове.

Електрична шема

Електрична шема
Електрична шема

Пример 1 – скица „Здраво свете!“

#include <LiquidCrystal.h>
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // подешавање димензија екрана
  lcd.begin(16, 2);
  // приказ поруке
  lcd.print("hello, world!");
}

void loop() {
  // постављање курсора у колону 0, ред 1
  // (ред 1 је други ред, јер бројање редова почиње од 0):
  lcd.setCursor(0, 1);
  // приказ протеклог времена у секундама од претходног ресетовања
  lcd.print(millis() / 1000);
}

Пример 2 – скица приказ података са тастатуре

// укључивање библиотеке
#include <LiquidCrystal.h>
// дефинисање променљивих на које су повезани одговарајући пинови ЛЦД екрана са
// вредностима Ардуино пинова на које је ЛЦД екран повезан
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
  // Подешавање димензија екрана
  lcd.begin(16, 2);
  // иницијализација серијске комуникације
  Serial.begin(9600);
}
void loop() {
  // када се унесе карактер путем серијског монитора
  if (Serial.available()) {
    // додато чекање да би пристигли сви унети подаци
    delay(100);
    // очисти екран
    lcd.clear();
    // читање свих унетих карактера
    while (Serial.available() > 0) {
      // приказ појединачног карактера на екран
      lcd.write(Serial.read());
    }
  }
}