Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:aruno:exp19 [2020/06/20 13:26] – alexnik | products:aruno:exp19 [2020/06/26 13:19] (текущий) – alexnik | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Эксперимент 19. Счетчик (Версия 4.0) ===== | ===== Эксперимент 19. Счетчик (Версия 4.0) ===== | ||
- | В 12 эксперименте мы собирали устройство Люксметр. Это устройство также можно собрать используя | + | Используя сдвиговый регистр 74НС595 усовершенствуем проект счетчика нажатий на кнопку. |
- | Сразу возникает вопрос: " | + | |
- | Все дело в том, что пока мы делаем простые проекты, | + | |
==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
Строка 13: | Строка 11: | ||
// | // | ||
- | В соответствии с [[theory: | + | Как и в предыдущем |
- | * выводы 8 и 13 микросхемы на GND контроллера | + | |
- | * выводы 10 и 16 микросхемы на 5v котроллера | + | |
- | * выводы 11(SH_CP), 12(ST_CP) и 14(DS) микросхемы | + | |
- | * выводы 15(Q0), 1(Q1), 2(Q2), 3(Q3), 4(Q4), 5(Q5), 6(Q6), 7(Q7) микросхемы подключаем | + | |
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
<file cpp Exp19[enable_line_numbers=" | <file cpp Exp19[enable_line_numbers=" | ||
- | int a = 8; | + | const int latchPin |
- | int b = 9; | + | const int clockPin |
- | int c = 11; | + | const int dataPin |
- | int d = 5; | + | int keyPin = 13; |
- | int e = 4; | + | int data[16] = {254, 176, 237, 249, 179, 219, 223, 240, 255, 243, 247, 159, 206, 189, 199}; |
- | int f = 7; | + | void Displ(int num); |
- | int g = 6; | + | |
- | int h = 10; | + | |
- | int keyPin = 3; | + | |
- | int data [11][8] = {{1,1,1,1,1,1,0,1}, //" | + | |
- | {0,1,1,0,0,0,0,1}, //" | + | |
- | | + | |
- | {1, | + | |
- | {0, | + | |
- | {1, | + | |
- | {1, | + | |
- | {1, | + | |
- | {1, | + | |
- | {1, | + | |
- | {0, | + | |
- | void displ (int); | + | void setup () { |
- | + | | |
- | void setup() { | + | pinMode(clockPin,OUTPUT); |
- | for(int i=4;i< | + | pinMode(dataPin,OUTPUT); |
- | pinMode(i,OUTPUT); | + | Displ(0); |
- | pinMode(keyPin,INPUT); | + | } |
- | displ(11); | + | |
- | | + | |
int x = -1; | int x = -1; | ||
int button_old = 1; | int button_old = 1; | ||
- | void loop() { | + | void loop() { |
| | ||
x = x + 1; | x = x + 1; | ||
} | } | ||
- | displ(11); | + | Displ(0); |
- | displ(x); | + | Displ(x); |
- | if (x > 9) {x = 0;} | + | if (x > 15) {x = 0;} |
- | | + | |
| | ||
| | ||
} | } | ||
- | void displ (int num) { | + | void Displ(int num) { |
- | int j = 0; | + | digitalWrite(latchPin,LOW); |
- | | + | |
- | | + | digitalWrite(latchPin,HIGH); |
- | digitalWrite(c, data[num][j]); | + | } |
- | digitalWrite(d, data[num][j]); j = j + 1; | + | |
- | digitalWrite(e, data[num][j]); j = j + 1; | + | |
- | digitalWrite(f, | + | |
- | digitalWrite(g, | + | |
- | digitalWrite(dp, | + | |
- | } | + | |
</ | </ | ||
- | В программе | + | В отличие от предыдущей версии " |
+ | В программе мы обрабатываем нажатие кнопки и передаем в функцию '' | ||
==== Дополнительное задание ==== | ==== Дополнительное задание ==== | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
+ | Попробуйте добавить еще одну кнопку в проект. | ||
</ | </ | ||