#1 Re: Програмування Arduino » 74hc595 не стандартна реалізація індикаціі на 2х чіпах » 2025-07-31 11:18:16

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

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

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

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

#2 Re: Програмування Arduino » 74hc595 не стандартна реалізація індикаціі на 2х чіпах » 2025-07-29 10:13:28

Планую змодулювати на ардуіно нано в ардуіно 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;

#4 Re: Програмування Arduino » 74hc595 не стандартна реалізація індикаціі на 2х чіпах » 2025-07-28 13:53:00

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

#5 Re: Програмування Arduino » 74hc595 не стандартна реалізація індикаціі на 2х чіпах » 2025-07-28 06:52:01

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

#6 Re: Програмування Arduino » 74hc595 не стандартна реалізація індикаціі на 2х чіпах » 2025-07-28 03:41:52

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

#7 Програмування Arduino » 74hc595 не стандартна реалізація індикаціі на 2х чіпах » 2025-07-27 21:20:18

khalimon
відповідей: 21

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

Schematic_New-Project_2025-07-27.jpg

#8 Re: Програмування Arduino » переривання по usart atmega » 2024-10-12 09:14:55

Проектую на ардуіно нано 328р
На мекетці вхід Rx я закоротив з D2, тобто INT0.
По D2 переривання постійно робить, але імпульс вимірює лише після прийнятого символа 5. (див. скетч)
В мене вимірює, але щось не те. Ще й в буфері щось зайве гуляє..

Якщо хтось може допомогти готов віддячити в межах 500грн

#9 Програмування Arduino » переривання по usart atmega » 2024-10-11 21:41:14

khalimon
відповідей: 3

Доброго дня!
Atmega8a, 8mhz, Arduino IDE
У періодичних пакетах (1 пакет на 0,8сек) на вході Rx (швидкість 9600) після певного прийнятого символу (конкретно цифра 5) необхідно порахувати довжину першого імпульсу (не важливо до якого символу він відноситься, важлива довжина саме першого імпульсу після прийнятої 5ки). Прошу знавців ткнути у потрібному напрямку.
Дякую!


#include <HardwareSerial.h>
volatile unsigned long i, dlina, ms3;
volatile bool d;
bool fl;


#define led   13    // светодиод


void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT);
  pinMode(led, OUTPUT);

  Serial.attachSerialInterrupt(SerialInterrupt);
  attachInterrupt(0, isr, CHANGE);
}


void SerialInterrupt() {

if (UDR0 == '5')   d = 1;
}


void isr() {
  if (millis() - ms3 > 1000 && fl == 1) fl = 0;

  if (fl == 0 && d == 1) {
    if (digitalRead(2) == 0 ) i = micros();
    else {
      dlina = micros() - i;
       //  if (dlina > 100 && dlina < 110) digitalWrite(led, 1); else digitalWrite(led, 0);
       Serial.print("dlina "); Serial.println(dlina);
      fl = 1;
      d = 0;
      ms3 = millis();
    }
  }
}


void loop() {

}

#10 Re: Програмування Arduino » TM1637 помилка при компиляціі для чіпа атмега328 » 2024-09-19 21:32:02

Нічого не зрозумів... Встановив нову бібліотеку - запрацювало.
Але стояла стара, раніше працювало...
Заработало - та й добре.
Дякую за відповіді!

#11 Re: Програмування Arduino » TM1637 помилка при компиляціі для чіпа атмега328 » 2024-09-19 16:22:38

При виборі плати ардуіно нано все компелюється.
При виборі саме чіпа атмега328 - видає помилку "ошибка коммиляции для atmega328"
Всі інші проекти компилюються норм і на плату ардуіно і на чіп 328, 88, 8 та інші.
Проблема з'явилась при підключенні бібліотеки тм1637...

#12 Програмування Arduino » TM1637 помилка при компиляціі для чіпа атмега328 » 2024-09-19 12:49:26

khalimon
відповідей: 4

Доброго дня!
Така проблема:
TM1637 помилка при компиляціі для чіпа атмега328,
хоча для ардуіно нано все норм...

Колись була така проблема для OLED, додатково підключив #include <Wire.h> і все пішло...
Тут гадаю що щось треба вказати саме для чіпа.

Підскажіть будь ласка...


#include <avr/wdt.h>
#include <EEPROM.h>
#include <TM1637.h>
#define CLK A5 
#define DIO A4
TM1637 disp(CLK, DIO);

#13 Re: Програмування Arduino » ZMCT103C + EmonLib допоможіть з нелінейною характеристикою » 2024-04-07 07:26:09

Чітка відповідь! Дякую!
Буду дивитись в напрямку програмної правки або шукати інше апаратне рішення...

#14 Програмування Arduino » ZMCT103C + EmonLib допоможіть з нелінейною характеристикою » 2024-04-06 13:02:08

khalimon
відповідей: 5

Доброго дня!
Роблю проект, де задіян модуль датчика струму.
Вимірювати струм треба до 5а
Програмую на ардуіно іде, використовую бібліотеку EmonLib.
Проблема наступна - при струмі до 1ампера - вимірювання відповідають дійсності,
якщо вище - то вже показники відрізняються від реальних в меншу сторону.
Нагрузка активна без індуктивної частини.
з коефицієнтом в emon1.current(pin, 30); грався в різні боки.

Буду вдячний за пораду

#15 Re: Програмування Arduino » Нужна помощь в создании двух стабильных меандров 50гц » 2022-09-10 15:45:56

Honey пише:

Даташит на ATMega328P, параграф 15 "16-bit Timer/Counter1 with PWM".
Если не хотите разбираться самостоятеьно, обращайтесь, сделаю.

Вернулся опять к этому проекту. Хочу всё таки побороть данный вопрос. Есть пару сотен грн. Если устроит, то готов обратится.

#16 Re: Програмування Arduino » Нужна помощь в создании двух стабильных меандров 50гц » 2022-08-22 07:14:39

Honey пише:

Даташит на ATMega328P, параграф 15 "16-bit Timer/Counter1 with PWM".
Если не хотите разбираться самостоятеьно, обращайтесь, сделаю.

Очень благодарен! Буду иметь ввиду.

#17 Re: Програмування Arduino » Нужна помощь в создании двух стабильных меандров 50гц » 2022-08-22 07:13:21

Очень благодарен!
А если нужно будет сдвиг инвертировать, т.е. сдвинуть канал А относительно B, это будет так?

OCR1A = 234;
OCR1B = 312;

И встречный вопрос - как поменять сдвиг А относительно B в процессе работы?

#18 Програмування Arduino » Нужна помощь в создании двух стабильных меандров 50гц » 2022-08-21 11:10:48

khalimon
відповідей: 8

Приветствую!

Работаю над проектом для атмега328р + кварц 16мгц (или ардуино нано 3)

Нуждаюсь в создании 2х меандров 50гц со сдвигом друг от друга 5мс  (могу приложить осциллограмму, но не пойму как тут это сделать)
Меандры должны быть на разных пинах.

Очень важна именно качественная привязка второго меандра к первому. В loop будет достаточное количество вычислений, поэтому важно, что бы меандры работали независимо от основного кода программы.
Заранее благодарен за помощь!

#19 Re: Апаратні питання » Не работает чип atmega328p pu Прошу помощи по настройке фьюзов » 2022-08-01 20:29:46

Honey пише:

Не понял о каком файле конфига речь. Но попробуйте вставить эти значения в калькулятор фьюзов по ссылке и аккуратно перенести галочки вручную в свою программу.

Супер!!! Заработало!
ОООЧЕНЬ спасибо!!!
Дуже дякую!!!

#20 Re: Апаратні питання » Не работает чип atmega328p pu Прошу помощи по настройке фьюзов » 2022-08-01 19:43:43

Honey пише:

Atmega328P кварц 16МГц, загрузчик 512байт(256слов):
E:FD, H:DE, L:FF

а можно файл конфига в hex на почту khalimonav@ukr.net (в TL866 вручную не прописуется)

#21 Re: Апаратні питання » Не работает чип atmega328p pu Прошу помощи по настройке фьюзов » 2022-08-01 19:05:31

renoshnik пише:
khalimon пише:

Я по всякому пробовал. И от внутреннего кварца в том числе. Мне бы фьюзы у кого то списать с uno...

А в "досках" почему не посмотришь ???

А в досках - это где?

#22 Re: Апаратні питання » Не работает чип atmega328p pu Прошу помощи по настройке фьюзов » 2022-08-01 18:48:51

Honey пише:

https://www.engbedded.com/fusecalc/
Ext. Crystal Osc., частота чтобы соответствовала частоте кварца.
Как определяете что "не работает"? если залить "блинк", мигает?

У меня на проектной плате светодиод стоит , пару реле и бузер. При запуске проц должен их включать поочерёдно, типа тест проходит.
Но при включении тишина...

#23 Re: Апаратні питання » Не работает чип atmega328p pu Прошу помощи по настройке фьюзов » 2022-08-01 18:44:12

Я по всякому пробовал. И от внутреннего кварца в том числе. Мне бы фьюзы у кого то списать с uno...

#24 Апаратні питання » Не работает чип atmega328p pu Прошу помощи по настройке фьюзов » 2022-08-01 16:51:56

khalimon
відповідей: 11

Приветствую!
Такая проблема.
Есть готовый проект. Скетч писался на ардуино ide 1.8.6 и отлаживался на ардуино нано.
Собрал пробную печатную плату, где использовал голый чип атмега328р pu ( длинный, 28 ног, вставленный в dip панель).
Кварц 16 мгц + 2 конденсатора 22пф. Avcc, vcc, aref  на + 5в
Reset через 10к на 5в.
Точное напряжение питания 4.74в ( так задумано и связано с подключением ntc датчиков ).

В ардуино ide выставил плату UNO, скомпелировал hex файл и с загрузчиком и без загрузчика.
Шил программатором TL866 через панель ( НЕ внутрисхемно ). Прошивается нормально.
Не работает никак.
Чувствую, что с фьюзами что то не то делаю.
Не хотелось бы покупать uno для прошивки.
Прошу помощи в запуске голого чипа.
Заранее благодарен!

#25 Re: Програмування Arduino » Глюк связи двух ардуино нано » 2020-02-26 17:44:01

khalimon пише:
YK пише:

Будет работать. Дело в том что со строкой можно еще ввести контрольные суммы и т.п. Т.е. если пару пакетов  заглючат, ты их просто проигнорируешь, думаю это не принципиально. зато всегда будешь получать гарантированные данные

..

Несколько раз проверил, вроде нормально работает. В течении недели планирую полностью собрать агрегат. Если хоть раз глюканет - нужно будет контрольную сумму впихнуть. За 200грн поможешь?

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