#551 Re: Проекти » Трьохфазний тиристорний регулятор обертів колекторного двигуна » 2024-02-24 16:51:50

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

#552 Re: Проекти » Трьохфазний тиристорний регулятор обертів колекторного двигуна » 2024-02-24 15:47:15

duron пише:

Обмеження струму до 23А працює тільки при розгоні двигуна
...
струм при цьому під навантаженням не перевищує 5А.

Так може просто обмежити струм до 23А незалежно від PID-регулятора? І регулятор вмикати відразу, без окремого режиму розгону.
Чи струм обмежується постійним резистивним баластом?
Тоді знайти, при якому значенні на виході регулятора струм складає 23A при максимальному навантаженні (можна і розрахувати, знаючи потужність двигуна), і програмно обмежити саме вихідне значення регулятора. Якщо регулятор видає значення, що перевищує максимально допустиме, то на керуючий елемент подається саме це максимально допустиме, і не більше.

duron пише:

але лише стоїть повернути резистор для зміни обертів, як струм різко зростає

Чим початковий розгін від нуля до, скажімо, 900 обертів відрізняється від зміни зі 100 обертів до 1000? З фізичної точки зору - нічим.

duron пише:

Потрібно якось на PID регулятор вести ще зворотній зв'язок по струму.

Так вихідне значення PID-регулятора і задає струм, якщо правильно розумію схему. Там же не частотник, а ШІМ, якщо двигун колекторний.
Подавати на вхід PID-регулятора ту ж величину, якою він безпосередньо керує виходом, не бачу сенсу. Це практично рівнозначно просто зменшенню пропорційного коефіцієнта.

#553 Re: Проекти » Трьохфазний тиристорний регулятор обертів колекторного двигуна » 2024-02-24 03:12:45

Ви хочете обмежувати тільки струм при зміні обертів? Тоді задача зводиться до того, як відрізнити великий "розгонний" струм від великого струму нормальної роботи під навантаженням. Цим критерієм є різниця у заданих і наявних оборотах. Але вона і так є вхідним параметром для PID. Тобто потрібно просто підібрати коефіцієнти PID, які задовільнять ваші вимоги: як мінімум, зменшити пропорційний коефіцієнт. Але швидкість реакції на зміну навантаження також зменшиться.
Може не зовсім зрозумів проблему, бо поки для мене виглядає як взаємовиключні вимоги: струм обмежити, але дозволити двигуну працювати на великій потужності.

#554 Re: Програмування Arduino » Нужна помощь начинающему!!! 3-х режимный фонарик » 2024-02-19 00:13:34

г0cть пише:

Ага, человеку который не может разобраться с миллис предлагаем классы, структуры, массивы ... Да, так код короче и красивше, но зачем нагружать так сразу новичка?

Тут структури використовуються як звичайні C-шні структури, а не класи. Масив і структура - базові конструкції мов. Це перше, з чим необхідно розібратись, якщо мета - навчитись програмувати. Потім уже думати про ардуіно-специфічні фішки.

Структурування якраз допомагає зрозуміти алгоритм, на відміну від нагромадження глобальних змінних і спагетті-коду, які нажаль часто зустрічаються в прикладах скетчів для ардуіно.

#555 Re: Програмування Arduino » Нужна помощь начинающему!!! 3-х режимный фонарик » 2024-02-18 22:03:34

sxstalker пише:

мигать светодиодом без delay ()

Уявіть, що ви готуєте, наприклад, борщ. Поміж інших дій потрібно відварити мʼясо 40 хвилин.

Ви можете поставити варитись мʼясо і стояти з секундоміром біля каструлі, поки не пройде 40 хвилин. Звісно, інших дій в цей час ви виконувати не можете. Це аналог delay().

Ви можете запамʼятати час коли поставили мʼясо, і періодично дивитись на годинник, перевіряючи, чи не пройшло 40 хвилин. В цей час ви можете займатись іншими діями. Це аналог рішення з millis(). Звісно, чим частіше ви дивитиметесь на годинник, тим точніше витримаєте ці 40 хвилин.

Ще можна завести будильник на 40 хвилин і не відволікатись від інших дій взагалі, поки він не задзвонить. Це буде аналог використання переривання по таймеру. Але це зовсім інша історія.

Розглянем 2-й варіант.

sxstalker пише:

Я хочу попробовать понять на простом примере
Led светит 1 секунду
Led не светит 0.5 секунды
Повторить две команды 3 раза
Пауза номер 1 длительностью 5 секунд
Led светит 2 секунды
Led не светит 5 секунд
Повторить две команды 2 раза
Пауза номер 2  длительностью 10 секунд
Led светит 0.5 секунды
Led не светит 1.5 секунды
Led светит 1 секунду
Led не светит 2 секунды
Без повтора

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

Щоб відрізняти цю програму для виконання інтерпретатором від програми для ардуіно, яка реалізує сам інтерпертатор, в коментарях пишу її великими літерами: ПРОГРАМА. Вона представлена звичайним масивом структур cmd.

constexpr byte LED = 3;

// структура однієї команди
struct cmd {
  unsigned int dur;  // тривалість, мілісекунд (від 0 до 65535)
  byte led;          // стан світлодіода (HIGH/LOW)
};

// внутнішній стан інтерпретатора
struct {
  unsigned int pc;      // індекс поточної команди
  unsigned int dur;     // тривалість, скільки команда має виконуватись
  unsigned long start;  // час початку виконання команди
} interpreter;

// ПРОГРАМА для виконання: масив команд
// перше значення - тривалість в мілісекундах, друге - стан світлодіода
const cmd program[] = {
  { 1000, HIGH  },  // Led светит 1 секунду
  {  500, LOW   },  // Led не светит 0.5 секунды
  { 1000, HIGH  },  // повторюєм ще раз
  {  500, LOW   },
  { 1000, HIGH  },  // другий раз
  {  500, LOW   },
  { 1000, HIGH  },  // і третій ще раз
  {  500, LOW   },

  { 5000, LOW   },  // Пауза номер 1 длительностью 5 секунд (світлодіод не світить)
  { 2000, HIGH  },  // Led светит 2 секунды
  { 5000, LOW   },  // Led не светит 5 секунд
  { 2000, HIGH  },  // повторюєм ще раз
  { 5000, LOW   },
  { 2000, HIGH  },  // і другий раз
  { 5000, LOW   },

  {  500, HIGH  },  // Led светит 0.5 секунды
  { 1500, LOW   },  // Led не светит 1.5 секунды
  { 1000, HIGH  },  // Led светит 1 секунду
  { 2000, LOW   }   // Led не светит 2 секунды
};

void setup()
{
  pinMode(LED, OUTPUT);

  // запамʼятовуєм поточний час, щоб виконання ПРОГРАМИ в loop() почалося відразу.
  interpreter.start = millis();
  // наступні два рядки необовʼязкові, тому що глобальні змінні
  // автоматично ініціалізуються нулями. додано для ясності.
  interpreter.pc = 0;   // Починаєм виконання з команди з 0-м індексом
  interpreter.dur = 0;  // Починаєм відразу без затримки
}

// допоміжний макрос для обчислення кількості елементів у масиві: 
// розмір всього масива в байтах поділити на розмір першого елемента в байтах
// (всі елементи мають однаковий розмір)
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(*(x)))

void loop()
{
  // значення interpreter.pc за межами масиву ПРОГРАМИ означатиме, що виконання
  // ПРОГРАМИ завершено і нічого робити не потрібно
  if (interpreter.pc < ARRAY_SIZE(program)) // якщо ПРОГРАМУ ще не виконано до кінця
  {
    unsigned long now = millis(); // поточне значення часу

    if (now - interpreter.start >= interpreter.dur) // якщо настав час виконувати команду
    {
      digitalWrite(LED, program[interpreter.pc].led);  // вмикаєм чи вимикаєм світлодіод відповідно до команди
      interpreter.dur = program[interpreter.pc].dur;   // запамʼятовуєм, скільки часу виконувати поточну команду
      interpreter.start = now; // запамʼятовуєм час початку виконання
      // встановлюєм індекс команди, яку виконати наступного разу
      // якщо це була остання команда, виконання ПРОГРАМИ завершується
      // і очікування завершення поточної команди не відбувається
      interpreter.pc = interpreter.pc + 1;
      // якщо ПРОГРАМУ потрібно виконувати нескінченно, тоді скинути індекс команди на початок:
      // if (interpreter.pc >= ARRAY_SIZE(program)) {
      //   interpreter.pc = 0;
      // }
      // і прибрати умову `if (interpreter.pc < ARRAY_SIZE(program))`
    }
  }

  // Тут можна виконувати інші дії, такі як опитування кнопок і т.п.
  // Час виконання цих дій впливатиме на точність тривалостей виконання команд.
  // Для точності в 1 мілісекунду при 16 МГц ці дії не повинні виконуватись довше ніж 16000 тактів процесора
}

Тут, щоб було зрозуміліше, я намагався не використовувати ні загальні оптимізації, ні специфічні для AVR.

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

Можна піти далі і реалізувати окрему команду інтерпетатора "повтор". Тоді можна уникнути дублювання команд для повтору, але інтерпретатор стане трохи складнішим.

#556 Re: Апаратні питання » Симісторний регулятор потужності BTA-16 220В 2000Вт » 2024-02-15 22:48:29

Заряд конденсатора триває до тих пір, поки напруга на ньому не досягне напруги пробою диністора біля 30 В.

Максимальна напруга при 20 вольтах RMS всього 28 вольт. Тобто або діністор зовсім не буде відкриватись, або діапазон регулювання буде дуже вузьким.

#557 Re: Апаратні питання » Підключення двигуна 48VDC до Arduino » 2024-02-14 01:03:19

dialectric пише:

1. Силові доріжки на платі буде достатньо лише цих як на фото?

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

dialectric пише:

Чи потрібно усю силову частину плати посилювати?

По решті провідників при вказаних на схемі номіналах струм не більше 15 мА.
Існують таблиці та формули розрахунку мінімальної ширини доріжки для заданого струму, товщини шару міді і допустимого нагріву. Для 10 А при 1 унції міді і нагріві на 10°C ширина має бути порядка 7.62 мм.

dialectric пише:

2. Номінал конденсатора я так розумію повинен бути сумою всіх чотирьох мосфетів. Якщо наприклад у мосфета "вихідна ємність" 800(мах) pF то конденсатора на 100 nF 100V буде достатньо чи це забагато буде?

Необхідність того конденсатора взагалі сумнівна. Цілком можливо, що нормально працюватиме і без нього. Залежить від того, яке у вас джерело живлення і якими провідниками буде підключене.
Я би поставив 100-470 нФ про всяк випадок, якщо і не допоможе, то точно не зашкодить. А там уже дивитись по пульсаціях на шині живлення під час роботи.

#558 Re: Програмування Arduino » Де ArduinoIDE зберігає налаштування » 2024-02-12 20:56:19

Хіба зберігає окремо для кожного проекту? В 1.8.19 налаштування плати/процесора глобальні, при відкритті *.ino не змінюються.

#559 Re: Програмування Arduino » Esp8266+irf520 » 2024-02-11 20:58:48

Yuriy2606 пише:

Ще таке питання,є код через який автоматично регуюються оберти вентилятора відповідно до температури 55-70 градусів,і все відображається на blynk.Чи можна дописати код для відправки повідомлень на телеграм чи вайбер,коли температура буде виходити за ці межі?

Нажаль, тут нічим не допоможу, бо ні з blynk, ні з інтерфейсом до телеграма чи вайбера не стикався. Наскільки розумію, можливо два варіанта: якщо код з усіма артефактами для взаємодії з телеграмом/вайбером влізе в ESP8266, то можна відправляти напряму з ESP8266. Якщо не влізе, то потрібен проксі, який прийматиме повідомлення від ESP8266 по якому-небудь простому протоколу, а далі формуватиме і відправлятиме повідомлення в мессенджер вже по протоколу мессенджера.
Може знайдуться люди з досвідом, які підкажуть. Успіху в пошуках.

#560 Re: Програмування Arduino » Esp8266+irf520 » 2024-02-11 10:34:09

Yuriy2606 пише:

Чи є в блоках живлення компа підходящі транзистори?

Навряд чи.

Yuriy2606 пише:

І якої потужності ставити діод?

На струм від 0.5 А. Можна 1N4001-1N4007, але при ШІМ буде грітись. Краще діод Шотткі на відповідну напругу, наприклад 1N5819.

Yuriy2606 пише:

Катодом на плюс навантаження?

Так. Як на схемі: robojax-IRF520-MOSFET_schematic.jpg.
Інакше ж струм замість вентилятора потече через діод.

#561 Re: Програмування Arduino » Esp8266+irf520 » 2024-02-11 00:25:36

Доречі, яка потужність вентилятора? Для великого струму і для IRLZ 3.3 В може виявитись недостатньо.

#562 Re: Програмування Arduino » Esp8266+irf520 » 2024-02-10 23:31:02

Yuriy2606 пише:

Модуль irf520 готовий куплений.Не знаю як тут фото загрузити цього модуля

Та мабуть же цей: https://arduino.ua/prod2018-modyl-s-tranzistorom-mosfet-irf520

Yuriy2606 пише:

Частота шим 1кгц,подається через пін D5 (esp8266) на ножку sig,живлення на ножку vcc і земля на gnd на на моулі.

З частотою все ок. Просто напруги 3.3 В не вистачає.

Yuriy2606 пише:

Якщо поміняти на інший транзистор,то яка має бути обв'язка?Чи її можна залишити ту,що є?

Можна залишити ту що є. Транзистор можна замінити на щось типу IRLZ24 (або 34, 44).
І не забудьте про діод паралельно навантаженню.

#563 Re: Програмування Arduino » Esp8266+irf520 » 2024-02-10 21:34:56

Також можливо, що не вистачає напруги 3.3В з ESP. Для irf520 бажано хоча б 4 вольта.

#564 Re: Програмування Arduino » Esp8266+irf520 » 2024-02-10 21:28:26

Схема підключення? Що за модуль, яка там обвʼязка навколо irf520? Яка частота ШІМ?
Ймовірно, ємність затвору не встигає зарядитись і транзистор не повністю відкривається.

#566 Re: Програмування Arduino » Нужна помощь начинающему!!! 3-х режимный фонарик » 2024-02-09 15:14:44

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

constexpr byte PIN_LED = 11;
constexpr byte PIN_BUTTON = 8;

constexpr byte DEBOUNCE_MS = 20;
constexpr byte DIM_BRIGHTNESS = 64;

constexpr unsigned int DIT_MS = 180;
constexpr unsigned int DAH_MS = DIT_MS * 3;
constexpr unsigned int WORD_SEP_MS = DIT_MS * 7;

const unsigned int sos_pattern[] = {
  DIT_MS, DIT_MS, DIT_MS, DIT_MS, DIT_MS, DIT_MS,
  DAH_MS, DIT_MS, DAH_MS, DIT_MS, DAH_MS, DIT_MS,
  DIT_MS, DIT_MS, DIT_MS, DIT_MS, DIT_MS, WORD_SEP_MS
};

void setup()
{
  pinMode(PIN_BUTTON, INPUT_PULLUP);
  pinMode(PIN_LED, OUTPUT);
}

static inline bool buttonPressed()
{
  return digitalRead(PIN_BUTTON) == LOW; // active low
}

static inline void ledOn(bool on)
{
  digitalWrite(PIN_LED, on); // active high
}

void loop()
{
  static struct {
    bool pressed { false };
    bool debounce { false };
    unsigned long last_press { 0 };
  } button;

  static struct state {
    enum mode {
      OFF = 0,
      ON,
      DIM,
      SOS,
      INVALID
    };
    mode active { mode::OFF };
    bool changed { true };
  } state;

  if (button.debounce) {
    if (millis() - button.last_press >= DEBOUNCE_MS) {
      button.debounce = false;
    }
  }

  bool button_state = buttonPressed();

  if ((button_state != button.pressed) && !button.debounce) {
    button.last_press = millis();
    button.debounce = true;
    button.pressed = button_state;

    if (button_state) {
      state.active = static_cast<state::mode>(state.active + 1);
      if (state.active >= state::mode::INVALID) {
        state.active = state::mode::OFF;
      }

      state.changed = true;
    }
  }

  static struct {
    unsigned long last_change;
    unsigned int pause;
    byte idx;
    bool led;
  } sos;

  if (state.changed) {
    switch (state.active) {
      case state::mode::OFF:
        ledOn(false);
        break;
      case state::mode::ON:
        ledOn(true);
        break;
      case state::mode::DIM:
        analogWrite(PIN_LED, DIM_BRIGHTNESS);
        break;
      case state::mode::SOS:
        sos.led = false;
        ledOn(sos.led);
        sos.idx = 0;
        sos.pause = 100;  // pause before start
        sos.last_change = millis();
        break;
      default: break;
    }
    state.changed = false;
  }

  if (state.active == state::mode::SOS) {
    unsigned long now = millis();
    if (now - sos.last_change >= sos.pause) {
      sos.led = !sos.led;
      ledOn(sos.led);
      sos.pause = sos_pattern[sos.idx++];
      if (sos.idx >= sizeof(sos_pattern) / sizeof(*sos_pattern)) {
        sos.idx = 0;
      }
      sos.last_change = now;
    }
  }
}

Тут кнопка active low, тобто пін підтягнутий до живлення внутрішнім pull-up і замикається кнопкою на землю.
Якщо у вас навпаки, пін 8 підтягнутий зовнішнім резистором до землі і замикається на живлення, замініть вміст buttonPressed() на

return digitalRead(PIN_BUTTON) == HIGH;

і в setup() INPUT_PULLUP замініть на INPUT:

  pinMode(PIN_BUTTON, INPUT);

#567 Re: Програмування Arduino » Нужна помощь начинающему!!! 3-х режимный фонарик » 2024-02-08 13:02:51

sxstalker пише:

1. нажимать кнопку нужно специфически немного удерживая чтобы все работало правильно. это ужасно бесит((

У вашій програмі затримки по 150 мс і більше. В цей час процесор не опитує стан кнопки. Для придушення брязкоту контактів у більшості випадків достатньо кількох міллісекунд. А щоб не реагувати на утримання кнопки як на натиснення, потрібно перевіряти зміну стану кнопки з LOW в HIGH.

Для виміру проміжків часу асинхронно бібліотека ардуіно надає функцію millis(). Але нею теж потрібно правильно користуватись, щоб уникнути багів з переповненням.

sxstalker пише:
          analogWrite(ledPin, brightness); // а от тут зовсім не зрозумів чому analog, ну і встановлюэмо яскравість лед на 255

Яскравість регулюється широтно-імпульсною модуляцією. analogWrite() реалізує програмну ШІМ.

sxstalker пише:
  // for (int i = 0; i <= 99999999; i++) { 

Розмір int в AVR gcc - 16 біт, максимальне значення - 32767.

sxstalker пише:
    if (digitalRead(buttonPin) == HIGH) {
      goto bailout;

Для дострокового виходу з циклу достатньо break.

sxstalker пише:

Помогите пожалуйста доработать код правильно. Это мне поможет двигаться далее.

Спочатку реалізуйте просте увімкнення/вимкнення світлодіода по натисненню, щоб воно працювало стабільно. Потім уже додавайте режими, яскравість і т.д.

У вас два логічних потоки: обробка натиснення кнопки і виміри проміжків часу, тому це простіше реалізувати за допомогою скінченного автомата. Ваш switch(mode) / case по суті ним і є, тільки прибрати довгі delay(), а час вимірювати за допомогою millis().

І деякі загальні міркування.
Atmega328 сама по собі в активному режимі на частоті 16 МГц при живленні 5 В споживає близько 10 мА. У вашій програмі процесор постійно активний. У вимкненому стані при ємності джерела живлення в 2500 мА*год воно розрядиться за час порядка 250 годин.

Для мінімізації споживання у вимкненому стані процессор має бути в режимі PowerDown, а натиснення кнопки викликатиме зовнішне переривання. В увімкненому стані потрібно використовувати апаратну ШІМ, а процесор переводити в Idle. Також відключити всю непотрібну периферію, таку як ADC, а тактову частоту знизити. 16 МГц для обробки натиснення кнопки - це перебор.

Також цікаво, як ви збираєтесь реалізувати апаратну частину, особливо в плані живлення. Два Li-Ion аккумулятора? На платі ардуіно лінійний стабілізатор, при живленні 7.5 вольт ККД буде лише 66%. Якщо світлодіод яскравий, його потрібно живити напряму, і бажано через драйвер, щоб напруга живлення не впливала на яскравість.

#568 Re: Апаратні питання » Підключення двигуна 48VDC до Arduino » 2024-02-05 14:33:40

Ось така схема має працювати:
H-bridge.png

Номінали R1-R8 перерахував для 48 вольт, але на практиці з таким живленням не перевіряв.

A1 A2 B1 B2 │ режим
────────────┼────────────
 0  0  0  0 │ вимкнено
 1  0  0  1 │ вперед
 0  1  1  0 │ назад
 1  0  1  0 │ гальмування
 0  1  0  1 │ гальмування

В прошивці потрібно бути дуже уважним, щоб НІКОЛИ на пару A1 і A2 одночасно не подавалась одиниця. Те саме стосується пари B1 і B2.
Також між перемиканням A1 з 1 в 0, а A2 з 0 в 1 і навпаки необхідна пауза (dead time). Те ж саме для B1 і B2. При приведених номіналах теоретично 10 мкс має бути достатньо.

UPD: При вказаних номіналах резистори R1-R4 - мінімум 0.25 Вт, R5-R8 - мінімум 0.5 Вт. Краще в 2 рази більше: 0.5 і 1 Вт відповідно.
Можна пропорційно збільшити номінали, наприклад R1-R4 - 10 кОм, R5-R8 - 22 кОм. Тоді підійдуть звичайні 0.125 Вт, але швидкість відкривання/закривання зменшиться. В режимі on/off це ніяк не завадить, тільки dead time теж бажано збільшити пропорційно, десь до 100 мкс. Але якщо захочете регулювати потужність, то це посилить обмеження на частоту ШІМ.

#569 Re: Апаратні питання » Підключення двигуна 48VDC до Arduino » 2024-02-05 12:32:06

dialectric пише:

Так, схема плати така. В такому випадку яку потрібно використати схему підключення(оптопара-мосфет-мотор)?
Потрібно щоб двигун міг працювати в обидва напрямки.

Реверсивний рух на цій платі зробити не вдастся. На ній витоки всіх транзиторів обʼєднані, а для повного моста потрібні роздільні. Не кажучи вже про те, що 48 вольт (а тим більше заявлені 100) пробʼють затвори транзисторів. Для IRF540 допустимо не більше 20 вольт.

#570 Re: Апаратні питання » Підключення двигуна 48VDC до Arduino » 2024-02-05 00:39:01

Якщо там оця схема:
IRF540-MOD-013.jpg
то мосфети і оптопару випаяти, а плату викинути  hmm

#571 Re: Апаратні питання » Підключення двигуна 48VDC до Arduino » 2024-02-05 00:12:07

г0cть пише:

Ніякий. Це 4 окремих транзистора з опторозв’язкою

Тоді тим більше потрібна схема. Бо у кожної оптопари два входа: анод і катод. А на малюнці три: "S", "+" і "-". Входи оптопар вже з послідовними резисторами чи передбачаються зовнішні? Чи є там резистори і стабілітрони між затворами і витоками? Куди підключені "+" і "-" на вихідних клемах каналів, напряму до стока і витока? Навіщо тоді "+" і "-" POWER?

#572 Re: Апаратні питання » Підключення двигуна 48VDC до Arduino » 2024-02-04 21:59:18

Є схема плати, чи хоча б назва? Або інформація, який драйвер на ній використовується? (на картинці не розібрати)
H-міст передбачає використання 4 ключових елементів.

#573 Re: Програмування Arduino » Допоможіть знайти помилку » 2024-02-02 18:17:55

Як ми можемо щось підказати, коли не знаємо, що у вас за файли, і що в них?
Навіть модель дисплея не вказано. Тільки по назві відео можна здогадуватись, що підключено до "Arduino mega".

#574 Re: Програмування Arduino » Допоможіть знайти помилку » 2024-02-02 12:38:25

Напрямок однієї з координат дисплея не співпадає з напрямком відповідної координати тач сенсора.

#575 Re: Програмування Arduino » Цікаві задачі? Підкажіть рішення » 2024-01-29 20:47:38

theDrabec пише:

Для таких дача мені підійде Arduino Nano?

Вирішити такі задачі на Arduino Nano можна. Звісно, з певними припущеннями і обмеженнями. Інше питання - скільки часу вам на це знадобиться, які зовнішні компоненти, і чи достатньою виявиться швидкодія.
А чи влаштує той чи інший варіант - вирішувати вам.

theDrabec пише:

Саме по камері невеликого розміру робити аналіз піксерів (HDTV)

Дивлячись який у камери інтерфейс і що вона вміє. І що саме означає "якесь світло чи зміну якогось кольору" в алгоритмічному сенсі.

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