Проблема с подключением 7 Segment Display

По заданию дисплей должен отображать 10 последовательный цифр с задержкой в 1 секунду, но при запуске программы ничего не происходит, loop запускается и повторяется, но без изменения дисплея…

int dataPin = 10;
int latchPin = 11;
int clockPin = 12;

void setup(){
  pinMode(dataPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  digitalWrite(latchPin, HIGH);
}
void loop(){
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01111110);//0
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01010000);//1
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01101101);//2
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01111001);//3
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01010011);//4
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B0011011);//5
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B00101111);//6
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01110000);//7
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01111111);//8
  digitalWrite(latchPin, HIGH);
  delay(1000);
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, LSBFIRST, B01111011);//9
  digitalWrite(latchPin, HIGH);
  delay(1000);
}

А если уровень защелки поменять местами ?..

По подробнее пожалуйста, я не все понимаю из написанного

9 строка digitalWrite(latchPin, LOW);
и дальше поменять местами LOW и HIGH для latchPin

Так же, без успешно. Первые 2 секунды никакой реакции

А препод ругать на это не будет?

Недавно подобная тема была с каким-то светодиодным контроллером.
Там, вроде, надо было защелку дернуть резко - high и сразу low. Или low, затем high…

Или просто в мусорку одним движением…

глупо надеятся на помощь предоставляя наскальные рисунки вместо схемы

Судя по наскальному рисунку (в котором один резистор на все сегменты), индикатор с общим анодом, а коды сделаны под общий катод.

Но это не важно.

Если Вы

то обращайтесь к автору (кто-то же этот бред написал!), пусть он Вам сопли вытирает. Студентам-двоечникам и прочим ленивым задницам здесь не подают. Или попробуйте в коммерческий раздел, может за бабки кто-нибудь и сделает.

3 лайка

ТС - если взять дисплей с общим катодом (не знаю как это делать в тинкеркаде) и подредактировать вывод цифр 5 и 6, то всё работает …

Тасовать сегменты в произвольном порядке - допустимая, но плохая идея !!!

И как тут понять где какие ножки у регистра? Открывай даташит, рисуй человеческую схему.
Впрочем, иди в ПТУ на повара. Может там повезёт.

Ну, как, скачайте даташит, посмотрите распиновку. Вам ТС такую возможность поковыряться во всём этом дал, а Вы не цените!

3 лайка

Не в бровь…

По щеке, причем сразу две.)

1 лайк

Нормальный 595. Примеров в интернете мильон. На каждый сегмент по резистору. Ну и руки заточить, если тупые.

Да там строгать нужно, или даже топором…

1 лайк