Відповісти

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

Назад

Огляд теми (нові повідомленні вгорі)

stas_amp
Сьогодні 11:58:51
jokeR пише:

Так, це EEPROM
Якщо прибрати повністю (навіть #include теж) - нормальні прямокутні імпульси.

Що за бібліотеки мені треба завантажити, щоб все працювало нормально?

jokeR
Сьогодні 11:31:19

Так, це EEPROM
Якщо прибрати повністю (навіть #include теж) - нормальні прямокутні імпульси.

stas_amp
Сьогодні 11:24:31
dimich пише:
stas_amp пише:

Можете глянути, наче Compare Match Output вимкнуто.

Цей витвір ШІ працює нормально? А якщо в setup() закоментувати запис в TCCR0A?

stas_amp пише:

Може там вказати адресу еепром 100, або 200 ?

Якщо EEPROM працює неправильно, то вона працюватиме неправильно і з іншими адресами. Буде псувати якусь іншу область памʼяті.

Скомпілюйте скетч з нуля, з увімкненим verbose compiler output. Покажіть лог збірки.

Вже ввечері, як буду вдома.

dimich
Сьогодні 11:22:22
stas_amp пише:

Можете глянути, наче Compare Match Output вимкнуто.

Цей витвір ШІ працює нормально? А якщо в setup() закоментувати запис в TCCR0A?

stas_amp пише:

Може там вказати адресу еепром 100, або 200 ?

Якщо EEPROM працює неправильно, то вона працюватиме неправильно і з іншими адресами. Буде псувати якусь іншу область памʼяті.

Скомпілюйте скетч з нуля, з увімкненим verbose compiler output. Покажіть лог збірки.

jokeR
Сьогодні 11:17:30

Нє, ШІ воно прикольно, але навіщо вимикати те що не вмикали wink Вам воно намалювало blink на регістрах замість digitalwrite.

stas_amp
Сьогодні 11:14:18
dimich пише:

Дивіться, яка цікава річ. У вас EEPROM.put(10, ImpulseOilMotor) має записувати два байта в EEPROM за адресою 10.
Якщо припустити, що ваша ліба EEPROM зібрана якось неправильно (з іншим -mcu, наприклад), і замість EEPROM пише в адресний простір даних, то адреса 10 попадає на адресу 0x2A в I/O просторі. Це якраз регістри TCCR0A та OCR1B, які відповідають за Compare Match Output для PWM.

Схоже, що так і є.
Якщо подати живлення, то два перші імпульси нормальні, подальші - PWM

Може там вказати адресу еепром 100, або 200 ?

stas_amp
Сьогодні 11:11:54
dimich пише:
stas_amp пише:

Цікаво, що дає саме PWM.

Ну, один із можливих варіантів я вже написав: пін перемикається на функцію Compare Match Output. Чому - це вже інше питання.

Ось такий варіант ШІ мені дав.

Можете глянути, наче Compare Match Output вимкнуто.DigiSpark_Oiler_NoPWM.rar

dimich
Сьогодні 11:06:22

Дивіться, яка цікава річ. У вас EEPROM.put(10, ImpulseOilMotor) має записувати два байта в EEPROM за адресою 10.
Якщо припустити, що ваша ліба EEPROM зібрана якось неправильно (з іншим -mcu, наприклад), і замість EEPROM пише в адресний простір даних, то адреса 10 попадає на адресу 0x2A в I/O просторі. Це якраз регістри TCCR0A та OCR1B, які відповідають за Compare Match Output для PWM.

stas_amp
Сьогодні 10:46:25
jokeR пише:

https://forum.arduino.ua/img/members/3983/photo_2025-06-11_10-32-45.jpg

Збс wink
Зібрав під ту плату що у вас. Включив pull-up резистори на входах - отримав такі імпульси - кілька прямокутних, промодульованих ВЧ. Я б сказав, що це десь всередині вашого коду, складно зрозуміти його логіку.

Логіку коду, чи алгоритмів роботи?

Якщо алгоритми, то можу розписати.

dimich
Сьогодні 10:43:33
stas_amp пише:

Цікаво, що дає саме PWM.

Ну, один із можливих варіантів я вже написав: пін перемикається на функцію Compare Match Output. Чому - це вже інше питання.

jokeR
Сьогодні 10:40:50

photo_2025-06-11_10-32-45.jpg

Збс wink
Зібрав під ту плату що у вас. Включив pull-up резистори на входах - отримав такі імпульси - кілька прямокутних, промодульованих ВЧ. Я б сказав, що це десь всередині вашого коду, складно зрозуміти його логіку.

ІЩСХ, якщо резистори прибрати, отримуємо дивне
photo_2025-06-11_10-47-19.jpg

stas_amp
Сьогодні 10:35:53

Точно сказати, після чого стало 5 вольт, вже тяжко.

Цікаво, що дає саме PWM.

Спробую сьогодні підключити насос, і глянути, чи подаватиме він мастило.
Якщо так, то тоді, питання закрити, і забути. Бо тут не скільки того пристрою, як проблем.

Здавалось би все просто, а ,,крові вип'є'' на проект - за міліон.

Але випадок не стандартний, і рано чи пізно, хтось би міг з таким зіткнутися.

Таке питання, до учасників обговорення.
А чи можна тут в код додати, щоб на мотор виходило два або три імпульси за один раз?

dimich
Сьогодні 10:25:15
stas_amp пише:

https://forum.arduino.ua/img/members/4083/OSC-_-OUT-PB1.jpeg
У мене ось такий сигнал на PB1
...
https://forum.arduino.ua/img/members/4083/PXL_20250611_042428586.jpeg

Було ж 1.2 вольта, тут бачу чесні 5. Після яких змін амплітуда імпульсів стала 5 вольт?

stas_amp пише:

понавстановлював все, що можна було стосовно Attiny 85.

Потрібно якось фіксувати ці зміни: з якого URL, яка версія. Щоб можна було собі теж скачати та проаналізувати код цього конкретного пакунка.

stas_amp пише:

Частота стала 16кГц, цикл 70 відсотків.

PB1 має альтернативну функцію виходу компаратора таймера. (Доречі, PB0,PB3,PB4 також). Якщо якимось чином біти вибору режима стають ненульові, то це досить очікуваний результат: різні core можуть використовувати таймери по-різному.

Якось би здампити вміст регістрів TCCR0A, TCCR1 та GTCCR, коли баг проявляється. Я би увімкнув debugWIRE. Але без досвіду це буде непросто зробити: потрібно перешивати фʼюзи і вимикати функцію піна Reset, а також підʼєднуватись UART'ом до піна Reset як мінімум через діод, і на компі запускати відлагоджувальний софт.

Можна спробувати записати вміст цих регістрів в EEPROM, потім зчитати програматором.

Але в першу чергу я би все таки перевірив з

#define HAVE_BOOTLOADER 1

в core_build_options.h.
А також мінімізував би програму до такого стану, коли баг ще відтворюється.

stas_amp пише:

Ось схема всього пристрою.

Для повноти картини ще би домалювати USB'шні резистори зі стабілітронами, а також вбудований світлодіод.

stas_amp
Сьогодні 08:30:09

Ось схема всього пристрою.

PXL_20250611_052659012.jpeg
Розв'язка на входах, через оптику, PC817
На мотор, транзистор з ,,логічним'' рівнем, точно не пам'ятаю, що дістав з коробки і запаяв.

stas_amp
Сьогодні 08:17:41

Всім доброго ранку.

Стосовно підтяжок. Так, вони були через 5.1к, замінив на 1к. Нічого не змінилося.

Вчора грався всякими бібліотеками, понавстановлював все, що можна було стосовно Attiny 85.

Сьогодні запустив ардуіно іде, і в виборі плат, побачив ось таке, як на фото.
Screenshot_20250611-065837.jpeg

Записав через цей варіант. І картина одразу змінилася!

PXL_20250611_042428586.jpeg

Частота стала 16кГц, цикл 70 відсотків.

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