Форум программистов, компьютерный форум, киберфорум
Цифровая обработка сигналов
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/42: Рейтинг темы: голосов - 42, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
1

64 уровня на вх АЦП 6 ch DIP переключателем

04.03.2016, 02:50. Просмотров 7680. Ответов 21
Метки нет (Все метки)

Возможно ли с помощью одного или двумя входами АЦП сделать опрос 6-ти канального DIP выключателя без средней точки (каждый имеет положение вкл и выкл 6шт). Переключение в двоичном коде, т.е. 64 различных комбинаций?

Сам допетрил)) спустя часа два) Один из вариантов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2016, 02:50
Ответы с готовыми решениями:

Расширение АЦП микроконтроллера и подключение к АЦП датчиков
Здравствуйте. У меня встала задача сделать устройство для элеватора, для контроля температуры в 864...

Как связать таймер с АЦП и АЦП с DMA?
Вообщем стоит такая задача: через определенные интервалы времени периодически запускать...

CPLD в DIP
Я и не знал, а оказывается Atmel тянется к радиолюбителям:)...

Алгоритм работы с ацп АЦП STM32F103
Здравствуйте, уважаемые форумчане. Подскажите пожалуйста алгоритм работы с ацп. Допустим мне надо...

21
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
04.03.2016, 08:47 2
Динная схема больше подходит для определения одного переключателя. Когда включено больше одного данная схема потребует достаточно сложного анализа значений АЦП. Хотя, можно будет их замерить и сделать в виде таблицы и тогда все будет хорошо.
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
04.03.2016, 10:53 3
И в программе к значению из таблицы , добавьте проверку на +/- n . Где n = 1,2,3... Зависит от точности применённых резисторов
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
12.03.2016, 03:39 4
А если так - есть внешний источник импульсов, я им циклично заряжаю кондер, как только на R7 установилось напряжение 0,07в измеряю напряжение на out.

Протеус показал, что с каждым переключением разряда при стабильном токе в 0,000035А напряжение изменяется на 0,07в.
Т.е нам нужно два канала АЦП. Опираться МК будет на свое питание 5 в, дрейф которого не будет влиять на измерение, так как фактически для МК эти 0,07в могут быть не 0,07в реальных. Это он будет думать что 0,07в, а напряжение на out будет пропорционально.
Вопрос, какой примерно объем кода это займет в асме для тини13?
С какой максимальной частотой можно делать опрос? Ведь время разряда конд. будет разным, минимальным при всех замкн. переключателях. Спрошу по-другому - начиная с какой динамики спада напряжения на out_ref данная схема измерения будет давать сбои.
Насколько данная схема и методика вообще жизнеспособна?
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
12.03.2016, 03:55 5
vovoskym, ну поймите же вы наконец, игры на грани точности резисторов - это моветон. Так схемы не разрабатывают.

Если очень хочется измерять именно ADC, то разбейте на 2 канала по 3. При этом не забудьте правильно выбрать пороги принятия решения, а не просто "3 старших разряда".
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
12.03.2016, 04:04 6
Вообще-то, на ADC можно сделать subj, но не так - все резисторы одинаковые и после ВСЕХ ключей надо завести на ADC. Да, будет использоваться 6 входов ADC, но в самом простом STM32 их минимум 9 штук, не проблема. Этот вариант идиотский и ни чем не лучше простого опроса GPIO.... ))
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
12.03.2016, 04:17 7
ну по расчетам если R1 и R2 взять 0,5% то вполне даже ничего, остальные можно даже и 1%.
Ну да, это нужно добавить еще желательно два разряда для принятия решения, а измерять тинькой с точностью в 5 разрядов весьма сомнительно). Спасибо.
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
12.03.2016, 04:19 8
Цитата Сообщение от u37
Вообще-то, на ADC можно сделать subj, но не так - все резисторы одинаковые и после ВСЕХ ключей надо завести на ADC. Да, будет использоваться 6 входов ADC, но в самом простом STM32 их минимум 9 штук, не проблема. Этот вариант идиотский и ни чем не лучше простого опроса GPIO.... ))
Да в том то и дело, что кол-во ног ограничено, с этого вся и затея.
Всего есть 3 вывода, ими нужно обслужить 9 кнопок с одновременным нажатием. Точнее 2 ноги, но можно ресет еще задействовать.
0
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
12.03.2016, 09:10 9
А если сдвиговые регистры с паралельной загрузкой?
Погуглил немного, даже тут у ди есть
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
12.03.2016, 15:04 10
Вариант с 2х3.
Условные обозначения: К = ячейка из ключа S1 и резистора R1, см. 1 пост; R = резистор.
Две цепочки:
первая. Vcc - К1-К2-К3-R1-"A"
вторая. "A"-R2-К4-К5-К6-gnd.
"А" - выход порта GPIO.
На вход ADC надо просуммировать сигнал на двух резисторах (большого номинала) из точек К3-R1 и R2-К4.
Для измерения верхней цепочки на порте А ставится 0, для измерения нижней цепочке ставится 1.
Напряжения зависят от кода не линейно, поэтому надо один раз оцифровать таблицу и вычислять уровни по ней, благо их всего 2*8=16.
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
12.03.2016, 22:08 11
Появилась возможность сделать не 9, а 8 переключателей. Кроме того, их опрос нужен только при вкл питания для конфигурации. Регистры это хорошо, но код нужно экономить, поэтому работаем с АЦП.

<Изображение удалено>

Вначале rf1 и rf2 конфигурируем, как входы ацп. На 2 секунды на som подаем лог0, а на out лог1 , затем наоборот, этим заряжаем конденсатор. Out конфигурируем как вход ацп и ждем появления на rf1 0,3v. Сразу после появления измеряем напряжение на out. Затем всю процедуру повторяем для rf2.
С одинаковым током каждый шаг изменяет напряжение на out на 0,3в, таким образом оно лежит в диапазоне от 4,8 до 0,3в.
После замера rf1 и rf2 конфигурируем как лог выходы и ими мне нужно включать светодиоды.
Да нестандартно, но должно работать. )
Ребят, я не программист, прошу не кидаться камнями, кода разве больше уйдет на такое, чем если как регистр поставить? Мне просто тини 13 нужно спустить, их много есть.
0
0 / 0 / 0
Регистрация: 10.04.2014
Сообщений: 879
12.03.2016, 22:27 12
vovoskym
<сарказм>
Да, так однозначно кода будет в разы меньше чем с регистрами. Да и так проще схемотехнически, понятнее
</сарказм>
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
12.03.2016, 22:29 13
Цитата Сообщение от Sthuthu
vovoskym
<сарказм>
Да, так однозначно кода будет в разы меньше чем с регистрами. Да и так проще схемотехнически, понятнее
</сарказм>
я же сказал, я не программист, ну что вы ей Богу
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,113
12.03.2016, 22:37 14
Sthuthu, на самом деле, 8 резисторов надо при _любой_ схеме (PU resistor не в счет), а потому накладных расходов не много.
Впрочем, цирк с "Q", "C1"и "out" я не понимаю.
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
12.03.2016, 23:28 15
Ну ладно ладно, понял я все, всем спасибо.
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
13.03.2016, 00:20 16
))
где-то там в душе я удовлетворен, задача то решилась как никак)) (получилась схема на ацп).
Вообще очень часто приходится мне сталкиваться с вопросом, что больше занимает кода и чтоб получить ответ приходится тратить много времени. Ну а тут сам виноват, с этой темой изначально вопрос неправильно был поставлен.
0
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 208
13.03.2016, 01:20 17
можно еще диодами минимизировать выходы, вот
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
13.03.2016, 09:58 18
одновременное нажатие схема с диодами не воспримет.
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
14.03.2016, 01:49 19
Вот кусок схемы

Опрос нужен только однажды, при вкл питания.
У меня все-равно есть внешний синхроимпульс. При вкл питания подаем на PL отрицательный импульс, затем, по внешним синхроимпульсам читаем регистр. А после, выход PL используем для нужд красного светодиода, не обращая внимания на вход D. Так можно?
0
0 / 0 / 0
Регистрация: 09.01.2011
Сообщений: 225
14.03.2016, 17:20 20
понял, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2016, 17:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Mega16 и неиспользуемый АЦП (питание ацп?)
Если я не использую АЦП контроллера нужно ли подавать на АЦП питание? Если нет, то просто оставить...

Демонтаж микрухи в DIP-40
Есть какие-то идеи как сие осуществить??? Пробовал феном греть.... грел минут 10.. не помогло.....

Принцип DIP из SOLID
Правильно ли я понял принцип DIP из SOLID? Если класс A имеет зависимость от класса B, то при...

Цанговые DIP-панельки
Запаял тут пару цанговых DIP40 в пинборд и крепко так призадумался - а не поменять ли их на...

Система с переключателем
Нужно решить число y. #include &lt;stdio.h&gt; #include &lt;math.h&gt; #define pi 3,14 int main (void)...

Тест с переключателем
Здравствуйте. Возникла проблема с переключателями в тесте. Я устанавливаю по три переключателя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.