#76 2020-11-25 18:13:12

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

Re: аттракцион Ардуино-управляемый тир

42 кнопки на один пин не получится.
смотрите в сторону сдвиговых регистров.
в сети есть примеры

Неактивний

#77 2020-11-25 22:03:46

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

DmytroDnipro пише:

Нормальная затея, как считаете?

Без схемы ничего непонятно

Неактивний

#78 2020-11-25 23:33:01

KAS
Учасник
Зареєстрований: 2020-10-05
Повідомлень: 27

Re: аттракцион Ардуино-управляемый тир

42 кнопки на один пин в принципе возможно если только одна из них будет срабатывать, а у вас будут проблемы с определением какая нажата. Хотя, если почитать задачу изначальную, сбили мишень проиграли мелодию и по барабану какую именно то как вариант с резисторами можно что-то придумать. Но надёжнее конечно будет поставить расширители портов

Неактивний

#79 2020-11-26 15:07:14

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

MikeM пише:

Без схемы ничего непонятно

Вот схема с резисторами, для примера их 4 шт (т.е. здесь - 4 мишени). Замкнутая кнопка - мишень установлена, разомкнута - мишень сбита:
Bezymiannyi_500.jpgi.gif

Замыкаясь, кнопки исключают соответственные резисторы,
сопротивление всего участка между +5В и Аналоговым пином уменьшается, значит
напряжение растёт, и analogRead() по мере зажимания кнопок (т.е. по мере установки мишеней) будет с приблизительно одинаковым шагом выдавать нам величину от 0 (когда сопротивление максимальное) до 1023(когда напряжение = опорному, +5В).

vvr пише:

42 кнопки на один пин не получится.
смотрите в сторону сдвиговых регистров.
в сети есть примеры

Я пока что не знаю что это такое  lol Но если ткнёте в ссылку, где всё доступно и на наших языках - обязательно изучу.
Пока ищу простые пути. К тому же, моя задача - это сделать так, чтоб я сыну смог доступно объяснить, а для этого надо сначала самому понять.

KAS пише:

42 кнопки на один пин в принципе возможно если только одна из них будет срабатывать, а у вас будут проблемы с определением какая нажата. Хотя, если почитать задачу изначальную, сбили мишень проиграли мелодию и по барабану какую именно то как вариант с резисторами можно что-то придумать. Но надёжнее конечно будет поставить расширители портов

Вот именно! Не важно, какая именно мишень сбита - главное, что изменится сопротивление между пином в 5 вольт и аналоговым пином, который мы и будем читать, отлавливая изменения. Логика такова: если сигнал стал сильнее, значит сопротивление уменьшилось, т.е. какой-то резистор (не важно, по сути, какой именно - какой-то из них) был нажатием кнопки исключен из цепи  последовательных резисторов - ток потёк через замкнутую кнопку, "в обход" соответствующего резистора.

Таким образом, изменения в состоянии мишени (заряжена/разряжена) - мы заметим, распознаем, и отреагируем на них (издадим нужный звук, или можно иллюминацию какую-то нарисовать, ).

Но по изначальной задумке еще нужно включать и выключать светодиоды подсветки мишеней, а эта схема не даёт информации о том, какая мишень сбита. Кроме того, 42 диода потребуют мощность, которой нет... Проще, наверное, вообще сделать их нетухнущими, заапитанными отдельно: пусть светят направленно на мишень, когда она установлена, а когда она сбита (упала) светопоток будет проходить мимо мишени, освещая лишь темный однотонный фон...  Но, может, есть способ и для управления подсветкой сбитой мишени (обычными или адресными светодиодами)? С подсветкой еще подумаю, вопщем...

Если схема рабочая, то  какой номинал и мощность резистора лучше взять? по идее, любой, но наверняка есть нюансы.
UPD/ Неееее, точно не любой резистор, а такой, чтобы при минимальном ненулевом сопротивлении (т.е. когда в цепи работает только один резистор, остальные исключены кнопками) падение напряжения на нем было достаточным для того чтобы зафиксировать это на пине, но не слишком большим - чтобы при подключении в цепь 41 резистора одинаковых номиналов не получить на пине 0, иначе последний (42й) резистор просто не будет вызывать изменения на пине.

Остання редакція DmytroDnipro (2020-11-27 21:03:47)

Неактивний

#80 2020-11-26 22:08:11

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

В схеме есть рациональное зерно, но чтобы всё заработало как надо, придётся кое-что добавить.

Неактивний

#81 2020-11-27 19:33:49

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

MikeM пише:

В схеме есть рациональное зерно, но чтобы всё заработало как надо, придётся кое-что добавить.

Да уж, прийдётся. Может, подскажете где и что искать? Сейчас имею трудность с написанием простого скетча. Точнее, не с написанием - а с его правильной работой))

Конкретнее:
собрал  на макетке схему из моего предыдущего сообщения, резисторы - по 100 Ом (меньше под рукой не было), кнопка параллельна резистору. Залил в Ардуино УНО скетч (тупо опрашивающий аналоговый пин, и пишущий это в СОМ-порт). Смотрю в СОМпорт, вижу вот что:
- полное сопротивление этой цепи - 400 Ом. analogRead() выдает мне величину 50-51 (максимальное сопротивление , т.е. минимальное напряжение на пине);
- отключаю один резистор (получается 300 Ом). analogRead() выдает 67-68;
- отключаю два резистора (получаем 200 Ом). analogRead() выдает 99-100;
- отключаю три резистора (т.е. работает только 1 резистор на 100 Ом). analogRead() выдает 193-194;
- отключаю 4й, последний в цепи, резистор (т.е. сопротивления, как бы, совсем нет). analogRead() выдает 1009-1010.

И у меня тут кучка вопросов:
1)  почему изменения в этих замерах происходят с разным шагом, не смотря на то, что исключаемые резисторы - одинакового номинала? Как сделать одинаковый шаг, и точные (не скачущие) показания?
2) analogRead() должен выдавать 1023 как максимум, при подаче +5В на аналоговый пин, а у меня - 1010 - почему так? (мультиметр китайский дешёвый, которому я не особо доверяю, показал 4,85 В на выходе с ардухи - может тут собака зарыта?)
3) какого номинала нужны резисторы, если цепь будет состоять из 42 штук? (экспериментально установил, что при сопротивлении цепи резисторов в 25 Ом, analogRead() выдает величину 643. Думаю, резистор должен быть таким, чтобы когда он в цепи один, т.е. все остальные исключены нажатиями кнопок, величина выдаваемая командой analogRead() была бы меньше числа 1023 на примерно 1023/42, это ~22..23. Это так бы и было наверняка, если бы изменения происходили с одинаковым шагом, но пока что это не так у меня)

Остання редакція DmytroDnipro (2020-11-27 20:48:25)

Неактивний

#82 2020-11-27 21:18:23

г0сть
Гість

Re: аттракцион Ардуино-управляемый тир

В вашей схеме не хватает как минимум еще одного резистора межу аналоговым пином и gnd. почитайте про делитель напряжения и вольтметр на ардуино, например, это https://microkontroller.ru/arduino-projects/prostoj-voltmetr-na-arduino-uno/

#83 2020-11-27 21:20:26

г0сть
Гість

Re: аттракцион Ардуино-управляемый тир

DmytroDnipro пише:

Как сделать одинаковый шаг ?

Рассчитать 42 делителя  smile

#84 2020-11-27 22:00:04

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

DmytroDnipro пише:

Может, подскажете где и что искать?

Можно и подсказать.
Нужно будет собрать 6 цепочек по 7 резисторов и 7 кнопок.
Резисторы в цепочке должны иметь номиналы кратные числам 1, 2 ,4, 8, 16, 32, 64 (чем точнее соотношение, тем лучше).
Цепочки резисторов нужно подключить между шестью аналоговыми входами и землёй.
Питать цепочки нужно токовыми драйверами (коллектор биполярного транзистора или сток полевого).
Ток драйвера выбрать таким, чтобы при всех включенных резисторах на цепочке падало чуть меньше 5 вольт.

Если все кнопки разомкнуты, АЦП выдаст что-то около максимального значения 1023.
Если замкнуть один самый большой резистор, выходное значение АЦП уменьшится примерно на 512.
Если ..................................................................................................................................... 256.
Если ..................................................................................................................................... 128.
Если ...................................................................................................................................... 64.
Если ...................................................................................................................................... 32.
Если ...................................................................................................................................... 16.
Если замкнуть один самый маленький резистор, выходное значение АЦП уменьшится примерно на 8.
Если замкнуть все резисторы, выходное значение АЦП будет около минимального значения 0.

Если что-то непонятно, то вопросы задавайте по одному. Слона надо есть маленькими кусочками.

Неактивний

#85 2020-11-28 13:48:10

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

MikeM пише:

Нужно будет собрать 6 цепочек по 7 резисторов и 7 кнопок.

Я понял это вот так, правильно?

skhema_OhMyDarts_500.jpgi.gif


MikeM пише:

Питать цепочки нужно токовыми драйверами (коллектор биполярного транзистора или сток полевого).
Ток драйвера выбрать таким, чтобы при всех включенных резисторах на цепочке падало чуть меньше 5 вольт.

Разжуйте, пожалуйста, если не трудно. Где и как подключается полевой транзистор?  Вероятно, это детский вопрос, но в смысле грамотности в области электроники я ребёнок и есть )) Буду весьма признателен.

Неактивний

#86 2020-11-28 14:04:53

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

MikeM пише:

Если все кнопки разомкнуты, АЦП выдаст что-то около максимального значения 1023.
Если замкнуть один самый большой резистор, выходное значение АЦП уменьшится примерно на 512.
Если ..................................................................................................................................... 256
...   ...   ...   ...
Если ...................................................................................................................................... 16.
Если замкнуть один самый маленький резистор, выходное значение АЦП уменьшится примерно на 8.
Если замкнуть все резисторы, выходное значение АЦП будет около минимального значения 0.

Вот тут мне не всё понятно. Если все кнопки разомкнуты, значит ток будет идти по всем семи резисторам, и сопротивление будет максимальным на этом участке, т.е. АЦП, по идее, выдаст наименьший результат из  возможных? То же самое здесь: Если замкнуть все резисторы, ток потечет через замкнутые кнопки без сопротивления, и выходное значение АЦП будет максимальным из возможного. При подключении к +5В это так и было у меня... Или это из-за того, что подключаем на землю?

Неактивний

#87 2020-11-28 21:19:23

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

DmytroDnipro пише:

Или это из-за того, что подключаем на землю?

Именно так.

Неактивний

#88 2020-11-28 21:23:01

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

Схему с транзисторами нарисовал, а как её запостить не знаю.

Неактивний

#89 2020-11-29 00:38:54

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

MikeM пише:

Схему с транзисторами нарисовал, а как её запостить не знаю.

я такое делаю через здесь:

https://piccy.info/

Картинка 500 px, для форумов. Быстро грузится, нет рекламы - то, что нужно.

Неактивний

#90 2020-11-29 11:34:55

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

Skhema_800.jpgi.gif

Неактивний

#91 2020-11-29 11:41:10

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

Зелёными резисторами подбираются токи, при которых АЦП будут выдавать значения чуть ниже максимального. Их сопротивление примерно в 100...200 раз больше, чем суммарное сопротивление резисторов цепочки. Понижать "+12V" не рекомендую.
PS Спасибо за подсказку по рисункам

Неактивний

#92 2020-11-29 16:14:37

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

MikeM пише:

Зелёными резисторами подбираются токи, при которых АЦП будут выдавать значения чуть ниже максимального. Их сопротивление примерно в 100...200 раз больше, чем суммарное сопротивление резисторов цепочки. Понижать "+12V" не рекомендую.
PS Спасибо за подсказку по рисункам

Большое спасибо!

Неактивний

#93 2020-11-30 09:50:19

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

Напряжения в точках А0...А5 могут оказаться намного больше допустимых для портов контроллера. Поэтому, сначала нужно подобрать токи драйверов для получения на цепочках по 5 вольт, а потом подключать эту схему к контроллеру.

Неактивний

#94 2020-12-02 00:53:48

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

Получается, когда в цепи из семи резисторов задействован один, с самым меньшим сопротивлением, то "зелёный" резистор должен быть таким, чтобы открыть транзистор лишь немного, и в паре с этим маленьким обеспечить не более 5 вольт на пине? И в то же время, цепь из семи резисторов будет иметь сопротивление в 127 раз больше , и совместно с всё тем же "зелёным" резистором они должны обеспечить хоть сколько-нибудь заметный для МК уровень сигнала?
Что-то я не понимаю, как мне это посчитать - если я вообще правильно понимаю работу транзистора здесь.
С чего хоть начинать подбор - с выбора самого маленького в цепи, с выбора "зелёного", или с подбора транзистора? От чего отталкиваться?

Остання редакція DmytroDnipro (2020-12-02 01:00:22)

Неактивний

#95 2020-12-02 11:56:31

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

Пусть самый маленький резистор имеет сопротивление 100 Ом, тогда самый большой - 6,4 кОм. Суммарное сопротивление цепочки - 12,7 кОм. Тогда"зелёным" резистором нужно подобрать ток коллектора около 0,4 мА. При этом, если все кнопки разомкнуты, на цепочке будет падатьнапряжение  примерно 5 В. "Зелёный" резистор больше никогда не меняется! При нажатии разных комбинаций кнопок на входе порта будет изменяться напряжение. Если сопротивления резисторов в цепочке соответствуют указанной пропорции, то по напряжению можно точно определить, какие кнопки нажаты.

Неактивний

#96 2020-12-02 13:01:21

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

Re: аттракцион Ардуино-управляемый тир

какой то геморный и тупиковый путь выбрали....

Неактивний

#97 2020-12-02 22:54:40

DmytroDnipro
Учасник
З Днiпро
Зареєстрований: 2020-10-04
Повідомлень: 42

Re: аттракцион Ардуино-управляемый тир

MikeM пише:

"зелёным" резистором нужно подобрать ток коллектора около 0,4 мА. При этом, если все кнопки разомкнуты, на цепочке будет падать напряжение  примерно 5 В.

Т.е. выбор "зелёного" делать из того, какой используется транзистор? Но какие тогда параметры должен иметь транзистор? (Надыбал ресурс для онлайн подбора транзистора по параметрам, и понял: ооочень много неизвестных мне параметров, аж страшно. Вот здесь смотрел:
http://paratran.com/1ExtendedSearch.php , но растерялся )

Неактивний

#98 2020-12-03 11:58:49

MikeM
Учасник
З Киев
Зареєстрований: 2017-11-03
Повідомлень: 160

Re: аттракцион Ардуино-управляемый тир

Транзистор должен быть самый дешёвый с самым низким коэффициентом передачи. Главное - прямой проводимости (структура P-N-P). Советский КТ361А - самое то.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

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