LCD 1602A Arduino

LCD 1602 (символьный зелёный ЖК-дисплей, контроллер HD44780, I2C интерфейс на микросхеме PCF8574)

Характеристики дисплея LCD 1602

Количество символов 16х2;
Напряжение питания 5В;
Потребляемый рабочий ток 2мA;
Размеры 80х36х15 мм.;
Диапазон рабочих температур -20°C…+70°C;
размер точки дисплея — 0,5×0,5 мм;
Угол обзора — 180°C.
I2C переходник
I2C адреса:
— для PCF8574 0x20…0x27;
— для PCF8574A 0x38…0x3F.

Распиновка LCD 1602

VSS (Ground) — земля;
VDD — питание 5 вольт;
VC — регулировка контрастности (переменный резистор R=10…20 кОм);
RS (Register Select) — регистр для выбора команд, 0- команда, 1 — данные;
RW (Read Write) — запись и чтение команд и данных;
E (Enable signal) — готовность данных;
D0…D7 (Data bus) — для передачи 8 битных данных на дисплей в виде 0 и 1. Например, 00110011.
A, K — анод (+5V), катод (0V) питание подсветки дисплея (через токоограничивающий резистор).

SCL (Serial CLock) — последовательная линия тактирования;
SDA (Serial DAta) — последовательная линия данных;
VCC — напряжение питания 5В;
GND — земля.
lcd 1602a вид сзади

lcd 1602a дисплей

Схема подключения LCD 1602A к Arduino UNO

lcd 1602a подключение к ардуино uno

Для повышение быстродействия вывода данных на дисплее лучше использовать 8 битный режим, а для уменьшение проводов — 4 битный режим.

#include <LiquidCrystal_PCF8574.h>

LiquidCrystal_PCF8574 lcd(0x27); // установить адрес 0x27 для 16x2 дисплея

void setup()
{
  lcd.begin(16, 2); // подключение lcd экрана 16x2
  lcd.setBacklight(255); //яркость подсветки, 255 - max
  lcd.clear(); // очистить дисплый, курсор в начальной позиции (0,0)

}

void loop()
{
  lcd.setCursor(1, 0);
  lcd.print("matematicus.ru");
  lcd.setCursor(6, 1);
  lcd.print("site");
  delay(1000);
  lcd.clear();
  
  lcd.setCursor(7, 0);
  lcd.print("\x58""Y"); // XY
  delay(1000);
  lcd.clear();
}

Результат работы дисплея (вывод своих символов):

lcd дисплей 1602a вывод информации

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

byte heart[8] = {
  B00000,
  B01010,
  B11111,
  B11111,
  B01110,
  B00100,
  B00000,
  B00000
};

byte celsius[8] =
{
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000
};

byte smiley[8] = {
  B00000,
  B10001,
  B00000,
  B00000,
  B10001,
  B01110,
  B00000,
};

byte triangle[8] = {
  B00000,
  B00000,
  B00001,
  B00011,
  B00111,
  B01111,
  B11111,
};

void setup()
{
  
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.createChar(0, smiley);
  lcd.createChar(1, heart);
  lcd.createChar(2, celsius);
  lcd.createChar(3, triangle);
 // lcd.home();  // курсор в начальную позицию 
}

void loop()
{
  lcd.setCursor(0, 0);
  lcd.write(byte(0));
  lcd.setCursor(1, 0);
  lcd.write(byte(1));
  lcd.setCursor(2, 0);
  lcd.write(byte(2));
  lcd.setCursor(3, 0);
  lcd.print("C");
  lcd.setCursor(4, 0);
  lcd.write(byte(3));
  lcd.cursor();
}

Результат работы дисплея (вывод текста — кириллица):

lcd 1602a вывод символов

#include <LCD_1602_RUS.h>

LCD_1602_RUS lcd(0x27, 16, 2);

void setup()
{
  lcd.init();                     
  lcd.backlight();

  lcd.setCursor(1, 0);
  lcd.print("Математикус");
  lcd.setCursor(6, 1);
  lcd.print("сайт");
  lcd.setCursor(12, 1);
  lcd.print(char(13));
}

void loop()
{

}

Результат работы дисплея:
lcd 1602a вывод текста на русском языке

1295

Leave a Reply

Ваш адрес email не будет опубликован.