So i am looking into reading analog sensors with the Portenta Machine Control board, i noticed that there is only x7 Analog inputs on the board but i need to be able to read from 11 sensors at 1Khz,
What would be the best way to do this as i noticed in the specifications it mentions:
3× ADCs with 16-bit max. resolution (up to 36
channels, up to 3.6 MSPS)
So could i in theory have 108 channels? But how would i achieve this?
I wont be using analogRead as i plan on reading the data through mbed to avoid any hanging of the application but im a bit stuck on where to go from here.
I could possibly have two sensors in 1 input with some diodes but would this add much in the way of latency or any drawbacks to doing it this way, My other option would be to buy a seperate 16 channel ADC to talk to the arduino over I2C however i would like to avoid any additional hardware if possible.
My recommendation is to use an external AD converter or AD shield and a MUX.
I have tried to use the Portenta ADC for which I needed good 16 bit AD values of a single channel samples with 50kHz for some control application.
But I came to the conclusion that the huge AD measurement noise leaves only about 8 usable bits. (Even with the stablization of power supply, reference voltage, oversampling/filtering, etc. it was not possible to receive good 16 bit. Even a Arduino Mega with 10Bit ADC has a better precision.)
Therefore I have given up with Portenta for this project...
The Arduino Machine Control has only 3 analog inputs rated for 0-10 V or 4-20 mA.
If you need these industrial interfaces, you either need 4 boards, an analog multiplexer or build your own daughter board for a Portenta or another board with the voltage dividers.