Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
kelvinhall05

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

Recommended Posts

Posted · Original PosterOP

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: Xeon X5650 OC'd to 4.2GHz @ 1.35V (courtesy of @XR6)Motherboard: Asus Sabertooth X58 RAM: 4x4GB G.Skill DDR3 1866MHz GPU: Asus RX 570 Strix Storage: WD Blue 1TB and a 128GB Kingston UV400 PSU: EVGA 600B Case: Fractal Design Define C Cooling: H100i V2, be quiet! Pure Wings 2 (two intake, two exhausting through radiator) Monitor: 3x Dell P2210 on a Steelcase Eyesite triple monitor stand Mouse: Logitech G403 Prodigy Wireless Keyboard: It changes, but usually Focus FK-9000 Mousepad: Steelseries QcK XL Headphones:  Sennheiser HD598SE

 

 

 

 

i use arch btw

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 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 post
Share on other sites

If you need it simultaneously use a FPGA.

Atmega2560 won't work as the ADC is multiplexed to all the input channels and it is a successive approximation ADC. Syncing dedicated flash ADC could also work but a FPGA is simpler.

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?

I will never succumb to the New Cult and I reject the leadership of @Aelar_Nailo and his wicked parrot armies led by @FakeCIA and @DildorTheDecent. I will keep my eyes pure and remain dedicated to the path of the One True; IlLinusNati

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 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 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

Newegg

×