После изучения уроков 24,
25 и 26 мы будем
использовать сдвиговый регистр 74HC595 для управления сегментным дисплеем.
На сегментном дисплее появится число от 0-9.
Ниже приведена схема контактов семисегментного индикатора
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.