Shift Register SN74HC595N
- Войдите на сайт для отправки комментариев
Чт, 24/04/2014 - 19:27
Здраствуйте. Никак немогу понять принцип работы шифт регистра SN74HC595N. Я в этом деле еще новичок, поетаму почитав даташит ничего практически не понял. Меня интересует как можно вводит конкретное число, без с сдвигов, например, надо чтобы горели 3 последних LED, то есть 11100000. Конечно, это можно сделать со сдвигами, а если мне понадобится 11111011? Расскажите, или укажите где можно достать информацию об данного вида шифт регистра.
Этот регистр имеет так называемую "защелку", это буфер, значения на выходах меняются только тогда когда операция сдвига завершена. В момент сдвига значения выходов остаются не изменными
А Как в схему можно добавить кнопки, добавивь просто, LED мигают и на кнопки не реагирует шифт рег?
сформулируйте вопрос, на ваш поток сознания сложно ответить ))) Разве что так:
ДА!
Когда я добавляю pushbutton между D2 и DS, D4 и ST_CP, D5 и SH_CP всё LED начинают мигать безпрерывно. Интересно то что схема реагирует на мою ладонь, то есть подношу я ладонь к кнопкам, всё леды загораюстя, уношу, по одному потухнают. Использую я вот эту схему. Как было бы более корректнее подключить кнопки в схему?
не стоит патытаться управлять сдвиговым регистром напрямую кнопкой. Кнопка генерит серию импульсов (так называемый дребезг контактов). Бурите любой пример из интернета и управляйте ригистром с ардуино
А можно ли собрать какойнибуть аналог? Я хочу управлять сдвиговый регистр мануально, возможно ли это?
ОЕ надо на землю подключить, иначе он так и будет срабатывать на руку...
мануально? управляйте кнопкой ардуино, а ардуино пусть управляет регистром
Теперь я примерно понял как работает сдвиговый регистр. У меня сама схема была немного неправильна. Вот здесь я нашел правильный ответ:
http://arduino.ru/Tutorial/registr_74HC595
Но один нюанс я всё таки не понял, почему при последней команде, которая посылает "1", сами ЛЕД не обновляется пока не подаж "0"
Код который я использую:
digitalWrite(SH_CP, LOW);
shiftOut(DS,ST_CP,MSBFIRST,1);
digitalWrite(SH_CP,HIGH);
К примеру если нам надо 1111, то выполнив четыре такие команды - загорятся только три ЛЕД - 00000111. Решения этому подав 0. Но вот почему так происходит?
Теперь я примерно понял как работает сдвиговый регистр. У меня сама схема была немного неправильна. Вот здесь я нашел правильный ответ:
http://arduino.ru/Tutorial/registr_74HC595
Но один нюанс я всё таки не понял, почему при последней команде, которая посылает "1", сами ЛЕД не обновляется пока не подаж "0"
Код который я использую:
digitalWrite(SH_CP, LOW);
shiftOut(DS,ST_CP,MSBFIRST,1);
digitalWrite(SH_CP,HIGH);
К примеру если нам надо 1111, то выполнив четыре такие команды - загорятся только три ЛЕД - 00000111. Решения этому подав 0. Но вот почему так происходит?
Приведите код программы, скорее всего у вас ошибка именно там.