Arduino — Отображение яркости светодиода на LCD 16x2
В этом проекте мы будем отображать яркость светодиода на LCD 16x2 с индикатором прогресса. Это хороший проект Arduino для начинающих, чтобы познакомиться с LCD-дисплеем. Мы предоставляем список необходимых компонентов, схему подключения и код.
Смотрите видео-демонстрацию ниже
Знакомство с LCD
Самый простой и недорогой способ отображения информации — это LCD (жидкокристаллический дисплей). Они встречаются в повседневных электронных устройствах, таких как торговые автоматы, калькуляторы, паркоматы, принтеры и так далее, и идеально подходят для отображения текста или небольших иконок. На рисунке ниже показан LCD 16x2 спереди и сзади.
Этот LCD имеет 2 строки, и каждая строка может отображать 16 символов. Он также имеет светодиодную подсветку для регулировки контрастности между символами и фоном.
Когда вы покупаете LCD 16x2, обычно он не поставляется с контактами, совместимыми с макетной платой. Поэтому вам могут понадобиться штыревые разъёмы (headers).
Необходимые компоненты
Для этого проекта вам понадобятся следующие компоненты:
Arduino UNO — читайте Лучшие стартовые наборы Arduino
Вы можете использовать ссылки выше или перейти напрямую на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!
Схема подключения
Соедините все компоненты, следуя приведённой ниже схеме.
В следующей таблице показано краткое описание каждого вывода LCD-дисплея. Убедитесь, что ваш LCD использует такую же распиновку.
Код
Скопируйте следующий код и загрузите его на вашу плату Arduino. Код хорошо прокомментирован, чтобы вы могли легко понять, как он работает, и модифицировать его для использования в ваших собственных проектах.
/*
Created by Rui Santos
All the resources for this project:
https://randomnerdtutorials.com/
Based on some Arduino code examples
*/
// include the library code
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int potPin = A0; // Analog pin 0 for the LED brightness potentiometer
int ledPin = 6; // LED Digital Pin with PWM
int potValue = 0; // variable to store the value coming from the potentiometer
int brightness = 0; // converts the potValue into a brightness
int pBari = 0; // progress bar
int i = 0; // foor loop
//progress bar character for brightness
byte pBar[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
};
void setup() {
// setup our led as an OUTPUT
pinMode(ledPin, OUTPUT);
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD
lcd.print(" LED Brightness");
//Create the progress bar character
lcd.createChar(0, pBar);
}
void loop() {
// clears the LCD screen
lcd.clear();
// Print a message to the LCD
lcd.print(" LED Brightness");
//set the cursor to line number 2
lcd.setCursor(0,1);
// read the value from the potentiometer
potValue = analogRead(potPin);
// turns the potValue into a brightness for the LED
brightness=map(potValue, 0, 1024, 0, 255);
//lights up the LED according to the bightness
analogWrite(ledPin, brightness);
// turns the brighness into a percentage for the bar
pBari=map(brightness, 0, 255, 0, 17);
//prints the progress bar
for (i=0; i < pBari; i++)
{
lcd.setCursor(i, 1);
lcd.write(byte(0));
}
// delays 750 ms
delay(750);
}
Демонстрация
После загрузки кода на вашу плату Arduino вы можете вращать потенциометр для регулировки яркости светодиода и изменения индикатора прогресса на LCD.
Для полной демонстрации посмотрите видео в начале статьи.
Заключение
В этой статье мы показали базовый пример использования LCD-дисплея с Arduino. Теперь идея состоит в том, чтобы модифицировать скетч и использовать дисплей в других проектах.
Если вы начинающий в Arduino, мы рекомендуем пройти наш Мини-курс Arduino, который поможет вам быстро начать работу с этой замечательной платой.
Если вам нравится Arduino, вам также могут понравиться:
Есть вопросы? Оставьте комментарий ниже!
Спасибо за чтение. Если вам понравилась эта статья, возможно, вам понравятся и следующие, поэтому поддержите нас, подписавшись на наш блог.