74HC595 не работает должным образом
Я использовал следующий код для последовательного включения 8 желтых светодиодов, но он работает только в Proteus, как и предполагалось. Однако на моей макетной плате все 8 светодиодов продолжают мигать, а резисторы на 220 Ом. Кроме того, когда я пытаюсь изменить значение переменной «светодиоды», например, на 0x0F, она не загорается, я читал в руководстве по переключению Arduino, что конденсатор 0,1F на защелке будет даже мерцать, поэтому теперь я действительно запутался.
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
byte leds = 0;
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop()
{
leds = 0;
updateShiftRegister();
delay(500);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(100);
}
}
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
@amr, 👍1
Обсуждение1 ответ
РЕШЕНО! я пробовал много решений, чтобы заставить его работать, но это просто не сработало, и вот решения, которые я пробовал а) использовать 0,1 мкФ или 10 мкФ между VCC и заземляющим контактом 74hc595. b) установить нулевое значение для clockPin и dataPin перед отправкой данных. в) замена резисторов с 220 Ом на 470 Ом.
тем не менее, я подключил контакт 13 74HC595 к контакту Arduino и обнулил его, чтобы 8 выходов были готовы к работе, затем digitalWrite(out_enable_Pin, HIGH), отправьте данные, как показано в следующем коде, затем digitalWrite(out_enable_Pin, LOW ) снова .
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
int out_enable_Pin=13;
int resetPin=5;
char leds = 0;
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(out_enable_Pin, OUTPUT);
pinMode(resetPin, OUTPUT);
}
void loop()
{
digitalWrite(out_enable_Pin, LOW);
digitalWrite(resetPin, HIGH);
for (int i = 0; i <255; i++)
{
leds=i;
updateShiftRegister();
delay(1000);
}
}
void updateShiftRegister()
{
digitalWrite(out_enable_Pin, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, leds);
digitalWrite(out_enable_Pin, LOW);
digitalWrite(latchPin, HIGH);
}
- я не могу работать над своим небольшим проектом
- Светодиоды: разница между общим анодом и общим катодом
- Улучшенное циклическое переключение цветов RGB.
- Отображение двоичных данных на светодиодах
- 74HC595 регистр сдвига не работает
- Считывание 10-контактного 7-сегментного (2 цифры) сингла Arduino 1
- Акцептант векселей ИКТ
- Как погасить светодиод за определенное время с помощью FastLED
Задержка после «updateShiftRegister» всего 100 мс? Это означает, что в течение секунды все светодиоды обновляются. Из-за этого они будут мигать? Также; Вы пробовали конденсатор 0.1F?, @Paul
что значит "мигать все вместе"?, @jsotola