• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

несколько датчиков на 1 АЦП через транзисторные ключи

ivang

New member
в связи с тем, что у esp8266 1 аналоговый вход есть некоторые сложности в подключении нескольких аналоговых датчиков к этому устройству.
Это конечно можно решить путем подключения дополнительного АЦП или того хуже - ардуины.

но будет ли жизнеспособна схема подключения нескольких датчиков на 1 пин при помощи транзисторных ключей?
т.е. у нас висят датчики без питания, по необходимости подаем питание на каждый датчик по очереди (через транзисторы, а на них питание уже с цифровых пинов, коих на esp8266 уже побольше будет), после получения питания датчик "оживает" и начинает давать данные на АЦП. Считываем данные, выключаем питание с датчика.

общую схему попробовал изобразить тут (да-да это все теория, кривой эмулятор и т.д., но общую схему дает понять): Один аналоговый пин, чтение нескольких датчиков | Autodesk Circuits
upload_2016-9-3_23-50-35.png upload_2016-9-3_23-51-6.png
правда там за основу взята ардуина, т.к. в эмуляторе есть только esp-1, на которой не выведен АЦП.
коротко о принципе работы "устройства" (из эмулятора по ссылке выше).
на ацп ардуины подключен датчик освещения и напряжение (через делитель).
т.е. 2 "датчика" на каждый из них плюс подается через транзистор управляемый с цифрового пина.
Каждую секунду производится переключение: датчик света - напряжение - оба датчика отключены.
При включении одного датчика, другой естественно отключается.
В эмуляторе доступны схемы и код, т.е. все что пожелаете (да, не забудьте на датчике освещенности задать его состояние, иначе по свету тоже выдаст 1023)

В консоль выводятся следующие данные:
No Measure: 1023
Light: 1023
Voltage: 984

Жду отзывов по практическому использованию подобного, а возможно кто-то поделиться более правильными методами использования 1 АЦП для нескольких датчиков.

p.s. радиолюбитель из меня совсем начинающий, возможны логические ошибки в подключении и схеме, буду благодарен за критику и разъяснения ошибок (возможно стоило транзисторы не npn использовать, а связку npn + pnp, чтобы на датчики подавать не минус, а плюс). Резисторы раскидывал методом "тыка", пытаясь получить на выходе необходимый диапазон значений (на ацп) и стараясь сократить потребление.
 
Последнее редактирование:

nikolz

Well-known member
в связи с тем, что у esp8266 1 аналоговый вход есть некоторые сложности в подключении нескольких аналоговых датчиков к этому устройству.
Это конечно можно решить путем подключения дополнительного АЦП или того хуже - ардуины.

но будет ли жизнеспособна схема подключения нескольких датчиков на 1 пин при помощи транзисторных ключей?
т.е. у нас висят датчики без питания, по необходимости подаем питание на каждый датчик по очереди (через транзисторы, а на них питание уже с цифровых пинов, коих на esp8266 уже побольше будет), после получения питания датчик "оживает" и начинает давать данные на АЦП. Считываем данные, выключаем питание с датчика.

общую схему попробовал изобразить тут (да-да это все теория, кривой эмулятор и т.д., но общую схему дает понять): Один аналоговый пин, чтение нескольких датчиков | Autodesk Circuits
Посмотреть вложение 2038 Посмотреть вложение 2039
правда там за основу взята ардуина, т.к. в эмуляторе есть только esp-1, на которой не выведен АЦП.
коротко о принципе работы "устройства" (из эмулятора по ссылке выше).
на ацп ардуины подключен датчик освещения и напряжение (через делитель).
т.е. 2 "датчика" на каждый из них плюс подается через транзистор управляемый с цифрового пина.
Каждую секунду производится переключение: датчик света - напряжение - оба датчика отключены.
При включении одного датчика, другой естественно отключается.
В эмуляторе доступны схемы и код, т.е. все что пожелаете (да, не забудьте на датчике освещенности задать его состояние, иначе по свету тоже выдаст 1023)

В консоль выводятся следующие данные:
No Measure: 1023
Light: 1023
Voltage: 984

Жду отзывов по практическому использованию подобного, а возможно кто-то поделиться более правильными методами использования 1 АЦП для нескольких датчиков.

p.s. радиолюбитель из меня совсем начинающий, возможны логические ошибки в подключении и схеме, буду благодарен за критику и разъяснения ошибок (возможно стоило транзисторы не npn использовать, а связку npn + pnp, чтобы на датчики подавать не минус, а плюс). Резисторы раскидывал методом "тыка", пытаясь получить на выходе необходимый диапазон значений (на ацп) и стараясь сократить потребление.
--------------------------------------
1) Полагаю, что надо начать с параметров датчиков, так как есть варианты уже со встроенным цифровым интерфейсом и надобность в аналоговом входе отсутствует.
-------------------------------------------------
2) В некоторых случаях удобном преобразовать напряжение или ток датчика в интервал. В этом случае можно использовать цифровой вход, вместо аналогового.
----------------------------------------
3) Если несколько датчиков подключены ко входу АЦП, то необходимо обеспечить им третье состояние (высокое выходное сопротивление) при отсутствии питания. Как эта задача решена в этой схеме?
 

ivang

New member
nikolz, спасибо за ответ.

1. в данном варианте рассмотрим принципиальное использование аналоговых датчиков (цифровых нет, либо они не подходят), да и вообще цель то зацепить несколько датчиков на 1 ацп.
2. интересно, выходит за рамки задачи, но тем не менее буду благодарен за пример или информацию, это что-то из разряда rc цепей ?
3. в предложенной схеме если датчик не используется, то в схеме к сожалению наоборот стоит высокий уровень, но если как и предполагал в постскриптуме использовать не npn и pnp транзистор, то будет обеспечено высокое сопротивление (при закрытом транзисторе).
4. в условиях сразу данный вариант исключил, это доп схемы / контроллеры, доп затраты.
5. как уже упоминал, уровень знаний в этой области у меня достаточно низкий, если под "аналоговым коммутатором" подразумевается не какая то сложная схема типа АЦП I2С, то возможно именно это я и хочу реализовать (по факту транзисторами я тоже коммутирую различные датчики на АЦП).
 

nikolz

Well-known member
nikolz, спасибо за ответ.

1. в данном варианте рассмотрим принципиальное использование аналоговых датчиков (цифровых нет, либо они не подходят), да и вообще цель то зацепить несколько датчиков на 1 ацп.
2. интересно, выходит за рамки задачи, но тем не менее буду благодарен за пример или информацию, это что-то из разряда rc цепей ?
3. в предложенной схеме если датчик не используется, то в схеме к сожалению наоборот стоит высокий уровень, но если как и предполагал в постскриптуме использовать не npn и pnp транзистор, то будет обеспечено высокое сопротивление (при закрытом транзисторе).
4. в условиях сразу данный вариант исключил, это доп схемы / контроллеры, доп затраты.
5. как уже упоминал, уровень знаний в этой области у меня достаточно низкий, если под "аналоговым коммутатором" подразумевается не какая то сложная схема типа АЦП I2С, то возможно именно это я и хочу реализовать (по факту транзисторами я тоже коммутирую различные датчики на АЦП).
--------------------
1) Начну с простого - АЦП 4 входа I2C.
ADS1115
Включить его также просто как датчик т е два цифровых пина SDA и SCL
а на четыре входа подключаем наши датчики и получаем значения с точностью в 32 раза лучшей чем на имеющимся в ESP .
------------------------------------------
2) относительно параллельного включения датчиков. Надо смотреть их даташит так как состояние их выхода при отсутствии напряжение питания может быть разным.
Т е они могут нагружать друг друга.
----------------------------------------------------
3) Если Вы будете отключать и включать питание у датчиков, то надо будет ждать выхода датчиков на рабочий режим. Например датчики различных газов выходят на рабочий режим несколько минут.
Полагаю, что такой способ управления датчиками есть результат недостаточного уровня знаний в цифровой схемотехники у автора.
 

TRO

Member
Я делал так: Пускал на вход АЦП каждый сигнал через 2 последовательных сопротивления, в точку между этими сопротивлениями ставил мосфет на землю, и таким образом прибивал сигнал неиспользованного сигнала к земле. Номиналы сопротивлений для получения правильных сопротивлений (получившихся делителей) подбирал в симуляторе. Единственно при этом амплитуда измеряемых сигналов должна как минимум (кратно количеству) превышать диапазон АЦП (ибо вынужденные делители).
 

nikolz

Well-known member
Я делал так: Пускал на вход АЦП каждый сигнал через 2 последовательных сопротивления, в точку между этими сопротивлениями ставил мосфет на землю, и таким образом прибивал сигнал неиспользованного сигнала к земле. Номиналы сопротивлений для получения правильных сопротивлений (получившихся делителей) подбирал в симуляторе. Единственно при этом амплитуда измеряемых сигналов должна как минимум (кратно количеству) превышать диапазон АЦП (ибо вынужденные делители).
Безусловно, для спортивного интереса можно делать и так.
Если Вы на вход ацп ставите делители, то их погрешность 5-20%.
т е Вы будете измерять сигналы с такой же ошибкой.
Вопрос лишь в том зачем эта конструкция на дискретных элементах, если есть готовые чипы.
-----------------------------------------------
Можно конечно и на лампах сделать, если интересен процесс.
 

TRO

Member
@nikolz, вы через чур сильно утрируете, покажите мне более простое и дешевое решение чем четыре резистора и 2 мосфета (кстати в 1 корпусе). Во вторых, ваши надуманные погрешности с делителями элементарно решаются примитивной быстрой калибровкой (к тому же непонятно как вы без делителей собираетесь привязывать ваши сигналы к диапазону АЦП, они все равно понадобятся). В третьих, не надо грузить железку лишним кодом по опросу внешнего АЦП. В четвертых эти ваши готовые чипы стоят денег несравнмых с моей рассыпухой, (а мы ESPшку ведь из за крайней дешевизны пользуем). В пятых, я без офтопа дал ответ в рамках темы топика, а если не нравится сама тема, игнорируйте, а не лезьте в неё со своими ламповыми подколами.

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

nikolz

Well-known member
если на не хватает цифровых In/out то ставим чип раcширитель на 8 с I2C. таким способом можно увиличить число цифровых In/Out до 128.
 
Сверху Снизу