Семисегментный индикатор Ардуино

Семисегментный индикатор подключение к Ардуино

Семисегментный индикатор Ардуино ► подключить можно через макетную плату, главное знать распиновку индикатора, чтобы управлять индикатором от Arduino.

Одноразрядный семисегментный индикатор подключить к Ардуино можно через макетную плату, самое главное знать распиновку (цоколевку индикатора), чтобы управлять сегментами от Arduino Uno. Рассмотрим, как подключить семисегментный индикатор к Ардуино и сделать простую программу с таймером. Будем управлять индикатором напрямую от микроконтроллера, используя тактовую кнопку.

Вывод числа на семисегментный индикатор

Семисегментный индикатор распиновка

Распиновка (цоколевка) семисегментного индикатора
Распиновка 1-разрядного семисегментного индикатора hdsp 7503

На картинке выше представлена распиновка одноразрядного семисегментного индикатора с общим катодом (минусом). Модуль представляет из себя небольшую led индикатор в котором находится семь светодиодов (благодаря этому индикатор и получил свое название) и восьмой светодиод в виде точки. Включая светодиоды в разной последовательности от Ардуино Уно, можно выводить различные цифры на панели.

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

Как подключить семисегментный индикатор

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • одноразрядный семисегментный индикатор;
  • тактовая кнопка;
  • резисторы 220 Ом;
  • макетная плата (breadboard).
  • провода «папа-папа».
Схема подключения семисегментного индикатора
Схема подключения семисегментного индикатора к Ардуино

Для использования данного модуля без сдвигового регистра потребуется использовать большое количество пинов Arduino Uno для включения светодиодов на индикаторе. В первом примере мы будем просто поочередно включать / мигать светодиодами для индикации на панели различных чисел. Соберите схему, как на представленной выше картинке и загрузите следующий скетч в микроконтроллер.

Скетч. Вывод чисел на 7-сегментный индикатор Ардуино

#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);
}

Пояснения к коду:

  1. скетч получается большим, поэтому мы ограничились тремя числами. Вывод других чисел на семисегментный индикатор Arduino не составит труда.

Управление семисегментными индикаторами

Схема подключения семисегментного индикатора с кнопкой
Схема подключения семисегментного индикатора с кнопкой

В следующем примере переключение чисел на индикаторе будет происходить только при нажатии тактовой кнопки. Дойдя до числа 3, таймер вновь обнулится и будет ожидать повторного нажатия на кнопку. Это довольно простые программы для Ардуино и семисегментного индикатора, для более сложных и интересных программ необходимо уже использовать сдвиговый регистр 74hc595 для Ардуино.

Скетч. Одноразрядный семисегментный индикатор и кнопка

#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);
   if (digitalRead(BUTTON) == HIGH) { delay(500); 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);
      if (digitalRead(BUTTON) == HIGH) { delay(500); 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);
      if (digitalRead(BUTTON) == HIGH) { delay(500); 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);
      if (digitalRead(BUTTON) == HIGH) { delay(500); v = 0; }
   }
}

Пояснения к коду:

  1. переменная byte v = 0; используется в программе для перехода одного цикла while к другому. При нажатии на кнопку значение переменной v меняется;
  2. в программе поставлена небольшая задержка в каждом условии для защиты от быстрого перехода от одного цикла while в другой.

Мы ограничились лишь знакомством с данным модулем и его применением с платой Ардуино. Используя несколько панелек или четырехразрядный семисегментный индикатор можно уже сделать полноценный таймер на Ардуино или часы реального времени. Эти схемы мы разместили в разделе Проекты на Ардуино для начинающих, где любой может найти по своему вкусу интересный проект на микроконтроллере.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *