#126 Re: Апаратні питання » Зарядка двох акумуляторів 18650 послідовно від usb » 2025-02-22 23:04:24

Візьміть готовий модуль з usb на вході і 2 акумуляторами.
8В для серви забагато до речі.
І для мотора такого теж.

#127 Re: Програмування Arduino » ESP32 та ds3231 » 2025-02-22 23:00:37

ds3231 вертає неправильний час чи ваш годинник показує неправильний час?

#128 Re: Програмування Arduino » Потрібна допомога » 2025-02-22 21:40:05

Як взагалі написати змінна А дорівнюе третьому біту змінноі D ?

По ардуінівськи:
є спеціальні функції
https://doc.arduino.ua/ru/prog/BitRead

По avr-івськи
Є макрос

#define _BV(bit) (1 << (bit))

десь так тоді

// якщо вам конче потрібно отримати саме 1 або 0
uint8_t A = D & _BV(bit) ? 1 : 0;
// якщо вас задовольняє те що змінна просто  !=0
uint8_t A = D & _BV(bit);

А то можна і так, якщо хочеться байти економити

#define BIT0 	1
#define BIT1 	(1<<1)
#define BIT2 	(1<<2)
#define BIT3 	(1<<3)
#define BIT4 	(1<<4)
#define BIT5	(1<<5)
#define BIT6	(1<<6)
#define BIT7	(1<<7)

uint8_t A = D & BIT7;

Можна ще придумати кілька способів wink

#129 Re: Програмування Arduino » Потрібна допомога » 2025-02-22 21:19:39

Не треба робити бітову магію там де вона не потрібна. Вам, напевно, потрібно виконати якийсь ногодриг з пінами порту? Ну так зробіть функцію з промовною назвою, rotate_left() наприклад, і всередині поставте одиниці і нулі як вам потрібно. Не ускладнюйте.

#130 Re: Програмування Arduino » Прблема в скетче ? » 2025-02-10 11:14:06

Заміть 1000 слів - дивіться як зроблено в Arduino

НЯП всередині ISR присідання з атомарністю не потрібні, бо переривання забороняється автоматично.

#if defined(TIM0_OVF_vect)
ISR(TIM0_OVF_vect)
#else
ISR(TIMER0_OVF_vect)
#endif
{
	// copy these to local variables so they can be stored in registers
	// (volatile variables must be read from memory on every access)
	unsigned long m = timer0_millis;
	unsigned char f = timer0_fract;

	m += MILLIS_INC;
	f += FRACT_INC;
	if (f >= FRACT_MAX) {
		f -= FRACT_MAX;
		m += 1;
	}

	timer0_fract = f;
	timer0_millis = m;
	timer0_overflow_count++;
}

А ззовні - читайте коментар до коду

unsigned long millis()
{
  unsigned long m;
  uint8_t oldSREG = SREG;

  // disable interrupts while we read millis_timer_millis or we might get an
  // inconsistent value (e.g. in the middle of a write to millis_timer_millis)
  cli();
  m = millis_timer_millis;
  SREG = oldSREG;

  return m;
}

#131 Re: Програмування Arduino » Прблема в скетче ? » 2025-02-09 23:13:22

ISR(PCINT2_vect) {
  unsigned char result = r.process();

Так робити стрьомно. ISR повинно виконуватись максимально швидко, а тут викликається якийсь метод з ліби енкодера, хз що він робитиме. Якщо всередині Serial.print, буде ой.
Як правило, регулярні дії (process(), tick(), ..) викликають в loop - там воно точно спрацює як треба.
Якщо в ISR ви щось робите з глобальною змінною, яка більша ніж uint8_t - на цей час треба забороняти переривання.  Приблизно так:

ISR()
..
cli();
do_some_sheet
sei();
loop()
..
cli();
do_some_sheet
sei();

#132 Re: Проекти » найпростіша плата керування сервоприводом по крайнім положенням. » 2025-01-30 22:05:23

Можливо, варто переосмислити постановку задачі. Може не серва потрібна а тупий соленоїд? Є напруга - одне положення, немає напруги - інше положення..

#133 Re: Програмування Arduino » Робота esp8266 з Micropython » 2025-01-24 11:48:24

https://stackoverflow.com/questions/71579926/how-to-use-micropython-classes-in-separate-files

ЗІ Щось форум якось дивно працює. Походу сєкрєт настройкі phpbb утєрян wink

#134 Re: Програмування Arduino » Led Cub 4*4*4 » 2025-01-12 17:21:30

. Тільки я би для зручності перевернув полярність діодів

В уже спаяному кубі це не просто wink

#135 Re: Програмування Arduino » Led Cub 4*4*4 » 2025-01-12 16:29:09

Не бажаєте схему показати? wink
Вам потрібно, щоб струм через світлодіоди був стабільний, без залежності скільки їх ввімкнено? тоді на кожен led в групі - окремий резистор (16 шт). І порахуйте який потрібен струм, може mosfet лишній.
Якщо 1 резистор на групу з 16 led - в залежності від кількості ввімкнених led яскравість буде мінятися.Можна спробувати скомпенсувати часом експозиції - підібрати резистор, щоб нормально світились всі 16, а коли менше - зменшувати час, але це буде багато веселих дослідів wink

#136 Re: Апаратні питання » Питання по USB звукових картах » 2025-01-12 16:13:16

Алгоритми DSP вже працюють?

Це тільки ідея..

https://gridbots.com/bat.html

Я радий за індійців wink

#137 Re: Апаратні питання » Питання по USB звукових картах » 2025-01-12 14:26:05

для якого застосування?

Є ідея записати звук з 4 мікрофонів, знайти схожі паттерни і порахувати різницю фаз. Теорія здається красивою wink Але як воно пролізе через кілька шарів абстракцій заліза і софта..
Надійніше звичайно взяти нормальний АЦП і навертіти навколо нього, але це зовсім іншого рівня задача, зовсім не бюджетна. Підходящих готових плат на arduino.ua я не побачив. А досить пристойної якості АЦП в свистку за 100 грн готовий wink

Чи є вироби з аналогічною функціональністю на ринку?

Кажуть що ні.

#138 Апаратні питання » Питання по USB звукових картах » 2025-01-12 10:20:10

jokeR
відповідей: 6

Є трохи дивна ідея - багатоканальний аудіо реєстратор на базі дешевих USB аудіокарт. Raspberry Pi + USB hub + 4 свистка. Як вважаєте, взлетить? Не буде між свистками конфліктів? Пропускної здатності USB вистачить?

#140 Re: Проекти » проект почтомата » 2024-12-27 17:59:21

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

#141 Re: Проекти » проект почтомата » 2024-12-27 17:12:18

Хочу зробити щось типу вєндінгового поштома

Це як би досить різні речі.

Я не знаю, яка потрібна CRM.

Ніхто крім вас не знає. Це ж ваш проект wink
Почніть з самого початку. На платіжний термінал, як правило, звідкись потрапляє сума платежу. Беріть документацію на ваш термінал і читайте, як це зробити.
А може вам і не потрібен термінал? Може вас задовольнить оплата QR кодом, наприклад? Яка у вас планується бізнес-модель?

Найбільша проблема - підключення.

Підключення реле тут найменша проблема.

#142 Re: Проекти » проект почтомата » 2024-12-27 14:37:06

Можна і так. Тільки платіжна система нічого не знає про ваші кнопки і реле. Вона вміє тільки проводити платежі. Потрібна CRM, яка уміє співставити номер ящика з номером платежу, і безпечно передати цю інформацію до правильного ящика.
Але у вас виходить не поштомат, а вендінговий автомат. Чи автомат для гри в Bad Secret Santa. Для поштомата потрібен ще якийсь фактор, крім оплати. В НП - дотаток, з ключом, прив"язаним до вашого аккаунту.

#143 Re: Проекти » проект почтомата » 2024-12-27 11:02:01

Реле підключається за типовою схемою, через ключовий транзистор. Але ви ж не про це питаєте, правда? wink Мабуть у вас є якась CRM, в ній є якесь API для взаємодії з виконачими механізмами. MQTT, або REST, або інше, згідно з вашими уявленнями про прекрасне. Якась авторизація, з сертифікатами, чи токенами. І під цю схему ви підбрали якийсь більш-менш захищений контроллер - ви ж не хочете, щоб механізм сам спрацював, бо хакери проаналізували прошивку і витягли ключі?
Ну, десь так.

#144 Re: Програмування Arduino » Обрабатываем нажатие кнопки на примере зажигания светодиода » 2024-12-27 09:41:47

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

Як правило, коли людина досить детально формулює питання, вона вже на 50% це питання вирішила.

#145 Re: Проекти » проект почтомата » 2024-12-27 09:38:27

Термінал до реле не треба хотіти підключати. Треба хотіти підключати термінал до платіжної системи - банк, якому вона належить, надасть вам всю доку. До платіжної системи треба підключити ваш самописний біллінг, до біллінга - реле.

До речі, прошу звернути увагу, поштомат НП ніяких платежів не приймає, і це правильно.

#146 Re: Проекти » проект почтомата » 2024-12-26 23:59:36

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

1000 баксів в місяць / 20 робочих днів = 50 баксів в день, думаю, справедливо, як для початківця wink

#147 Re: Програмування Arduino » Обрабатываем нажатие кнопки на примере зажигания светодиода » 2024-12-26 13:57:47

З оптроном і двигуном теж треба уважно.

З електрикою треба бути уважно взагалі. 1 лишній рух - і білий дим, транзистори в чіпі вибирають нового папу wink

#148 Re: Програмування Arduino » Обрабатываем нажатие кнопки на примере зажигания светодиода » 2024-12-26 11:13:35

29 В - скоріше за все силовуха, скоріше за все двигун.  Я за оптронну розв"язку.

#149 Re: Проекти » Моніторинг батареї UPS через інтернет » 2024-12-21 12:50:09

ethernet і snmp - це ближче до домашнього датацентру чи розумного дому з виділеним сервером. Моя ідея - для пересічних,  хто акумулятор і інвертор купив, і зрозумів що чогось не хватає wink

#150 Проекти » Моніторинг батареї UPS через інтернет » 2024-12-20 22:06:24

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

Колись давно, 2 роки тому, скрафтив нашвидкуруч гаджет, що малює графік напруги на домашньому акумуляторі. Зручна виявилась штука, завжди видно чи є вдома світло і коли час заводити генератор wink

https://github.com/Ihor-Chu/power-monitor

Працює дуже просто: через кожні 4 хв вимірюється напруга, відправляється на сайт thingspeak.com, там і малюються графіки.
image.png
Безплатного тарифного плану вистачає на 3 млн точок - більше 2 років. А там можна і перешити. На жаль, чим прошивав не пам"ятаю, стандартна прошивалка від ESP01, якщо не помиляюсь, дає 5В живлення, якщо хтось захоче повторити - майте на увазі.

Всередині - noname dc-dc конвертор на 5В і ESP12. Після прошивки потрібно відкалібрувати дільник напруги - подати кілька напруг з робочого діапазону і записати їх через інтерфейс для калібрування http://192.168.4.1/cm . Можна використовувати і з іншими напругами, тільки треба взяти підходящий конвертор і підібрати дільник, щоб на вхід ADC не пішло більше 1В. Так, щоб воно працювало, необхідно щоб домашній провайдер не падав при відключенні енергії wink

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