#451 Re: Апаратні питання » 320х480 TFT LCD кольоровий дисплей для Arduino Mega 2560 » 2024-09-18 21:21:45

З цією UTFT приклад з UTFT/examples/Arduino (AVR)/UTFT_Demo_480x320 на ось такій Mega2560 запустився без будь-якого шаманства.

Ініціалізував з

UTFT myGLCD(ILI9486, 38, 39, 40, 41);

#452 Re: Апаратні питання » 320х480 TFT LCD кольоровий дисплей для Arduino Mega 2560 » 2024-09-16 03:40:25

У мене лежить на вигляд такий самий, ще не розпакований. На упаковці наліпка з написом "Driver: ILI9486, Bus: 16bit". З великою ймовірністю ваш теж на ILI9486. Не збереглося заводської антистатичної упаковки?
Нажаль, немає під рукою Mega2560 щоб швидко підключити та перевірити.

UTFT брали тут?
Пробували цю бібліотеку?

Ось тут і тут у користувачів така ж сама проблема.

Заради експеримента можете спробувати 8-бітний режим. Для цього в бібліотеці UTFT, що по посиланню вище, в UTFT.cpp в рядку 116 в byte dtm[] замініть 28-й елемент з 16 на 8. Також можете спробувати SERIAL_4PIN.
Було:

16, 16, 16, 8, 0, SERIAL_5PIN, SERIAL_4PIN, 16, 16, 16,				// 20-29

Стало:

16, 16, 16, 8, 0, SERIAL_5PIN, SERIAL_4PIN, 16, 8, 16,				// 20-29

або

16, 16, 16, 8, 0, SERIAL_5PIN, SERIAL_4PIN, 16, SERIAL_4PIN, 16,				// 20-29

Перепакуйте архів бібліотеки і перевстановіть. Ініціалізуйте з ILI9486.

#453 Re: Апаратні питання » nano+w5500+2*ina219+релюха » 2024-08-14 21:43:44

ijonhson пише:

Реле JQC-3FF-S-Z

Реле JQC-3FF-S-Z бувають під керуючу напругу від 3 до 48 вольт. На самому реле має бути написано.

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

#454 Re: Апаратні питання » Автономное питание Raspberry pi 5 » 2024-08-12 14:44:31

Схеми RPi 5 у відкритому доступі, нажаль, не знайшов, тому далі - тільки мої припущення.

smart_mx пише:

При напрузі в 5.6v вона працює без проблем, але на дисплеї зауваженні про підвищену напругу, при 5.8 вимикаеться.
Без PD на любому USB струм в 0.65А і порт вімикається. Якщо брати не лише блок живлення від офіціала, а і від китайців GaN технології (так вони називаються) то PD працює, струм на USB можна підняти до 2.25А.

Там стоїть PMIC DA9061. Ні про USB, ні про PD вона нічого не знає, а отже, працювати із напругою вище 5 В не вміє. У неї максимально допустима вхідна напруга - 6 В.
Підтримку PD у блока живлення запитує сама малинка. Якщо блок підтримує 5В 5А, тоді обмеження струму в 0.6 А з вихідних USB знімається. На цьому "підтримка" PD закінчується, все.

smart_mx пише:

Але чомусь малинка5 не хоче переходити на PD і обмежує віхідний струм.

Тому що схема живлення самої RPi 5 не вміє PD. PD використовується лише для зняття обмеження струму.

smart_mx пише:

І ще, тестер протоколів знайшов профіль PD з функцією 5v 5A? але чомусь малинка його не бачить.

PD є три з половиною версії на сьогодні. Не факт, що малинка вміє розпізнавати їх всі.

smart_mx пише:

Тому продовжую шукати перетворювач для автономного живлення малинки5.

Якщо у вас основний споживач - це NVMe, підключена до FPC, то забудьте про PD. Заживіть її окремо, в обхід малинківської PMIC.

#455 Re: Апаратні питання » nano+w5500+2*ina219+релюха » 2024-08-11 12:40:36

ijonhson пише:

а от куди мережевий ліпити.

Він по SPI підключається, тому до пінів #SS, MOSI, MISO, SCK, тобто D10..D13. Взагалі замість #SS для chip select можна будь-який інший GPIO використати. Але бібліотека SPI все одно конфігурує #SS в output.

ijonhson пише:

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

Реле потрібно керувати через транзисторний ключ. Хіба що у вас зовсім мініатюрне реле і струм котушки не перевищує 40 мА, це на межі можливостей одного піна.
Яка напруга керування реле? Якщо відрізняється від напруги живлення контроллера і периферії, тоді, звісно, живити окремо. І не забудьте про захисний діод паралельно обмотці.

#456 Re: Апаратні питання » 16 канальне реле » 2024-08-03 05:40:43

Lebron1991 пише:

Схема така управління 16 канальним реле через радіоуправлінні.

16-канальне реле - це готовий модуль? Який саме? Радіоуправління на цьому модулі? Чи окремо реле, окремо радіоуправління, і вони звʼязані між собою за допомогою ардуіно?

Lebron1991 пише:

При підключені живлення реле до ардуіно все працює.

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

Lebron1991 пише:

При зовнішньому живлені реле не передається сигнал.

Сигнал не передається між чим і чим?

Lebron1991 пише:

Зовнішня живлення 12 вольт. Також на пінах 5 в.

На яких саме пінах?

Lebron1991 пише:

Заміряв напругу показує  11.5 вольт.

11.5 вольт на чому?

Lebron1991 пише:

Допоможіть вирішити проблему.

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

#457 Re: Апаратні питання » Дисплей на акумуляторі з камерою - потрібні поради » 2024-07-29 20:51:09

maximamus пише:

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

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

#458 Re: Апаратні питання » Дисплей на акумуляторі з камерою - потрібні поради » 2024-07-27 22:19:36

В принципі, якщо взяти камеру типу OV7670 і дисплей з нормально документованим інтерфейсом, то можна спробувати їх спарувати. Якщо Атмеги виявиться недостатньо, то можна чимось типу CH32 або STM32 з LTDC-контролером. Але чи варте воно того? Для серійного виробництва заради здешевлення може й варте, для одиничного виробу я б не заморочувався.

#459 Re: Апаратні питання » Дисплей на акумуляторі з камерою - потрібні поради » 2024-07-27 19:51:25

maximamus пише:

Це я так розумію найпростіший варіант і сенсу взагалі немає заморочуватись з системами аля андуріно і тд?

Ну так. Якщо це Atmega 16МГц, то з паралельними інтерфейсами до камери і дисплея при 320x240 8bpp вона зможе протягнути зображення з якоюсь прийнятною частотою кадрів. Навіть з послідовним інтерфейсом можна добитись кількох кадрів на секунду. Але прийдеться заморочитись із оптимізацією коду під конкретний інтерфейс камери.
Можна розглянути щось типу ESP32-Cam + дисплей. Або навіть щось типу RPI з HDMI. Але навіщо? Задача контролера в такій задачі - тільки проініціалізувати камеру і дисплей, і конвертувати дані із одного формата в інший.
Якби знайти камеру і дисплей з однаковим цифровим інтерфейсом, то було би достатньо тільки проініціалізувати. Тоді можна було би обійтись 5 або 3.3-вольтовим живленням. Але я таких не знаю.

#460 Re: Апаратні питання » Дисплей на акумуляторі з камерою - потрібні поради » 2024-07-27 18:56:56

Так як мінімальний час автономної роботи не вказано, то будь-яка автомобільна камера заднього огляду і монітор для камери заднього огляду мають підійти. Там уже дивіться по бажаному куту огляду, чутливості і т.п.
Для живлення від акума - модуль step-up DC-DC до 12 В ампера на 2, щось типу MT3608. Нажаль, продавці не пишуть споживаний струм ні для камер, ні для моніторів. Якщо припустити, що сумарно при 12 В вони споживають з пів ампера, то одного Li-Ion 18650 2 A*h має вистачити на годину безперервної роботи. А якщо взяти збірку 3S Li-ion, або 4S LiFePO4, то можна обійтись і без step-up.

#461 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 13:54:46

germansir пише:

А що значить round?

Округлення до найближчого цілого. Без round() при приведенні float до int дробова частина просто відкидається. Вважаючи, що в самій бібліотеці float отримується із цілого числа множенням на 0.1, яке у двійковій формі не має точного представлення, то без round() може виникнути неточність.

Взагалі не розумію, навіщо вони в тій бібліотеці використовують float. Така точність там не потрібна, а 8-бітним мікроконтролерам доводиться програмно реалізовувати арифметику з плаваючою комою. Але то таке, не варто очікувати ефективного коду в ардуінівських бібліотеках. "Якось працює - і то добре" smile

#462 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 13:06:39

germansir пише:

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

В C, як і в C++, і в багатьох інших мовах, до else відноситься той вираз, який за ним слідує безпосередньо. Якщо вираз складається з декількох операторів, вони мають бути в блоці {}.
Але для читабельності зазвичай в блок {} рекомендується обгортати навіть і один оператор, особливо якщо попередня частина в if теж в блоці {}. Хоча в різних організаціях і комʼюніті можуть бути різні вимоги до оформлення коду.

#463 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 12:44:00

germansir пише:

Я брав у скобки увесь цей шматок

  {  
    temperature[0] = ' ';
    temperature[1] = (Temp / 100) % 10 + '0';
    temperature[2] = (Temp / 10) % 10 + '0';
    temperature[4] = Temp % 10 + '0';
}

А, ну звісно, тоді temperature[1..4] заповнюється тільки в else, тобто при невідʼємному значенні Temp.
Щоб було зрозуміліше, у своєму коді замініть "Temp = abs(Temp)" на "Temp &= 0x7FFF" - це функціональна зміна.
А обгортання "temperature[0] = ' '" у скобки - стилістична правка, не обовʼязкова, просто для зручності читання коду. Весь готовий шматок коду має бути таким.

...
int Temp = round(dht22.readTemperature() * 10);
if (Temp < 0) {
    temperature[0] = '-';
    Temp &= 0x7FFF;
} else {
    temperature[0] = ' ';
}
temperature[1] = (Temp / 100) % 10 + '0';
temperature[2] = (Temp / 10) % 10 + '0';
temperature[4] = Temp % 10 + '0';
...

#464 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 12:27:49

germansir пише:

якщо я else беру в скобки, то на дисплеї одні нулі, а коли лишаю без них то все чітко показує...

if (Temp < 0) {
    temperature[0] = '-';
    Temp &= 0x7FFF;
    Temp = abs(Temp);
  } else
    temperature[0] = ' ';
    temperature[1] = (Temp / 100) % 10 + '0';
    temperature[2] = (Temp / 10) % 10 + '0';
    temperature[4] = Temp % 10 + '0';

Які саме рядки берете в скобки? В вищеприведеному коді без скобок до else відноситься тільки `temperature[0] = ' ';`. Це те ж саме, що

if (Temp < 0) {
    temperature[0] = '-';
    Temp &= 0x7FFF;
  } else {
    temperature[0] = ' ';
  }
  temperature[1] = (Temp / 100) % 10 + '0';
  temperature[2] = (Temp / 10) % 10 + '0';
  temperature[4] = Temp % 10 + '0';

В своєму прикладі я взяв `temperature[0] = ' ';` в скобки, бо без них код погано читабельний, і здається, що всі рядки з temperature[.. відносяться до else. А в else має виконуватись тільки `temperature[0] = ' ';`, решта - незалежно від знаку Temp.

UPD: `Temp = abs(Temp)` там зайве. Після `Temp &= 0x7FFF` Temp уже і так додатнє.

#465 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 09:40:08

germansir пише:

Залив стандартний приклад з бібліотеки DHT Adafruit dht test, то в терміналі взагалі почав показувати -3276.5.

Ви ж цю бібліотеку використовуєте: https://github.com/adafruit/DHT-sensor-library? Ось її код, який конвертує сире значення в градуси Цельсія: DHT.cpp:112

Для DHT22 вона повертає значення -3276.5, якщо девайс видає сире значення 0xFFFD. В доповненному до 2 коді це якраз -3.

Значить у вас не DHT22. Як мінімум, не така DHT22, яку очікує бібліотека. Може репліка, і китайці помилились із форматом даних. На дані від DHT11 або DHT12 теж наче б то не схоже.

Можете спробувати такий воркераунд:

int Temp = round(dht22.readTemperature() * 10);
if (Temp < 0) {
    temperature[0] = '-';
    Temp &= 0x7FFF;
} else {
    temperature[0] = ' ';
}
...

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

#466 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 04:06:34

Або інший, більш ймовірний варіант: у вас не DHT22, а щось інше, що видає відʼємні значення у форматі доповнення до 2.
Для DHT22 бібліотека очікує відʼємні значення у прямому коді. Якщо девайс видає значення "-1" у форматі доповнення до 2, з точки зору бібліотеки це і буде -32767.

#467 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 03:41:27

Доречі, -76.7 градусів буде показувати, якщо немає звʼязку з DHT22: 0xFFFF & ~0x8000 = 0x7FFF = 32767, у вас відображаються останні три цифри.
Якщо зібрати бібліотеку DHT з увімкненим DHT_DEBUG, вона має видати в Serial Port, що "DHT checksum failure!" та інші можливі помилки.

#468 Re: Програмування Arduino » dht22 не показує мінусову температуру » 2024-07-27 02:58:01

На перший погляд явних помилок не видно.
Для початку рекомендую мінімізувати скетч, щоб він читав тільки цей сенсор і видавав результат dht22.readTemperature() в послідовний порт. Саме значення типу float, яке функція повертає. Якщо все ок, тоді додайте свою конвертацію в строку і виведіть строку. Якщо і з нею все ок, тоді проблема у виводі на LCD. Потестуйте вивод із різними фіксованими значеннями Temp, наприклад, -300, -125, -1, 0, 1, 125 - що для них відображається?

#469 Re: Апаратні питання » Дисплей на акумуляторі з камерою - потрібні поради » 2024-07-26 20:02:26

maximamus пише:

Аналог не сильно хотілось би, бо ти всі тюльпани займають забагато місця.

Тюльпани можна замінити на інші розʼєми або напряму припаяти. На такій відстані NTSC і PAL працюватимуть на будь-якому проводі.

maximamus пише:

Хочу максимально мінімалістично зробити

Які мінімальні вимоги до розподільчої здатності, глибини кольору, частоти кадрів?

#470 Re: Програмування Arduino » Програмування підключення мікроконтролера Arduino Mega до бази даних » 2024-07-25 20:08:13

Pharm_PM пише:

1) стосовно того чи "Arduino Mega - це правильний вибір апаратної частини для такої задачі?", то ні, не є впевнений. вибрав його, як приклад, не знаючи оптимального варіанту для виконання такого типу задач.

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

Pharm_PM пише:

2) Апаратні Інтерфейси:
Ethernet: Використовується Ethernet Shield для підключення мікроконтролера Arduino до мережі для доступу до бази даних.

Мережа приватна захищена чи публічний інтернет? Ви ж розумієте, що для комунікації через публічний інтернет потрібно використовувати TLS і аутентифікацію?

Pharm_PM пише:

MySQL Connector/Arduino: Бібліотека для підключення Arduino до бази даних MySQL.
HTTP Requests: Для доступу до веб-API бази даних

Так доступ до бази напряму до MySQL-сервера чи через веб-API бекенда?
Навіщо взагалі виконавчому пристрою доступ до бази даних?

Pharm_PM пише:

Serial Communication: Використовується для передачі даних між Arduino і комп'ютером через серійний порт.

Тобто виконавчий пристрій окрім ethernet буде ще підключений і до компʼютера? Чому би в такому разі не винести всю логіку, включаючи взаємодію з сервером, на цей компʼютер? Тоді весь пристрій зводиться до банального USB-GPIO модуля, або й взагалі без нього, якщо на "компʼютері" є необхідна кількість GPIO для керування реле.

#471 Re: Апаратні питання » Дисплей на акумуляторі з камерою - потрібні поради » 2024-07-25 19:16:06

Не зовсім зрозуміло, це має бути один пристрій з камерою та дисплеєм, чи два окремих? Камера має підʼєднуватись проводом? Яка відстань передбачається між камерою та дисплеєм?
В найпростішому варіанті: аналогова камера + аналоговий міні-дисплей для систем відеоспостереження. Увімкнули живлення - камера і дисплей працюють, вимкнули - не працюють.
Зарядне для акума обирати після того як визначитесь із самим акумом. А акум обирати в залежності від решти компонентів - напруги живлення, струму, необхідного часу автономної роботи. Можливо, ще знадобиться DC-DC для живлення від акума. Тоді можна розглянути інтегрований модуль "для павербанку", щоб і з зарядним контроллером, і DC-DC.

#472 Re: Програмування Arduino » Програмування підключення мікроконтролера Arduino Mega до бази даних » 2024-07-23 17:20:15

Ви впевнені, що Arduino Mega - це правильний вибір апаратної частини для такої задачі? Вже не кажу про "якість" бібліотек.
Які передбачаються апаратний і програмний інтерфейси для звʼязку з базою?

#473 Re: Апаратні питання » Джойстик,..... дефект? » 2024-07-21 01:40:47

PolArt пише:

Ви не зрозуміли проблеми

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

#474 Re: Апаратні питання » Джойстик,..... дефект? » 2024-07-20 22:33:56

PolArt пише:

Проблему вирішив заміною резисторів на резистори з більшим кутом повороту. Так вони не доходять до проблемних місць і вдалось добитись рівномірної зміни опору.

Навіщо ви вимірюєте опір, коли куту повороту відповідає напруга?

Подивіться на схему вище. При відключеному Vcc опір між A і B наступний:
при положенні повзунка в самому низу: 0
при положенні повзунка в самому верху: R/2 (обидва резистора паралельно).
при положенні повзунка чітко посередині: R/2 || 3R/2 = 3R/8 (нижня половина резистора ліворуч паралельно сумі верхньої половини і всього резистора праворуч).

Яка тут може бути рівномірність?

Якщо потрібно, щоб саме опір був пропорційний куту, просто розʼєднайте потенціометри в точці зʼєднання з Vcc.

#475 Re: Програмування Arduino » Не завантажується скетч » 2024-07-19 16:09:35

ivvi30 пише:

Порадьте що можна зробити.

Якщо дійсно не підтримується, то варіантів небагато: взяти інший адаптер (наприклад, на CH340 або CP210x) або користуватись іншою ОС.

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