Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Учебное пособие по ЖК-дисплею Arduino 16×2 — все, что вам нужно знать

<основной класс="главный сайт" id="главный">

В этом руководстве по Arduino мы узнаем, как подключить и использовать ЖК-дисплей (жидкокристаллический дисплей) с Ардуино . Подобные ЖК-дисплеи очень популярны и широко используются во многих электронных проектах, поскольку они отлично подходят для отображения простой информации, например данных датчиков, и при этом очень доступны по цене.

Я уже использовал их в нескольких своих проектах Arduino, и вы можете ознакомиться с ними здесь:

Вы можете посмотреть следующее видео или прочитать письменный учебник ниже. Он включает в себя все, что вам нужно знать об использовании символьного ЖК-дисплея с Arduino, например, разводку ЖК-дисплея, схему подключения и несколько примеров кодов.

Что такое символьный ЖК-дисплей?

Символьный ЖК-дисплей — это уникальный тип дисплея, который может выводить только отдельные символы ASCII фиксированного размера. Используя эти отдельные символы, мы можем сформировать текст.

Если мы внимательно посмотрим на дисплей, то заметим, что есть небольшие прямоугольные области, составленные из сетки 5×8 пикселей. Каждый пиксель может подсвечиваться отдельно, поэтому мы можем генерировать символы в каждой сетке.

Количество прямоугольных областей определяет размер ЖК-дисплея. Самым популярным ЖК-дисплеем является ЖК-дисплей 16 × 2, который имеет две строки с 16 прямоугольными областями или символами. Конечно, есть и другие размеры, такие как 16×1, 16×4, 20×4 и так далее, но все они работают по одному принципу. Кроме того, эти ЖК-дисплеи могут иметь различный цвет фона и текста.

Распиновка ЖК-дисплея 16×2

Он имеет 16 контактов, и первый слева направо является землей . штырь. Второй контакт — это VCC . который мы подключаем к контакту 5 вольт на плате Arduino. Далее идет контакт Vo, к которому мы можем прикрепить потенциометр для управления контрастностью дисплея.

Далее RS контакт или регистровый контакт выбора используется для выбора того, будем ли мы отправлять команды или данные на ЖК-дисплей. Например, если контакт RS установлен в низкое состояние или нулевое напряжение, то мы отправляем команды на ЖК-дисплей, например:установить курсор в определенное место, очистить дисплей, выключить дисплей и так далее. И когда контакт RS установлен в состояние High или 5 вольт, мы отправляем данные или символы на ЖК-дисплей.

Далее идет R/W контакт, который выбирает режим, будем ли мы читать или писать на ЖК-дисплей. Здесь режим записи очевиден и используется для записи или отправки команд и данных на ЖК-дисплей. Режим чтения используется самим ЖК-дисплеем при выполнении программы, которую нам не нужно обсуждать в этом руководстве.

Далее идет E вывод, который разрешает запись в регистры, или следующие 8 выводов данных от D0 до D7. Таким образом, через эти контакты мы отправляем 8-битные данные при записи в регистры или, например, если мы хотим видеть последнюю заглавную букву A на дисплее, мы отправим 0100 0001 в регистры в соответствии с таблицей ASCII. Последние два контакта A и К , или анод и катод предназначены для светодиодной подсветки.

В конце концов, нам не нужно сильно беспокоиться о том, как работает ЖК-дисплей, так как библиотека жидких кристаллов позаботится почти обо всем. На официальном сайте Arduino вы можете найти и просмотреть функции библиотеки, которые позволяют легко использовать ЖК-дисплей. Мы можем использовать библиотеку в 4- или 8-битном режиме. В этом уроке мы будем использовать его в 4-битном режиме или будем использовать только 4 из 8 контактов данных.

Как подключить Arduino к ЖК-дисплею — схема подключения

Вот как нам нужно подключить ЖК-дисплей 16×2 к плате Arduino.

Мы будем использовать только 6 цифровых входных контактов платы Arduino. Регистры ЖК-дисплея от D4 до D7 будет подключен к цифровым контактам Arduino с 4 по 7. Кнопка Enable контакт будет подключен к контакту номер 2 и RS контакт будет подключен к контакту номер 1. Кнопка R/W контакт будет подключен к земле, а Vo контакт будет подключен к среднему контакту потенциометра.

Вы можете получить эти компоненты на любом из следующих сайтов:

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

Мы можем отрегулировать контраст ЖК-дисплея, отрегулировав входное напряжение на Vo. штырь. Мы используем потенциометр, потому что таким образом мы можем легко настроить контраст, регулируя входное напряжение от 0 до 5 В.

Можно ли использовать ЖК-дисплей без потенциометра?

Да, если у нас нет потенциометра, мы все равно можем отрегулировать контраст ЖК-дисплея с помощью делителя напряжения, состоящего из двух резисторов. С помощью делителя напряжения нам нужно установить значение напряжения между 0 и 5В, чтобы получить хороший контраст на дисплее. Я обнаружил, что напряжение около 1 В отлично подходит для моего ЖК-дисплея. Я использовал резистор 1K и 220 Ом, чтобы получить хороший контраст.

Существует также другой способ регулировки контрастности ЖК-дисплея — подача ШИМ-сигнала от Arduino на Vo. вывод ЖК-дисплея. Мы можем подключить Vo к любому выводу с поддержкой ШИМ Arduino, а в разделе настройки мы можем использовать следующую строку кода:

analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255)Code language: Arduino (arduino)

Он будет генерировать ШИМ-сигнал на контакте D11 со значением 100 из 255, который преобразуется в напряжение от 0 до 5 В, на входе Vo будет около 2 В. Пин ЖК-дисплея.

ЖК-код Arduino

Вот простой код, с помощью которого мы можем объяснить принцип работы библиотеки жидких кристаллов. Это код первого примера из видео:

/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/

#include <LiquidCrystal.h> // includes the LiquidCrystal Library 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.print("Arduino"); // Prints "Arduino" on the LCD 
 delay(3000); // 3 seconds delay 
 lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed 
 lcd.print("LCD Tutorial"); 
 delay(3000); 
 lcd.clear(); // Clears the display 
 lcd.blink(); //Displays the blinking LCD cursor 
 delay(4000); 
 lcd.setCursor(7,1); 
 delay(3000); 
 lcd.noBlink(); // Turns off the blinking LCD cursor 
 lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written 
 delay(4000); 
 lcd.noCursor(); // Hides the LCD cursor 
 lcd.clear(); // Clears the LCD screen 
}Code language: Arduino (arduino)

Описание кода:

Первое, что нам нужно сделать, это вставить библиотеку жидких кристаллов. Мы можем сделать это следующим образом:Sketch> Include Library> Liquid Crystal. Затем мы должны создать объект LC. Параметры этого объекта должны быть номерами цифровых входных контактов платы Arduino соответственно контактам ЖК-дисплея следующим образом:(RS, Enable, D4, D5, D6, D7). В настройках мы должны инициализировать интерфейс для ЖК-дисплея и указать размеры дисплея с помощью begin() функция.

В цикле пишем нашу основную программу. Использование print() функция, которую мы печатаем на ЖК-дисплее.

lcd.print("Arduino"); // Prints "Arduino" on the LCDCode language: Arduino (arduino)

setCursor() Функция используется для установки места, в котором будет отображаться последующий текст, записываемый на ЖК-дисплей.

lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed Code language: Arduino (arduino)

мигание() используется для отображения мигающего курсора и функции noBlink() функция выключения.

lcd.blink(); //Displays the blinking LCD cursorCode language: Arduino (arduino)

курсор() используется для отображения курсора подчеркивания и функции noCursor() функция выключения. Использование clear() функция, мы можем очистить ЖК-экран.

lcd.clear(); // Clears the LCD screenCode language: Arduino (arduino)

Пример прокрутки текста на LCD 16x2 и Arduino

Если у нас есть текст длиной более 16 символов, мы можем прокручивать текст с помощью scrollDisplayLeft() илиscrollDisplayRight() функция из библиотеки LiquidCrystal.

Вот пример кода:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2);
  lcd.print("Scrolling Text Example");
}
void loop() {
  lcd.scrollDisplayLeft();
  delay(500);
}Code language: Arduino (arduino)

Мы можем выбрать, будет ли текст прокручиваться влево или вправо, используя функцию scrollDisplayLeft(). илиscrollDisplayRight() функции. С помощью delay() мы можем установить скорость прокрутки.

Если вы хотите больше контролировать прокрутку текста, вы также можете сделать прокрутку самостоятельно, используя цикл for. Вот пример:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display

}

void loop() {
  // scroll text to the right
  for (int i = 0; i <= 13; i++) {
    lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
    lcd.print("LCD");
    delay(500); // 1 second delay
    lcd.clear(); // Write a character to the LCD
  }
  // scroll text to the left
  for (int i = 12; i >= 1; i--) {
    lcd.setCursor(i, 0);
    lcd.print("LCD");
    delay(500); 
    lcd.clear(); 
  }
}Code language: Arduino (arduino)

Как создавать и отображать пользовательские символы на ЖК-дисплее

В дополнение к символам ASCII с помощью библиотеки LiquidCrystal также можно создавать и отображать на ЖК-дисплее пользовательские символы.

Мы можем указать внешний вид каждого символа массивом из 8 байт. Вот пример кода:

#include <LiquidCrystal.h>

byte heart[8] = {  // Array of bytes
  B00000,          // B stands for binary formatter and the five numbers are the pixels
  B01010,
  B11111,
  B11111,
  B01110,
  B00100,
  B00000,
  B00000
};

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

byte lock[8] = {
  B01110,
  B10001,
  B10001,
  B11111,
  B11011,
  B11011,
  B11111,
  B00000
};

byte character[8] = {
  B11111,
  B10101,
  B11111,
  B01010,
  B01110,
  B11111,
  B01110,
  B01110
};


LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
  lcd.createChar(0, heart); // Create a custom character
  lcd.createChar(1, smile);
  lcd.createChar(2, lock);
  lcd.createChar(3, character);

  // Clears the LCD screen
  lcd.clear();

  // Print a message to the LCD
  lcd.print("Custom Character");
}

void loop() {
  lcd.setCursor(1, 1);
  lcd.write(byte(0));  // Display the custom character 0, the heart

  lcd.setCursor(5, 1);
  lcd.write(byte(1));

  lcd.setCursor(9, 1);
  lcd.write(byte(2));

  lcd.setCursor(13, 1);
  lcd.write(byte(3));
}Code language: Arduino (arduino)

Мы можем заметить, как мы можем указать внешний вид символа, заменив 0 на 1 в сетке 5×8 пикселей.

В настройках мы должны создать собственный символ с помощью createChar() функция.

lcd.createChar(0, heart); // Create a custom characterCode language: Arduino (arduino)

Первый параметр в этой функции — это число от 0 до 7, иначе мы должны зарезервировать один из 8 поддерживаемых пользовательских символов. Второй параметр — это имя массива байтов.

Мы записываем пользовательский символ на дисплей с помощью write() функцию и в качестве параметра используем номер символа.

lcd.write(byte(0));  // Display the custom character 0, or the heartCode language: Arduino (arduino)

См. также:Учебное пособие по сенсорному экрану Arduino | ЖК-дисплей TFT

Заключение

Итак, мы рассмотрели почти все, что нам нужно знать об использовании ЖК-дисплея с Arduino. Эти ЖК-дисплеи очень удобны для отображения информации для многих проектов электроники. В приведенных выше примерах я использовал ЖК-экран 16×2, но тот же принцип работы применим и к символьным дисплеям любого другого размера.

Надеюсь, вам понравился этот урок и вы узнали что-то новое. Не стесняйтесь задавать любые вопросы в разделе комментариев ниже и не забудьте ознакомиться с моей полной коллекцией из 30+ проектов Arduino.


Производственный процесс

  1. Все, что вам нужно знать о Plunge EDM
  2. Все, что вам нужно знать о чугуне
  3. Все, что вам нужно знать о доменной печи
  4. Все, что вам нужно знать о фрезерном станке
  5. Все, что вам нужно знать о строгальном станке
  6. Все, что вам нужно знать о формовочной машине
  7. Все, что вам нужно знать о металлообработке
  8. Все, что вам нужно знать о станке с ЧПУ
  9. Все, что вам нужно знать о машинном прессе
  10. Все, что вам нужно знать о гидравлическом прессе