Одноразрядный семисегментный индикатор Arduino можно подключить к плате с помощью макетной платы, главное — знать распиновку модуля для управления сегментами от микроконтроллера. Рассмотрим в этой статье, как подключить 7-сегментный индикатор к Arduino Uno и составим простую программу с таймером, будем управлять светодиодным индикатором 5161as непосредственно с платы Ардуино и с помощью тактовой кнопки.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- 7-сегментный дисплей 5161
- резисторы
- тактовая кнопка
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
На рисунке показана распиновка одноразрядного 7-сегментного дисплея с общим катодом (минус) и общим анодом (минус). Модуль представляет собой небольшой светодиодный индикатор, который содержит семь светодиодов (отсюда и название индикатора) и восьмой светодиод в форме точки. Включая светодиоды модуля в разной последовательности от микроконтроллера, можно выводить различные числа на 7-сегментном индикаторе.
7 сегментный индикатор распиновка, характеристики

Характеристики семисегментный индикатор
- Напряжение питания: от 3 В до 5 В
- Диапазон рабочих температур: от -40°C до +85°C
Обратите внимание, что у этого модуля нет встроенных резисторов, поэтому для подключения светодиодов используйте внешние резисторы. Если вам непонятна распиновка семисегментного дисплея с общим анодом, вы можете экспериментально установить распиновку, подключая питание к разным контактам. При неправильном подключении ничего не произойдет, но без резистора светодиоды модуля перегорят.
Как подключить семисегментный индикатор к Ардуино

Чтобы использовать модуль 5161as или hdsp 7503 без сдвигового регистра 74hc595, нам потребуется задействовать большое количество выводов на Arduino Uno. В первом примере мы просто будем поочередно включать и отключать светодиоды для обозначения различных чисел на дисплее. Соберите схему с индикатором, как показано на изображении выше, и загрузите в микроконтроллер следующий пример программы.
Скетч управление семисегментным индикатором
#define A 8
#define B 7
#define C 6
#define D 5
#define E 4
#define F 3
#define G 2
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
}
void loop() {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
delay(1000);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
delay(1000);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
delay(1000);
}
Подключение семисегментного индикатора к Ардуино

В следующем примере цифры на дисплее 7-сегментного индикатора изменяются только при нажатии кнопки. При достижении цифры 3 таймер сбрасывается на нуль и ждет повторного нажатия кнопки. Это довольно простые программы для Arduino и 7-сегментного дисплея, для более сложных и интересных программ на базе микроконтроллеров Ардуино необходимо использовать сдвиговый регистр 74hc595 для Arduino Uno или модуль tm1637.
Скетч управление 7-сегментным дисплеем Ардуино
#define A 8
#define B 7
#define C 6
#define D 5
#define E 4
#define F 3
#define G 2
#define BUTTON 12
byte v = 0;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
delay(500);
if (digitalRead(BUTTON) == HIGH) { v = 1; }
while (v == 1) {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
delay(500);
if (digitalRead(BUTTON) == HIGH) { v = 2; }
}
while (v == 2) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
delay(500);
if (digitalRead(BUTTON) == HIGH) { v = 3; }
}
while (v == 3) {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
delay(500);
if (digitalRead(BUTTON) == HIGH) { v = 0; }
}
}
Заключение. Мы ограничились кратким обзором модуля и его применением с платой Ардуино. Используя несколько панелей или четырехзначный индикатор tm1637, вы уже можете сделать полноценный таймер на Arduino или часы реального времени. Мы разместили схемы и программы этих проектов на нашем сайте в разделе Проекты на Ардуино для начинающих, где каждый сможет найти проект по своему вкусу.
