Информационный портал MSEVM






Главная > Arduino > Учебник для MEGA2560 > Урок 27. 74HC595 And Segment Display.

Обзор

После изучения уроков 24, 25 и 26 мы будем использовать сдвиговый регистр 74HC595 для управления сегментным дисплеем. На сегментном дисплее появится число от 0-9.



Необходимые компоненты:
  • Lafvin Mega2560 R3 - 1шт.
  • 830 tie-points Breadboard - 1шт.
  • Микросхема 74HC595 - 1шт.
  • Одноразрядный семисегментный индикатор - 1шт.
  • Резистор 220 Ом - 8шт.
  • M-M провода - 26шт.

Описание компонентов

Seven segment display:

Ниже приведена схема контактов семисегментного индикатора



0-9 десять цифр соответствуют каждому сегменту следующим образом (в следующей таблице применяется общий катод семисегментного индикатора, если вы используете общий анод, то в таблица нужно заменить все 0 на 1, и все 1 на 0.):



Принципиальная схема:



Монтажная схема:



В следующей таблице показана семисегментная таблица соответствия выводов дисплея 74HC595:



Шаг первый: подключите 74HC595
Во-первых, проводка подключается к источнику питания и заземлению:
VCC (контакт 16) и MR (контакт 10) подключены к 5V
GND (контакт 8) и OE (контакт 13) для заземления DS, ST_CP и SH_CP пин:
DS (pin 14) подключен к плате MEGA2560 R3 pin 2 (рисунок ниже желтой линии)
ST_CP (pin 12, защелка pin) подключен к плате MEGA2560 R3 pin 3 (рис. синяя линия ниже)
SH_CP (pin 11, clock pin) подключен к плате MEGA2560 R3 pin 4 (рисунок ниже белой линии)
Шаг второй: подключите семисегментный индикатор.
Семи-сегментный дисплей 3, 8 пин к платформе Mega2560 R3 к GND (в этом примере используется индикатор с общим катодом, если вы используете общий анод, пожалуйста, подключите 3, 8 pinк плате MEGA2560 R3 + 5V).

Согласно приведенной выше таблице, подключите 74HC595 Q0 ~ Q7 к семисегментномудисплею соответствующего Штыря (A ~ G и DP), а затем каждую ногупоследовательно в резисторе 220 Ом

Код:

После подключения, пожалуйста, откройте программу в папке с кодом Урок 27 и нажмите кнопку Загрузить, чтобы загрузить программу. См. Урок 2 для получения подробной информации о загрузке программы при наличии ошибок.

Первое, что следует отметить, это то, что мы изменили название аналогового пина на"lightPin", а не "potPin", поскольку у нас больше нет подключенного переменного резистора. Единственное другое существенное изменение в эскизе - это строка, которая вычисляет, сколько светодиодов нужно зажечь:


int numLEDSLit = reading / 57; // all LEDs lit at 1k
На этот раз мы делим исходное значение на 57, а не на 114. Другими словами, мы делим его наполовину так же, как мы сделали с переменным резистором, чтобы разделить его на девять зон. Этот дополнительный фактор должен учитывать фиксированный резистор 1 ком. Это означает, что когда фотоэлемент имеет сопротивление 1 ком (такое же, как и фиксированный резистор), исходное значение будет равно 1023/2 = 511. Это будет приравниваться ко всем горящим светодиодам, а затем бит (numLEDSLit) будет равен 8.

Пример:



Тема форума: http://msevm.com/forum/index.php?topic=9893





e-mail рассылки
Радиолюбитель
Подписаться письмом

















afb44aa5




Яндекс цитирования Rambler's Top100