74HC595 регистр сдвига не работает
Несколько дней назад я получил свой комплект Arduino и прошел через некоторые учебные пособия.
Я добрался до 8 светодиодов со сдвиговым регистром, где я застрял. Ничего не загорелось после того, как я подключил все и загрузил скетч.
Это схема, которую я попытался воссоздать с помощью Fritzing, и следующий код, который я использовал, из учебника :
int tDelay = 100;
int latchPin = 11; // (11) ST_CP [RCK] on 74HC595
int clockPin = 9; // (9) SH_CP [SCK] on 74HC595
int dataPin = 12; // (12) DS [S1] on 74HC595
byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop()
{
leds = 0;
updateShiftRegister();
delay(tDelay);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(tDelay);
}
}
Я также попытался использовать 8-сегментный цифровой дисплей, используя тот же регистр сдвига, также потерпел неудачу.
Есть ли что-то неправильное, что я делаю, или это может быть, что маленький чип сломан?
Я случайно обнаружил, что, когда я переключаю землю с контакта 8 на 595 на 5V, все светодиоды загораются.
Обновление : У меня есть такая же схема в Tinkercad, что-то вроде симулятора Arduino. После сброса кода и запуска моделирования, после того, как он загорается 5-й светодиод, я получаю следующее предупреждение :
Однако, когда я меняю резисторы 220 Ом на что-то вроде резисторов 500 Ом, это всплывающее окно исчезает. Может быть, это еще одна причина, по которой мой чип может быть сломан в данный момент?
@hiimsoba, 👍-1
Обсуждение3 ответа
Одно упущение, которое я вижу, заключается в том, что у вас нет байпасного конденсатора через Vcc и Gnd 74HC595. Без этого у вас была бы несогласованная работа.
Но если бы вы поменяли мощность на чипе, это было бы главной проблемой, и я уверен, что чип поврежден.
Что бы я сделал, так это поставил светодиоды на часы, данные и линии защелки. А затем сделайте задержку очень длинной, 1 секунду, чтобы вы могли видеть, что делают линии. Просто чтобы убедиться, что вы получаете результат, которого ожидаете. Но сначала положите на чип байпасный колпачок.
Также дважды проверьте, что ваши светодиоды находятся в правильном положении.
Я совсем новичок в области электроники, могу я спросить, что я должен делать, шаг за шагом? Я следовал руководству, которое получил вместе с комплектом, и в нем не было никаких конденсаторов. Светодиоды расположены правильно, я уже пробовал каждый из них раньше, и все они загораются., @hiimsoba
Несколько мыслей
Подключение 5 В к контакту 8 (=gnd) не является хорошей идеей. Это может не привести к каким-либо повреждениям, если контакт 16(=vcc) также подключен к 5v, но я бы не стал полагаться на это. Как правило, обратное напряжение убьет всю электронику, если они специально не защищены от него.
Для светодиодов я бы использовал резисторы от 1k до 10k Ом. Это дает еще достаточно тока, чтобы увидеть, как они загораются. Использование 330 Ом просто занимает больше тока и делает светодиоды чрезвычайно яркими (3 мА достаточно).
Для проверки того, работает ли что-то простое, например, shiftregister, flipflop или логический элемент, я бы вообще не использовал микроконтроллер. Вы можете просто использовать пару переключателей, прикрепленных к контактам CLK и защелки, с ползунковым переключателем, прикрепленным к контакту ДАННЫХ, чтобы выбрать 1 или 0 входных битов. Это устраняет одну точку, где все может пойти не так.
Независимо от того, вставляете ли вы перепускной колпачок, не будет иметь значения, если ваш запас достаточно мощный и стабильный. Я использую зарядное устройство своего сломанного ноутбука, которое может доставить 5 В до 2,5 ампер. В этой установке мне не нужно никакого обхода, хотя это все еще лучшая практика, чтобы включить его.
Добавление светодиодов к последовательному входу, защелке и переключению часов и последовательному выходу также может помочь решить проблему.
Также убедитесь, что у вас нет хитрых кабелей. Если какой-либо из проводов сломан или имеет микроскопические внутренние разрывы, это может привести к неправильному поведению и очень трудно найти.
Одна вещь, которую я сделал, когда я попытался, если мои чипы работают, это сначала использовать известный хороший чип от коллеги, чтобы подтвердить, что схема была в порядке.
В зависимости от того, откуда вы берете энергию, добавление светодиода питания, как правило, тоже хорошая идея. Если вы питаете все от powerbank, вы можете обнаружить, что некоторые из них просто отключают выходы, если есть меньше, чем определенный пороговый ток, вытекающий наружу. Это может привести к таким эффектам, как "схема работала в течение 30 секунд, а затем умерла. После отключения и ожидания пару секунд и пополнения питания он снова работает..." По этой причине я включаю светодиод питания почти в каждый свой проект.
Похоже, что ваш ответ получит несколько голосов "против". Возможно, если бы вы потрудились правильно построить английские предложения, это помогло бы? Предложения начинаются с заглавной буквы, а слово "я" пишется с заглавной буквы. Это не сообщение с мобильного., @Nick Gammon
Действительно? Это кажется неоправданно жестким, чтобы проголосовать за ответ, потому что он не пунктуирован и не начинается с заглавных букв правильно. Я также не мог видеть, что в качестве причины в справочном центре https://arduino.stackexchange.com/help/privileges/vote-down ... Вот если бы английская литература была ТАКИМ сообществом, я бы, пожалуй, согласился. Жаль, что люди не обязаны давать повод для голосования... Я получил несколько на сайте arduino и часто не имею понятия, почему., @GMc
Это хорошее обсуждение рекомендаций по устранению неполадок (особенно, например, вопрос о тестировании с помощью коммутаторов вместо кода микроконтроллера). Я внес грамматические правки и удалил некоторые излишне провокационные фразы ("глупая идея" и т. Д.), @Assad Ebrahim
Единственный способ, который я нашел, чтобы заставить эту схему работать , - это подключить 8 подтягивающих резисторов (1k) от vcc к каждому из выходных выводов 74hc595 , без которых светодиоды никогда не загораются.
- Проблема с подключением 2 8-разрядных сдвиговых регистров 74HC595 в каскадном соединении
- Обнаружение передачи I2C с помощью светодиода
- Какое сопротивление следует установить между выходом 74hc595 и светодиодами?
- 74HC595 не работает должным образом
- Рекомендация по модулю или подходу к проектору?
- Как Peggy2 управляет строками с помощью декодера 74HC154?
- 595 Сдвиговый Регистр Не Работает Должным Образом
- Данные в двух 8-битных сдвиговых регистрах не изменятся
Светодиоды загораются из-за защитных диодов на входах/выходах. У вас есть отрицательное напряжение на выходах, поэтому ток течет. Я бы беспокоился о вводе OE, так как он жестко привязан к земле. Защитные диоды предназначены только для малых токов, поэтому я ожидаю, что защитный диод горит, и после этого /OE может быть разрушен., @KIIV
Кстати: код + схема работает., @KIIV
Ладно... спасибо, что подтвердил. Наверное, придется купить новый вахтовый регистр... проблема в том, что я понятия не имею, где в городе можно достать такую электронику. Все равно спасибо!, @hiimsoba
И проверьте, не слишком ли ослаблены соединения в макете. Из-за этого у меня один мертвый "пиксель"., @KIIV
Я попробовал конфигурацию в разных местах на макете и с разными проводами... тот же результат., @hiimsoba
рельсы питания и заземления на макетах иногда прерываются в середине макета, @Juraj