Jump to content

What's the easiest way to read the value of 14 potentiometers simultaneously?

kelvinhall05

I want to build a project but to do so I need to cheaply read the value/resistance of fourteen different potentiometers simultaneously. What can I use for this? Thanks!

Quote me to see my reply!

SPECS:

CPU: Ryzen 7 3700X Motherboard: MSI B450-A Pro Max RAM: 32GB I forget GPU: MSI Vega 56 Storage: 256GB NVMe boot, 512GB Samsung 850 Pro, 1TB WD Blue SSD, 1TB WD Blue HDD PSU: Inwin P85 850w Case: Fractal Design Define C Cooling: Stock for CPU, be quiet! case fans, Morpheus Vega w/ be quiet! Pure Wings 2 for GPU Monitor: 3x Thinkvision P24Q on a Steelcase Eyesite triple monitor stand Mouse: Logitech MX Master 3 Keyboard: Focus FK-9000 (heavily modded) Mousepad: Aliexpress cat special Headphones:  Sennheiser HD598SE and Sony Linkbuds

 

🏳️‍🌈

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, kelvinhall05 said:

I want to build a project but to do so I need to cheaply read the value/resistance of fourteen different potentiometers simultaneously. What can I use for this? Thanks!

True simultaneous reading is practically impossible. However, fast sequential reading is doable. You could e.g. use four ADS1115 4-channel, 16-bit I2C ADCs and connect them to an Arduino, RPi or similar, or if I2C was too slow for you, you could e.g. use ADS8319 instead, which uses SPI.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

IIRC arduino has exactly 14 io pins, if that's not enough you can get expansion shield for it. 

mY sYsTeM iS Not pErfoRmInG aS gOOd As I sAW oN yOuTuBe. WhA t IS a GoOd FaN CuRVe??!!? wHat aRe tEh GoOd OvERclok SeTTinGS FoR My CaRd??  HoW CaN I foRcE my GpU to uSe 1o0%? BuT WiLL i HaVE Bo0tllEnEcKs? RyZEN dOeS NoT peRfORm BetTer wItH HiGhER sPEED RaM!!dId i WiN teH SiLiCON LotTerrYyOu ShoUlD dEsHrOuD uR GPUmy SYstEm iS UNDerPerforMiNg iN WarzONEcan mY Pc Run WiNdOwS 11 ?woUld BaKInG MY GRaPHics card fIX it? MultimETeR TeSTiNG!! aMd'S GpU DrIvErS aRe as goOD aS NviDia's YOU SHoUlD oVERCloCk yOUR ramS To 5000C18

 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Levent said:

IIRC arduino has exactly 14 io pins, if that's not enough you can get expansion shield for it. 

If you're talking about e.g. Arduino Uno, it only has 6 ADC-pins, not 14. You can't use a digital pin to read analog voltage.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

On 10/24/2019 at 10:49 AM, kelvinhall05 said:

I want to build a project but to do so I need to cheaply read the value/resistance of fourteen different potentiometers simultaneously. What can I use for this? Thanks!

The best solution depends on exactly what you are trying to do. The following questions would really help us figure out what "simultaneous" actually means in this context:

 

  • What are the potentiometers measuring?
  • Are some more important than others?
  • How much time do you need between measurement cycles?
  • How accurate are the potentiometers?

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

Yeah, first define what simultaneous means. Can you live with all measurements done within 1-5ms, or do you need all within 1/100th of a ms or something like that?

Also, decide how much of an accuracy do you need. Can you live with 8 bit precision (0..255) or 10bit (0..1023) or do you need 16 bit?

 

Some ADCs can do thousands of measurement a second, and some will be slower if you use them in 16 bit mode, but faster in 12 bit or 10 bit or 8 bit... an ADC that does 100 samples at 12bit could potentially do 1000 samples a second at 8bit.

 

If you don't need exactly at same time, you could use 4 ADC chips each with 4 inputs and that will give you 16 inputs. If you use i2c ADC chips, you can set the address of each ADC to something unique and then you can use 2-3 wires to communicate with all four ADC chips.

You could broadcast command to all chips to sample on ADC input #1 of all 4 chips, wait the amount of time it takes to sample and read the 4 readings, 1 from each chip. Then send command to sample channel 2 on each of the four chips, wait then read, then repeat with channel 3 and channel 4.

With fast ADCs you could do this in less than 1ms, so it's more or less instant.

 

ex. MPC3008 : 8 channel 10bit ADC, can do up to 200k samples a second: http://ww1.microchip.com/downloads/en/DeviceDoc/21295d.pdf

So you could use 2 of these on SPI bus and enable each chip one at a time using their CS pin

 

lcsc has some potentially cheaper ADCs

ex  11 channel 10 bit, 33ksamples   TLC1543 https://lcsc.com/product-detail/Analog-To-Digital-Converters-ADCs_TI_TLC1543CDWR_TLC1543CDWR_C58251.html

 

Link to comment
Share on other sites

Link to post
Share on other sites

This is easy to do. I don't know why everyone is suggesting ridiculously complex solutions.

 

Look at how a typical microcontroller ADC works. It uses sample and hold and mux. You can build your own 16 channel version.

 

For the sample hold all you need are some FETs to connect/disconnect the pots and suitable caps for the hold. Then some analogue switches for the mux.

 

Youwill need some op-amps for buffering and to sort out impedance issues but you might be able to get away with fewer if you can select the pots to have strong drive.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×