Ви не увійшли.
khalimonav собака укр точка net
Тактирование - внутренний генератор, 8мгц
У меня почта в профиле, можете туда вайбер написать, я отвечу
Актуально. Как с вами связаться?
Нічого не зрозумів з цієї формули. Я код написав за годину для атмега. Він робочий, міняти логіку не треба, суть озвучив, чіп теж. Максимум які питання можуть виникнути, це те, на якіх пінах що реалізувати і може я попитаю по налаштуванню софта і деякі для спеца по stm дурні питання.
Гадаю що знючій людині роботи на годину + максимум в сумі година моїх запитань. Це якщо штучно не розтягувати час.
Пропоную 1000грн
Я думаю, що краще на Си в STVD, але якщо можна повноцінно в ардуіно іде, то для мене краще. Я чекаю пропозиціі за гроші
Вітаю!
Є повністю робочий проект на атмега8а. Хочу його перенести в чіп stm8s001j3.
Проект простий - один сигнальний вихід на світлодіод, один вихід на реле, один вхід від джампера ( вибір mode ) та вхідний сигнал - частотний або UART.
Хто може допомогти, напишіть мені, вказавши свою ціну за допомогу.
Дякую!
В мене були проблеми на avr, пов'язані з кварцем. При зовніх завадах чіп починав поводити себе хаотично. Це було не часто, але було. Точного вимірювання часу було не потрібно, тому проблема повністю була вирішена шляхом переходу на внутрішній генератор. Я більш всього не хочу щоб таке трапилось з esp32, тоб то не ребут або резет по вачдогу а саме раптова хаотична поведінка
Згоден, якщо більш нічого не почую, буду експерементувати..
Дякую
На дронах плата керування - це сплошний екран. Хотілось би почути думку про стабільність АЦП, та стійкість до завад в промислових умовах. Антена не дуже потпібна - 10метрів максимум, що потрібно...
Вам дякую за відповідь
Вітаю!
В промисловому середовищі ( індукційні наводки і т.п. ) завжди використовував атмега8а, 328р.
Зараз треба зробити доступ по wi fi.
Розглядаю для цього esp32. По об'єму пам'яті на неї можна реалізувати як і сам сервер, так і опитування датчиків і логику керування пристроями.
Питання - можна так зробити? Чи є кращі рішення для роботи в "шумному" промисловому середовищі?
Буду вдячний за відповідь людини з досвідом у цьому питанні
мабудь так

Вітання спецам!
Хочу запустити пробну партію проекту.
Хто має багатий досвіт по проектуванню друкованих плат,
прокоментуйте будь ласка розводку під кварц 8мгц + 2 конденсатори
чіп атмега8а au
Треба гарна помехостійкість
Фото додаю
https://forum.arduino.ua/img/members/2724/1.jpg
https://forum.arduino.ua/img/members/2724/2.jpg
Дякую, розібрався.
Жаль, що не цікаво.
Тема закрита
khalimon пише:Якщо можна, напишіть це на с++ з урахуванням синтаксису. Якщо запрацює, я віддячу
Вибачте, мені це не цікаво. Тут я не заради заробітку, принаймні не зараз. Задача тривіальна, може хтось зацікавиться, у кого є час та натхнення. Успіхів у пошуку.
Планую змодулювати на ардуіно нано в ардуіно 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=High3. OE = Low
4. section = (section + 1) % 8
5. mask >>= 1; if (mask==0) mask = 0x80;
Напишіть, як з вами зв'язатись. Сьогодні або завтра перевірю.
Є готова промислова індикація, яку змінювати, перепаювати не можна. З самого початку це я обізначив. На прикладі засвітити один світлодіод, або зробити бігучу стрічку або ще щось подібне, я хочу отримати алгоритм керування. Те що є в інтернеті є, не працює повинним чином, тому що там апаратно по іншому реалізовано.
Щоб увімкнути світлодіод треба на першому чіпі ( де транзистори) подати лог одиницю на відповідний пін ( щоб увімкнувся транзистор та подався плюс живлення ), а на другому чіпі ( де резістори ) подати лог нуль, щоб подався мінус.
З цим ясно, питання в керуванні - тоб то алгоритм ( код програми/ скетч )
Готов віддячити грошима за рішення..
Так, на базах не малював резистори, показав схематично, щоб було зрозуміло,
що це матриця 8 х 8. Вихід з них "плюс", де резистори " мінус".
Цікавить саме алгоритм керування
Вітаю, суспільство. Є готова індикація на двох 74ch595.
Роблю під неї плату керування.
Зазвичай задіяні піни 14 ( данні ), 11 та 12 ( защьолка та тактування ).
А тут задіяні пін данних(14), піни 11 та 12 з'єднані, та задіян пін 13 ( ОЕ )
Зрисовану схему додаю.
Натякніть будь ласка як засвітити потрібну ячейку...

Проектую на ардуіно нано 328р
На мекетці вхід Rx я закоротив з D2, тобто INT0.
По D2 переривання постійно робить, але імпульс вимірює лише після прийнятого символа 5. (див. скетч)
В мене вимірює, але щось не те. Ще й в буфері щось зайве гуляє..
Якщо хтось може допомогти готов віддячити в межах 500грн
Доброго дня!
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() {
}
Нічого не зрозумів... Встановив нову бібліотеку - запрацювало.
Але стояла стара, раніше працювало...
Заработало - та й добре.
Дякую за відповіді!
При виборі плати ардуіно нано все компелюється.
При виборі саме чіпа атмега328 - видає помилку "ошибка коммиляции для atmega328"
Всі інші проекти компилюються норм і на плату ардуіно і на чіп 328, 88, 8 та інші.
Проблема з'явилась при підключенні бібліотеки тм1637...
Доброго дня!
Така проблема:
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);
Чітка відповідь! Дякую!
Буду дивитись в напрямку програмної правки або шукати інше апаратне рішення...