Як мені збільшити кількість доступних мені аналогових (вхідних) штифтів?


26

Я вже знаю, як збільшити кількість цифрових штифтів на Arduino за допомогою мультиплексора.

Я хочу збільшити кількість аналогових вхідних каналів, які у мене є. Одне рішення - додати ще одного Ардуїно як раба.

Як би я збільшив кількість аналогових вхідних каналів? (Я припускаю, що деякі MUXing та ADC задіяні). Якщо надто складно написати у відповідь, загальний контур схеми / коду буде добре.

Я також відкритий для захисту пропозицій, хоча я вважаю за краще, якщо б було не надто жорстке апаратне рішення.


Пов’язана публікація electronics.stackexchange.com/a/62500/7036
Нік Алексєєв

Відповіді:


32

Якщо ви вже знайомі з цифровими мультиплексорними чіпами, хороші новини! Їх можна використовувати і для аналогових сигналів.

http://playground.arduino.cc/Learning/4051

Основна передумова точно подібна до цифрового мультиплексування сигналу. Ви використовуєте мікросхема 4051 як "перемикач смуги руху" і читаєте сигнал будь-якої смуги, на яку ви скажете чіпу перейти. 4051 використовує 3 цифрових штифта та 1 додатковий аналоговий (або цифровий) штифт на ардуїно для створення до 8 смуг введення. Деякі мультиплексори є можливими, тому ви можете легко додавати ще 8 сигналів, не потребуючи відволікання їх від самого ардуїно.

Це точно як техніка, яку ви вже знаєте для цифрових сигналів, просто підключіть канал, який ви читаєте, до аналогового штифта, а не цифрового, а потім проведіть цикл через двійкові стани і прочитайте аналогові значення.

Я зробив для вас анімований gif.

введіть тут опис зображення


3
Хоча посилання відповідає на питання, ви могли б трохи детальніше розглянути? Про схему написати коротко? (Відповіді в мережі обмежують лише відповіді )
Manishearth

Гаразд. Відповідь розширений.
Стів Кулі

3
Одне уточнення, згадуваний вами 4051 - це аналоговий мукс, а не цифровий мукс, я б уточнив у вашій відповіді, тому що напевно є цифрові мукси, які не можуть цього виконати, оскільки їхні драйвери виводу та вводу не розроблені для лінійного реагування. Можливо, варто додати, що ланцюжок аналогових мюкс може впливати на сигнал залежно від характеристик mux
naven87

1
Варто відзначити, що аналогові мукси не є тривіальними для вибору, дизайнер повинен врахувати перепади напруги (більшість працює лише в межах діапазону живлення, наприклад, opamps), пропускну здатність, опір включення, перехресні переговори і т. Д., Коли напруга є найбільшим потенціалом показувати пробки.
Містер Містер

Я вважаю, що ви також можете використовувати цифровий контакт для живлення датчика, тому просто увімкніть один цифровий контакт щодо сенсорного VCC та поділіться тим же аналогом.
Ciasto piekarz

10

Можливо, важливо пам’ятати, що сам чіп ATmega Arduino використовує аналоговий MUX. У мікросхеми Uno (ATmega328) є лише один АЦП. Шість аналогових входів насправді є MUX, який підключається до цього АЦП.

Ось чому ви можете одночасно читати лише 1 аналоговий вхід.

Під час розширення аналогових входів може знадобитися врахувати, скільки часу знадобиться зробити все це MUXing і необхідні додаткові зовнішні АЦП у вашій програмі.


1

Враховуйте це: додайте ATtiny 85 з послідовним зв’язком з Arduino, він використовує 2 штифта для Rx, Tx, і у вас є ще 3 штифта, які можна використовувати як аналог. Це означає, що ви можете розробити власний протокол, ATtiny може обробити алгоритм і відправити оброблювану інформацію в Arduino, це теж дуже дешево, я спробував це сам, це гарна архітектура, я думаю.

Хороший день

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.