Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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

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


Ambox content.png Черновик


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

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

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

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

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

Arduino uno lcd 16 2 text count 1.png

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

Контакт ЖК-дисплея Обозначение контакта ЖК-дисплея Место подключения
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 Катод подсветки

Код

  1. #include <LiquidCrystal.h>             // Подключение библиотеки LiquidCrystal для работы с ЖК-дисплеями
  2.  
  3. LiquidCrystal lcd(2, 3, 4, 5, 6, 7);   // Инициализация библиотеки LiquidCrystal с номерами контактов к которым подключен дисплей
  4.  
  5. // Массивы символов для прогресс-бара
  6. byte p20[8] = {
  7.   B10000,
  8.   B10000,
  9.   B10000,
  10.   B10000,
  11.   B10000,
  12.   B10000,
  13.   B10000,
  14.   B10000,
  15. };
  16.  
  17. byte p40[8] = {
  18.   B11000,
  19.   B11000,
  20.   B11000,
  21.   B11000,
  22.   B11000,
  23.   B11000,
  24.   B11000,
  25.   B11000,
  26. };
  27.  
  28. byte p60[8] = {
  29.   B11100,
  30.   B11100,
  31.   B11100,
  32.   B11100,
  33.   B11100,
  34.   B11100,
  35.   B11100,
  36.   B11100,
  37. };
  38.  
  39. byte p80[8] = {
  40.   B11110,
  41.   B11110,
  42.   B11110,
  43.   B11110,
  44.   B11110,
  45.   B11110,
  46.   B11110,
  47.   B11110,
  48. };
  49.  
  50. byte p100[8] = {
  51.   B11111,
  52.   B11111,
  53.   B11111,
  54.   B11111,
  55.   B11111,
  56.   B11111,
  57.   B11111,
  58.   B11111,
  59. };
  60.  
  61. void setup()
  62. {
  63.   lcd.begin(16, 2);                    // Настройка количества столбцов и строк на ЖК-дисплее
  64.   lcd.print("Hacker Display");         // Печать текста на ЖК-дисплее
  65.  
  66.   // Определение пользовательских символов
  67.   lcd.createChar(0, p20);
  68.   lcd.createChar(1, p40);
  69.   lcd.createChar(2, p60);
  70.   lcd.createChar(3, p80);
  71.   lcd.createChar(4, p100);
  72. }
  73.  
  74. void loop()
  75. {
  76.   lcd.setCursor(0,1);                  // Установка курсора во вторую строку, первый столбец
  77.   lcd.print("                ");       // Очистка второй строки 16-ю пробелами
  78.   for (int i = 0; i<16; i++)
  79.   {
  80.     // Итерация по каждому символу на второй строке
  81.     for (int j=0; j<5; j++)
  82.     {
  83.       lcd.setCursor(i, 1);            // Установка курсора в заданную позицию
  84.       lcd.write(j);                   // Обновление прогресс-бара
  85.       delay(100);                     // Ожидание 100 мс.
  86.     }  
  87.   }
  88. }

См.также

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