595 Сдвиговый Регистр Не Работает Должным Образом
Я следовал учебнику по управлению 8 светодиодами с помощью сдвигового регистра SIPO SN74HC595N как на Adafruit, так и на Last Minute Engineer. Я использовал Sparkfun Pro Micro (эквивалент Arduino).
Проблема в том, что светодиоды не загораются так, как я ожидаю. Оба гида сказали, что каждый светодиод будет загораться один за другим. После того как все 8 будут зажжены, все они погаснут. Вот мой результат. Другие светодиоды будут либо тускнеть вверх, либо опускаться вниз по мере включения целевого светодиода. Я воспользовался кодом, приведенным в руководстве, и изменил только номер распиновки. Значения резисторов одинаковы для каждого цвета, так что это не может быть резистор. Кто-нибудь знает, что здесь происходит?
/*
Тестовый код для сдвигового регистра SIPO 74HC595N. Используется с Pro Micro
*/
int latchPin = 16;
int clockPin = 15;
int dataPin = 14;
int outputEnablePin = 10;
byte leds = 0; // Переменная для хранения шаблона того, какие светодиоды в данный момент включены или выключены
void setup()
{
// Установите все контакты 74HC595 в качестве выходных
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(outputEnablePin, OUTPUT);
outputEnablePin = LOW;
}
/*
* loop() - this function runs over and over again
*/
void loop()
{
leds = 0; // Изначально выключает все светодиоды, придавая переменной 'leds' значение 0
updateShiftRegister();
delay(500);
for (int i = 0; i < 8; i++) // Turn all the LEDs ON one by one.
{
bitSet(leds, i); // Установить бит, управляющий этим светодиодом в переменной 'leds'
updateShiftRegister();
delay(500);
}
}
/*
* updateShiftRegister() - Эта функция устанавливает фиксатор в low, затем вызывает функцию Arduino "shiftOut", чтобы переместить содержимое переменной "leds" в регистр сдвига, прежде чем снова поставить "фиксатор" high.
*/
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
Схемы:
@Agriculex, 👍0
Обсуждение1 ответ
Проблема затемнения заключалась в том, что микросхема регистра сдвига не была подключена к земле (тупой я).
Однако по-прежнему существует проблема с режимом включения и выключения светодиода. Иногда два светодиода включаются одновременно, и все предыдущие светодиоды гаснут до включения последнего или предпоследнего светодиода. Оказывается, вывод 10 (панель SRCLR) необходимо поднять до максимума, чтобы устранить это несоответствие шаблону.
ДА. Вы не можете оставлять важные контакты, такие как SRCLR, плавающими. Сигналы, которые имеют значение, должны быть намеренно установлены. Верно для любого чипа., @lurker
- 74HC595 регистр сдвига не работает
- Проблема с подключением 2 8-разрядных сдвиговых регистров 74HC595 в каскадном соединении
- Какое сопротивление следует установить между выходом 74hc595 и светодиодами?
- 74HC595 не работает должным образом
- Как Peggy2 управляет строками с помощью декодера 74HC154?
- Данные в двух 8-битных сдвиговых регистрах не изменятся
- Светодиоды не загораются, даже если через них идет ток. Проблема с землей?
- я не могу работать над своим небольшим проектом
- Значения резисторов одинаковы для каждого цвета, так что это не может быть резистор.` Почему ты так думаешь? Ток через светодиод диктуется значением резистора и прямым напряжением светодиода. Прямое напряжение светодиода диктуется цветом. Таким образом, вам нужно правильно подобрать размер резистора для каждого цвета светодиода., @Majenko
Тем не менее, тот факт, что некоторые включаются частично, когда они не должны этого делать, на самом деле вызывает беспокойство., @Majenko
Ваш pro micro-это 3,3 В или 5 В?, @Majenko
Pro Micro-5V. Что я имел в виду под резисторами, так это два светодиода одного цвета и 4 разных цвета. Я вычисляю значение резисторов на основе их заданного напряжения и тока для каждого цвета. Значение резистора одинаково для пары светодиодов одного цвета., @Agriculex
Это действительно поможет, если вы добавите схему того, как вы на самом деле построили схему, вместо того, чтобы я пытался отладить вашу схему из анимированного GIF с низким разрешением. Ваш код выглядит нормально на первый взгляд, кстати., @StarCat
GND 74HC595 подключен к правой силовой рейке (синяя линия) на вашей макетной плате. Но этот рельс **не соединяется** с GND Arduino., @Gerben
Я делал схему для StarCat и только что обнаружил эту ошибку GND! Глупый я! Я подключил его к земле, и теперь диммирующие светодиоды исчезли! Однако у меня все еще есть проблемы со светодиодом. Светодиоды не загораются в том порядке, в котором их спроектировал код., @Agriculex
@Agriculex, рад быть полезным ;-) Вы могли бы написать ответ на свой собственный вопрос., @StarCat
Я только что нашел решение проблемы с шаблоном. В руководствах не было сказано (по крайней мере, недостаточно ясно), что вывод 10 (SRCLR с линией/полосой сверху) должен быть подключен к 5V., @Agriculex
@Agriculex - Пожалуйста, ответьте на свой собственный вопрос, а затем примите этот ответ в течение 48 часов., @VE7JRO
StackExchange-это *не* форум. Вы не редактируете заголовок вопроса с помощью "Решено", если у вас есть ответ. Вместо этого вы пишете ответ и (позже, когда вам разрешат) отмечаете его. Пожалуйста, исправьте это. Люди, приходящие сюда, не ищут "Решенных", они ищут отмеченные ответы., @the busybee
Сделал это только что. Я все еще новичок в том, как работает StackExchange opps., @Agriculex