Используя сдвиговый регистр 74НС595 усовершенствуем проект счетчика нажатий на кнопку.
Рисунок 1. Электрическая принципиальная схема эксперимента
Рисунок 2. Монтажная схема эксперимента
Как и в предыдущем эксперименте контроллер передает последовательный сигнал на вывод DS микросхемы, который преобразуется в параллельный сигнал на выводах Q0…Q7. К этим выводам через токоограничительные резисторы подключаем LED - индикатор.
const int latchPin = 5; const int clockPin = 6; const int dataPin = 4; int keyPin = 13; int data[16] = {254, 176, 237, 249, 179, 219, 223, 240, 255, 243, 247, 159, 206, 189, 199}; void Displ(int num); void setup () { pinMode(latchPin,OUTPUT); pinMode(clockPin,OUTPUT); pinMode(dataPin,OUTPUT); Displ(0); } int x = -1; int button_old = 1; void loop() { if((digitalRead(keyPin) == LOW)&&(button_old == 1)) { x = x + 1; } Displ(0); Displ(x); if (x > 15) {x = 0;} button_old = digitalRead(keyPin); delay(20); } void Displ(int num) { digitalWrite(latchPin,LOW); shiftOut(dataPin,clockPin,LSBFIRST,data[num]); digitalWrite(latchPin,HIGH); }
В отличие от предыдущей версии «Счетчика» у нас изменилась схема подключения LED -индикатора к контроллеру, теперь для передачи сигналов достаточно только трех пинов, более того, используя соединение микросхем 74HC595 каскадом, можно используя все те же три пина подключать дополнительные LED - индикаторы для создания более сложных и интересных проектов.
В программе мы обрабатываем нажатие кнопки и передаем в функцию Displ()
номер закодированного символа в массиве data[]
. Для краткости записи кодировку символов записываем не в двоичной системе а в десятичной.
Попробуйте добавить еще одну кнопку в проект.