Устройство на Ardiuno для контроля пересечения барьера.

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
Опытный кот
Сообщения: 755
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Massaraksh7 писал(а): Пт июн 19, 2026 07:01:31 не является для меня авторитетом в экспертизе кода.
Ну дык... :)) А кто для вас является авторитетом, кроме вас самих? :))
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Rapra писал(а): Пт июн 19, 2026 14:35:26 Ну дык... :)) А кто для вас является авторитетом, кроме вас самих? :))
В чём? В электронике - большинство участников форума. В программировании - Вы правы. )))
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Реклама
Опытный кот
Сообщения: 755
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Ну конечно - в программировании у вас уникальный собственный стиль, особенно в именах, которые не соответствуют смыслу, и в степени запутывания кода :)) Это называется "горе от ума"
Мудрый кот
Сообщения: 1830
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

Massaraksh7 писал(а): Пт июн 19, 2026 14:07:13 я, так-то, последние 30 лет на Паскале работаю) программа не затормозится насколько, чтобы потерять работоспособность.
Автор лжёт. :facepalm: Работай он реально хотя-бы пару лет программером, он бы не писал код в стиле чайника. С таким "кодом" его любая контора должна уволить в 5 минут.
Невозможно на работе писать нормально, а дома быдлокодить.
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Сообщения: 755
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Вот еще момент:
кто-нить может понять, что и почему здесь написано:

Код: Выделить всё

//---Записать цифру в индикатор
void setDig(int n) {
int i,j;  
for (j=7;j<=13;j++)digitalWrite(j,LOW);
for (i=0;i<8;i++)
   {
   if (adata[n][i]==0)break;
   digitalWrite(adata[n][i],HIGH);
   }
}
Какой "авторитет" научил такому? Хрен пойми.

Вообще, издревле, для вывода цифры на семисегментник использовался вот такой подход:

Код: Выделить всё

#define SEG_A (1 << 0)
#define SEG_B (1 << 1)
#define SEG_C (1 << 2)
#define SEG_D (1 << 3)
#define SEG_E (1 << 4)
#define SEG_F (1 << 5)
#define SEG_G (1 << 6)

#define DIG_0 (SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F        )
#define DIG_1 (        SEG_B | SEG_C                                )
#define DIG_2 (SEG_A | SEG_B         | SEG_D | SEG_E         | SEG_G)
#define DIG_3 (SEG_A | SEG_B | SEG_C | SEG_D                 | SEG_G)
#define DIG_4 (        SEG_B | SEG_C                 | SEG_F | SEG_G)
#define DIG_5 (SEG_A         | SEG_C | SEG_D         | SEG_F | SEG_G)
#define DIG_6 (SEG_A         | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G)
#define DIG_7 (SEG_A | SEG_B | SEG_C                                )
#define DIG_8 (SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G)
#define DIG_9 (SEG_A | SEG_B | SEG_C | SEG_D         | SEG_F | SEG_G)

const uint8_t segments[] = {DIG_0, DIG_1, DIG_2, DIG_3, DIG_4,
		DIG_5, DIG_6, DIG_7, DIG_8, DIG_9};

void Print(uint8_t digit)
{
    if(digit < sizeof(segments)) 
        GpioA::WritePort(segments[digit]);
}
Реклама
Это не хвост, это антенна
Сообщения: 1374
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Massaraksh7 писал(а):Вот здесь я захожу, выставив перед собой руку.
Покажите лог программы, в котором будут видны состояния, через которые проходит ваш КА.

Кстати, обратите внимание на количество лучей на турникетах в метро.
Реклама
Опытный кот
Сообщения: 755
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Да у него там просто большой таймаут, поэтому и работает норм. Я ж говорил ранее - есть методы определения габаритов предмета по времени прохождения датчиков. И выставив соответствующий таймаут, можно убрать чувствительность к малогабаритным телам.
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

roman.com писал(а): Пт июн 19, 2026 12:47:35 Поэтому все нормальные люди делают усилители с автосмещением.
Перепаял. Внешне ничего не изменилось. Рисунок схемы перезагрузил.
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Друг Кота
Сообщения: 9505
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

Внешне и не должно ничего меняться.
Раньше делал усилители всякие на транзисторах. Приходилось подбирать транзисторы с одинаковым коэффициентом усиления по току и потом ещё подбирать режим работы транзистора.
В схеме с автосмещением ниче подбирать и настраивать не надо. Просто берём любой транзистор из коробки. Включает. И все работает. В этом вся фишка))

А код пока не оптимален. Ещё есть над чем работать...
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

roman.com писал(а): Пт июн 19, 2026 18:20:52 Приходилось подбирать транзисторы с одинаковым коэффициентом усиления по току
Кстати, я подбирал для приёмника.
roman.com писал(а): А код пока не оптимален. Ещё есть над чем работать...
Для предложений по изменению алгоритма я открыт, Welcome.
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Друг Кота
Сообщения: 9505
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

Ещё со схемой не закончили))

А зачем там смещение на фотодиод ?
Фотодиод сам является источником сигнала. Далее идёт обычный усилитель сигнала.
В схеме нет порогового элемента (как например в фотореле). Поэтому можно смещение убрать.

А зачем в схеме на выходе конденсатор и резистор ? Ардуине в отличии от триггера не нужен формирователь импульсов))
Поэтому резистор и конденсатор тоже можно убрать.
Я подключаю коллектор выходного транзистора напрямую к МК. Получается схема с открытым коллектором. Точно так же работает фотоприемник типа TSOP и аналогичные от пультов телевизора.

Далее... Рекомендую уменьшить ёмкость конденсаторов связи со 100 нФ до 10 нФ. Это поднимет усиление высоких частот и уменьшит усиление низких особенно наиболее опасных 50 герц. Т.е. усилитель будет менее восприимчив к наводкам от сети 50 герц.
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

roman.com писал(а): Пт июн 19, 2026 18:47:32 А зачем там смещение на фотодиод ?
Фотодиод сам является источником сигнала. Далее идёт обычный усилитель сигнала.
В схеме нет порогового элемента (как например в фотореле). Поэтому можно смещение убрать.
Просто посмотрел в интернете типовую схему включения фотодиода - вот эта попалась.
roman.com писал(а): А зачем в схеме на выходе конденсатор и резистор ? Ардуине в отличии от триггера не нужен формирователь импульсов))
Ну это по принципу: "Кашу маслом не испортишь".
roman.com писал(а): Далее... Рекомендую уменьшить ёмкость конденсаторов связи со 100 нФ до 10 нФ. Это поднимет усиление высоких частот и уменьшит усиление низких особенно наиболее опасных 50 герц. Т.е. усилитель будет менее восприимчив к наводкам от сети 50 герц.
Логично.
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Ну, то есть, вот так?
Sp2.png
(202.16 КБ) 15 скачиваний
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Почитал про режимы фотодиода. Я так понимаю, у меня был фотодиодный режим, Вы предлагаете фотовольтаический режим.
Почитал про них:
Фотовольтаический режим — это режим генерации электроэнергии непосредственно из света за счёт фотовольтаического эффекта в p‑n‑переходе. Он лежит в основе работы:
* солнечных панелей;
* простых световых датчиков;
* автономных маломощных устройств.

Главные плюсы — отсутствие необходимости во внешнем питании и простота схемы.
Главный минус — относительно низкое быстродействие по сравнению с фотодиодным режимом.
Вот последняя строка меня смутила. На 20 кГц он потянет?
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

ИИ, кстати, сомневается.
S1.png
(15 КБ) 15 скачиваний
S2.png
(139.85 КБ) 17 скачиваний
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Друг Кота
Сообщения: 9505
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

Подключался простой светодиод на вход усилителя на 3-х трнзисторх.
Принимал сигнал пульта телевизора частотой 38 кГц. На расстоянии до трёх метров работает.
Подключал смещение на светодиод...Отключал смещение на светодиод... Разницы не заметил.
Вложения
TX.jpg
(21.19 КБ) 10 скачиваний
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

Ну, дай бог.
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Друг Кота
Сообщения: 9505
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

Ещё нужен фильтр по питанию.
У меня микрофонный усилитель собран чуть по другой схеме. Но суть та же.
Вложения
MK.jpg
(31.68 КБ) 11 скачиваний
Прорезались зубы
Аватара пользователя
Сообщения: 205
Зарегистрирован: Ср июн 03, 2026 18:51:39
Откуда: Воронеж

Сообщение Massaraksh7 »

roman.com писал(а): Вс июн 21, 2026 14:37:56 Ещё нужен фильтр по питанию.
На плате Arduino Nano он есть.
"Чтобы правильно задать вопрос, нужно знать бОльшую часть ответа" - Р.Шекли
Друг Кота
Сообщения: 9505
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Сообщение roman.com »

У каждого усилителя должен быть свой отдельный фильтр по питанию.
В схеме два усилителя.
Соответственно и фильтра должно быть два.
Такие правила в радиотехнике ))
:tea:
Ответить

Вернуться в «Arduino»