===== Эксперимент 19. Счетчик (Версия 4.0) =====
Используя сдвиговый регистр 74НС595 усовершенствуем проект счетчика нажатий на кнопку.
==== Схема эксперимента ====
{{ :products:ardu:exp19_sch.png?nolink&400 |}}
//Рисунок 1. Электрическая принципиальная схема эксперимента//
{{ :products:ardu:exp19.png?direct&600 |}}
//Рисунок 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[]''. Для краткости записи кодировку символов записываем не в двоичной системе а в десятичной.
==== Дополнительное задание ====
Попробуйте добавить еще одну кнопку в проект.