Arduino:Примеры/Прогресс-бар на LCD-дисплее

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.



Прогресс-бар на LCD-дисплее

Данный пример демонстрирует как реализовать прогресс-бар на LCD-дисплее.

Необходимые компоненты

Монтажная схема

Соберите схему согласно монтажной схеме.

Подключение дисплея:

Контакт ЖК-дисплея Обозначение контакта ЖК-дисплея Место подключения
1 Vss плата Arduino: Земля, GND
2 Vdd плата Arduino: Питание, +5В, 5V
3 Vo Средний контакт потенциометра
4 Rs плата Arduino: 2ой цифровой контакт
5 RW плата Arduino: Земля, GND
6 En плата Arduino: 3ий цифровой контакт
7 D0 Линия передачи данных 0 (не используется)
8 D1 Линия передачи данных 1 (не используется)
9 D2 Линия передачи данных 2 (не используется)
10 D3 Линия передачи данных 3 (не используется)
11 D4 плата Arduino: 4ый цифровой контакт
12 D5 плата Arduino: 5ый цифровой контакт
13 D6 плата Arduino: 6ой цифровой контакт
14 D7 плата Arduino: 7ой цифровой контакт
15 A плата Arduino: Питание, +5В, 5V
16 K плата Arduino: Земля, GND

Распиновка параллельного ЖК-дисплея

Контакт Обозначение Назначение
1 Vss Земля
2 Vdd Питание, +5В
3 Vo Настройка контрастности
4 Rs Выбор режима(командный или отображение данных)
5 RW Чтение/запись
6 En Готовность данных
7 D0 Линия передачи данных 0 (не используется)
8 D1 Линия передачи данных 1 (не используется)
9 D2 Линия передачи данных 2 (не используется)
10 D3 Линия передачи данных 3 (не используется)
11 D4 Линия передачи данных 4
12 D5 Линия передачи данных 5
13 D6 Линия передачи данных 6
14 D7 Линия передачи данных 7
15 A Анод подсветки
16 K Катод подсветки

Код

#include <LiquidCrystal.h>             // Подключение библиотеки LiquidCrystal для работы с ЖК-дисплеями

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);   // Инициализация библиотеки LiquidCrystal с номерами контактов к которым подключен дисплей

// Массивы символов для прогресс-бара
byte p20[8] = {
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
  B10000,
};

byte p40[8] = {
  B11000,
  B11000,
  B11000,
  B11000,
  B11000,
  B11000,
  B11000,
  B11000,
};

byte p60[8] = {
  B11100,
  B11100,
  B11100,
  B11100,
  B11100,
  B11100,
  B11100,
  B11100,
};

byte p80[8] = {
  B11110,
  B11110,
  B11110,
  B11110,
  B11110,
  B11110,
  B11110,
  B11110,
};

byte p100[8] = {
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
};

void setup()
{
  lcd.begin(16, 2);                    // Настройка количества столбцов и строк на ЖК-дисплее
  lcd.print("Hacker Display");         // Печать текста на ЖК-дисплее

  // Определение пользовательских символов
  lcd.createChar(0, p20);
  lcd.createChar(1, p40);
  lcd.createChar(2, p60);
  lcd.createChar(3, p80);
  lcd.createChar(4, p100);
}

void loop()
{
  lcd.setCursor(0,1);                  // Установка курсора во вторую строку, первый столбец
  lcd.print("                ");       // Очистка второй строки 16-ю пробелами
  for (int i = 0; i<16; i++)
  {
    // Итерация по каждому символу на второй строке
    for (int j=0; j<5; j++)
    {
      lcd.setCursor(i, 1);            // Установка курсора в заданную позицию
      lcd.write(j);                   // Обновление прогресс-бара
      delay(100);                     // Ожидание 100 мс.
    }  
  }
}

См.также

Внешние ссылки