Arduino — Отображение яркости светодиода на LCD 16x2

В этом проекте мы будем отображать яркость светодиода на LCD 16x2 с индикатором прогресса. Это хороший проект Arduino для начинающих, чтобы познакомиться с LCD-дисплеем. Мы предоставляем список необходимых компонентов, схему подключения и код.

Смотрите видео-демонстрацию ниже

Знакомство с LCD

Самый простой и недорогой способ отображения информации — это LCD (жидкокристаллический дисплей). Они встречаются в повседневных электронных устройствах, таких как торговые автоматы, калькуляторы, паркоматы, принтеры и так далее, и идеально подходят для отображения текста или небольших иконок. На рисунке ниже показан LCD 16x2 спереди и сзади.

LCD 16x2 дисплей — вид спереди и сзади

Этот LCD имеет 2 строки, и каждая строка может отображать 16 символов. Он также имеет светодиодную подсветку для регулировки контрастности между символами и фоном.

Когда вы покупаете LCD 16x2, обычно он не поставляется с контактами, совместимыми с макетной платой. Поэтому вам могут понадобиться штыревые разъёмы (headers).

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

Компоненты для проекта Arduino LCD яркость светодиода

Для этого проекта вам понадобятся следующие компоненты:

Вы можете использовать ссылки выше или перейти напрямую на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!

Схема подключения

Соедините все компоненты, следуя приведённой ниже схеме.

Схема подключения Arduino LCD 16x2 с потенциометром и светодиодом

В следующей таблице показано краткое описание каждого вывода LCD-дисплея. Убедитесь, что ваш LCD использует такую же распиновку.

Распиновка LCD 16x2 — описание выводов

Код

Скопируйте следующий код и загрузите его на вашу плату 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 16x2

Для полной демонстрации посмотрите видео в начале статьи.

Заключение

В этой статье мы показали базовый пример использования LCD-дисплея с Arduino. Теперь идея состоит в том, чтобы модифицировать скетч и использовать дисплей в других проектах.

Если вы начинающий в Arduino, мы рекомендуем пройти наш Мини-курс Arduino, который поможет вам быстро начать работу с этой замечательной платой.

Если вам нравится Arduino, вам также могут понравиться:

Есть вопросы? Оставьте комментарий ниже!

Спасибо за чтение. Если вам понравилась эта статья, возможно, вам понравятся и следующие, поэтому поддержите нас, подписавшись на наш блог.