#1 2025-07-27 21:20:18

khalimon
Учасник
Зареєстрований: 2020-02-24
Повідомлень: 33

74hc595 не стандартна реалізація індикаціі на 2х чіпах

Вітаю, суспільство. Є готова індикація на двох 74ch595.
Роблю під неї плату керування.
Зазвичай задіяні піни 14 ( данні ), 11 та 12 ( защьолка та тактування ).
А тут задіяні пін данних(14), піни 11 та 12 з'єднані, та задіян пін 13 ( ОЕ )
Зрисовану схему додаю.
Натякніть будь ласка як засвітити потрібну ячейку...

Schematic_New-Project_2025-07-27.jpg

Неактивний

#2 2025-07-27 22:14:35

jokeer
Гість

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Ну, ви ж читали як працює 595?  Читали, правда?
Мені здається, що можна ввімкнути їх послідовно, задіяти SPI і завантажувати дані одною транзакцією. Але без знання специфіки для чого це потрібно, стверджувати не буду.

#3 2025-07-28 00:56:17

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

khalimon пише:

Натякніть будь ласка як засвітити потрібну ячейку...

Судячи з того, що виходи однієї мікросхеми керують транзисторами, а на виходах другої - резистори, це матриця 8x8 з 64 світлодіодів, так? Тоді в кожний момент часу ви можете засвічувати тільки одну секцію з 8 світлодіодів:
Вимикаєте виходи: OE=1.
Всуваєте 16 біт. 8 біт із них обитають секцію, зазвичай тільки одну. Її біт виставлений, в решті нулі (або навпаки, в залежності від схеми). 8 інших біт задають стан світлодіодів у цій секції. Вмикаєте виходи: OE=0.
Щоб керувати всіма 64 світлодіодами, потрібно перемикати секції послідовно з потрібною частотою (від 60 Гц і вище), щоб створювалась ілюзія безперервного світіння. Читайте про динамічну індикацію.
В які саме значення потрібно ставити біти - залежить від вашої схеми підключення світлодіодів. З одним умовно намальованим світлодіодом це незрозуміло.

Неактивний

#4 2025-07-28 02:38:57

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Взагалі, дивна схема. Якщо в базах транзисторів нема опорів, то вони, мабуть, включені по схемі зі спільним колектором (емітерні повторювачі). Але тоді колектори PNP-транзисторів мають підключатись до плюса живлення, а секції світлодіодів послідовно з резисторами - до еміттерів. А на вашій схемі на підключення світлодіодів виведено колектори. Схоже, або забути домалювати резистори між базами та виходами U1, або переплутали колектори з емітерами.
В будь-якому разі, перші 8 біт (які потрапляють в U2) визначають стан світлодіодів у секції, один біт з 8 наступних (які потрапляють в U1) визначає секцію.

Неактивний

#5 2025-07-28 03:41:52

khalimon
Учасник
Зареєстрований: 2020-02-24
Повідомлень: 33

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Так, на базах не малював резистори, показав схематично, щоб було зрозуміло,
що це матриця 8 х 8. Вихід з них "плюс", де резистори " мінус".
Цікавить саме алгоритм керування

Неактивний

#6 2025-07-28 05:42:52

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

khalimon пише:

Цікавить саме алгоритм керування

Пошук за запитом "arduino dynamic LED matrix 8x8 74HC595" видає безліч результатів.

У вашої схеми особливість в тому, що latch (защолка) спрацьовує автоматично після кожного біта, по спадаючому фронту тактування. А щоб під час передачі даних в 74HC595 світлодіоди не мерехтіли, перед виводом їх потрібно вимкнути (OE в High), а після виводу увімкнути (OE в Low). В решті алгоритм класичний для динамічної матриці. Дані, що виводяться: 8 біт стан світлодіодів у секції, 8 біт маска секції.
Якщо тимчасово забути про OE і залишити виходи завжди увімкненими (OE в Low), то якусь картинку вже маєте побачити. Тільки зайві світлодіоди теж трохи світитимуться. А коли покажете код, то куди додати керування OE вже підкажем.

Неактивний

#7 2025-07-28 06:03:22

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Якщо правильно зрозумів, що між базами та виходами U1 є резистори, а емітери підключені до плюса живлення, то маска секції інвертована: секція, яку увімкнути, задається нулем, а решта - одиниці. Тобто

 біти, що виводяться¹    значення маски в hex
  xxxxxxxx² 01111111         7F
  xxxxxxxx  10111111         BF
  xxxxxxxx  11011111         DF
  xxxxxxxx  11101111         EF
  xxxxxxxx  11110111         F7
  xxxxxxxx  11111011         FB
  xxxxxxxx  11111101         FD
  xxxxxxxx  11111110         FE

¹ тут порядок виводу зліва направо
² визначає стан світлодіодів у секції. Якщо правильно вгадав схему, то світлодіоди теж вмикаються нулем. Там, де в xxxxxxxx нульовий біт, там світлодіод світиться.

Неактивний

#8 2025-07-28 06:52:01

khalimon
Учасник
Зареєстрований: 2020-02-24
Повідомлень: 33

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Щоб увімкнути світлодіод треба на першому чіпі ( де транзистори) подати  лог одиницю на відповідний пін ( щоб увімкнувся транзистор та подався плюс живлення ), а на другому чіпі ( де резістори ) подати лог нуль, щоб подався мінус.
З цим ясно, питання в керуванні - тоб то алгоритм ( код програми/ скетч )
Готов віддячити грошима за рішення..

Неактивний

#9 2025-07-28 07:45:10

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

khalimon пише:

Щоб увімкнути світлодіод треба на першому чіпі ( де транзистори) подати  лог одиницю на відповідний пін ( щоб увімкнувся транзистор та подався плюс живлення )

Щоб увімкнувся PNP транзистор, струм має потекти з емітера в базу, тобто на базу потрібно подати нуль. Коли на емітері високий рівень (плюс живлення) і на базі високий рівень, то струм емітер-база не тече, транзистор закритий.

khalimon пише:

З цим ясно, питання в керуванні - тоб то алгоритм ( код програми/ скетч )

Ну ви навіть не сказали, що саме ви хочете відображати, звідки програма має брати це зображення і які функції виконувати ще.
Якщо просто показати яку небудь картинку 8x8, то можна обійтись і чисто ардуінівськими digitalWrite() та delay().
Якщо програма має виконувати ще щось паралельно, можна реалізувати конечний автомат на millis(). Можна задіяти апаратний SPI контролер, щоб не тіліпати піни бітбенгом. Можна задіяти другий апаратний таймер, прямий запис в GPIO, якщо критичні таймінги. Варіантів реалізації тут безліч.
Алгоритм уже описаний вище. Код програми/скетч - це реалізація алгоритма. За основу можете взяти будь-який скетч для "arduino LED matrix 8x8 74HC595" і адаптувати для свєї схеми.

khalimon пише:

Готов віддячити грошима за рішення..

То ви просто шукаєте виконавця? Так зразу б і написали, може когось зацікавить.

Неактивний

#10 2025-07-28 09:16:36

jokeer
Гість

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Без чіткого ТЗ - результати хз. А коли сформулюєте що саме ви хочете отримати і чим не влаштовує існуюче рішення - ви і самі напишете ту програму. Може замість матриці - шматриці в процесі обдумування перейдете на rgb стрічку.

#11 2025-07-28 09:40:36

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

jokeer пише:

Може замість матриці - шматриці в процесі обдумування перейдете на rgb стрічку.

Якщо задача - індикація полем світлодіодів, чому б тоді не взяти MAX7219 чи MAX7221, замість того щоб городити город з транзисторів та 74HC595.

Неактивний

#12 2025-07-28 10:40:50

jokeer
Гість

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

до речі, так. Воно, звичайно, ці транзистори коштують майже нічого, але ж і готовий модуль на пром.юа 56 грн коштує.
Хіба що вподобання дивні і незвичайні.

#13 2025-07-28 13:53:00

khalimon
Учасник
Зареєстрований: 2020-02-24
Повідомлень: 33

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Є готова промислова індикація, яку змінювати, перепаювати не можна. З самого початку це я обізначив. На прикладі засвітити один світлодіод, або зробити бігучу стрічку або ще щось подібне, я хочу отримати алгоритм керування. Те що є в інтернеті є, не працює повинним чином, тому що там апаратно по іншому реалізовано.

Неактивний

#14 2025-07-28 16:37:02

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

khalimon пише:

Є готова промислова індикація, яку змінювати, перепаювати не можна. З самого початку це я обізначив.

Питання ж було поставлене так, наче ви вже знаєте як керувати схемою, де "Зазвичай задіяні піни 14 ( данні ), 11 та 12 ( защьолка та тактування )."

khalimon пише:

Те що є в інтернеті є, не працює повинним чином, тому що там апаратно по іншому реалізовано.

Тобто проблема виникла з тим, що лінія тактування інвертована транзистором, і замість Low її потрібно ставити в High, а замість High - в Low?

khalimon пише:

я хочу отримати алгоритм керування.

Нехай у вас є масив бітового зображення:
uint8_t M[8] = { ... };

Лінію даних назвем DS, пін тактування/защолки - CLK, пін OE - OE.

Алгоритм керування:

1. Конфігуруєте піни DS, CLK та OE в output.
2. Ініціалізуєте лічильник секцій: uint8_t section=0
3. Ініціалізуєте маску секцій: uint8_t mask = 0x80

Приблизно раз на мілісекунду, можна і частіше:
1. OE = High
2. Виводите 16 біт на лінію даних з тактуванням. Ці 16 біт складаються з байта масиву зображення та інвертованої маски секції. Значення, що виводиться (LSB first):

uint16_t val = (~mask << 8) | M[section]

for i від 0 до 15 {
    CLK = High
    DS = val & 1;
    CLK = Low;
    val >>= 1;
}
CLK=High

3. OE = Low
4. section = (section + 1) % 8
5. mask >>= 1; if (mask==0) mask = 0x80;

Неактивний

#15 2025-07-28 16:56:09

khalimon
Учасник
Зареєстрований: 2020-02-24
Повідомлень: 33

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Напишіть, як  з вами зв'язатись. Сьогодні або завтра перевірю.

Неактивний

#16 2025-07-28 17:25:35

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

khalimon пише:

Напишіть, як  з вами зв'язатись.

Та навіщо? Пишіть тут, якщо будуть якісь питання. Звісно, є ймовірність, що міг щось не врахувати чи переплутати.

Неактивний

#17 2025-07-28 22:53:09

jokeer
Гість

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

За ті гроші, що ви заплатите виконавцю, дешевше буде поїхати на радіоринок і купити готовий виріб. Упарюватись в самостійну розробку має смисл або коли планується серія виробів, або як хоббі.
.

#18 2025-07-29 10:13:28

khalimon
Учасник
Зареєстрований: 2020-02-24
Повідомлень: 33

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Планую змодулювати на ардуіно нано в ардуіно IDE . Якщо можна, напишіть це на с++ з урахуванням синтаксису. Якщо запрацює, я віддячу

Нехай у вас є масив бітового зображення:

uint8_t M[8] = { ... };

Лінію даних назвем DS, пін тактування/защолки - CLK, пін OE - OE.

Алгоритм керування:

1. Конфігуруєте піни DS, CLK та OE в output.
2. Ініціалізуєте лічильник секцій: uint8_t section=0
3. Ініціалізуєте маску секцій: uint8_t mask = 0x80

Планую змодулювати на ардуіні нано в ардуіно ІIDE. Якщо можна, напишіть цей приклад на с++, щоб я міг вставити та перевірити. Якщо запрацює, я відлячу

Приблизно раз на мілісекунду, можна і частіше:
1. OE = High
2. Виводите 16 біт на лінію даних з тактуванням. Ці 16 біт складаються з байта масиву зображення та інвертованої маски секції. Значення, що виводиться (LSB first):

uint16_t val = (~mask << 8) | M[section]

for i від 0 до 15 {
    CLK = High
    DS = val & 1;
    CLK = Low;
    val >>= 1;
}
CLK=High

3. OE = Low
4. section = (section + 1) % 8
5. mask >>= 1; if (mask==0) mask = 0x80;

Неактивний

#19 2025-07-29 11:05:11

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 544

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

khalimon пише:

Якщо можна, напишіть це на с++ з урахуванням синтаксису. Якщо запрацює, я віддячу

Вибачте, мені це не цікаво. Тут я не заради заробітку, принаймні не зараз. Задача тривіальна, може хтось зацікавиться, у кого є час та натхнення. Успіхів у пошуку.

Неактивний

#20 2025-07-29 12:03:03

jokeer
Гість

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Є chatgpt.
Лабати код без чіткого ТЗ, зайняття на любителя. Це насправді займе х3 часу. І писати під залізо, якого немає на столі, це теж потребує х3. Потім при розрахунках обом сторонам буде незручно. Одному буде здаватись, що переробив, іншому що переплатив .

#21 Сьогодні 11:18:16

khalimon
Учасник
Зареєстрований: 2020-02-24
Повідомлень: 33

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Дякую, розібрався.
Жаль, що не цікаво.
Тема закрита

dimich пише:
khalimon пише:

Якщо можна, напишіть це на с++ з урахуванням синтаксису. Якщо запрацює, я віддячу

Вибачте, мені це не цікаво. Тут я не заради заробітку, принаймні не зараз. Задача тривіальна, може хтось зацікавиться, у кого є час та натхнення. Успіхів у пошуку.

Неактивний

#22 Сьогодні 21:39:50

jokeer
Гість

Re: 74hc595 не стандартна реалізація індикаціі на 2х чіпах

Ну і прекрасно, раз розібрався. Про яку суму була річ, якщо не секрет? wink Бо, як на мій погляд, підказка, щоб розібратись, не вартує нічого. А уточнення ТЗ це вже робота.

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму