Arduino boards are equipped with a 10-bit Analog to Digital converter. This means that they transform the signal coming from the pedal sensors into a number between 0 and 1023 (2^10), this is called the resolution.
To improve it, we can use an external 16-bit Analog to Digital converter like this one. It will convert the signal from the sensors into a number between 0 and 65535 (2^16). To give you a guide, Heusinkveld pedals use a 12 bit resolution (0-4095). The board then communicates with the Arduino using the I2C protocol.
You can connect 4 sensors on this card (3 pedals and a handbrake for example).
The other advantage of using this type of board is the fact that you can connect multiple I2C boards to the Arduino, using only two wires.
For example on the SRT box, we can connect to the I2C port the pedals and two button boxes without any problem.
- ADC 16 bits converter ADS1115 (Aliexpress)
The code is configured to work with the ADS1015 (12 bits) or the ADS1115 chip (16 bits). The ADS1015 is a little bit faster than the ADS1115.
The card can be connected to the SRT gearbox PCB on the Button Box port:
|ADC1115 16 bits PCB||Arduino||SRT Gearbox|
|A0 – Throttle (potentiometer)|
|A1 – Brake(potentiometer or loadcell)|
|A2 – Clutch (potentiometer or loadcell)|
|A3 – Handbrake|
The ADDR pin of the ADS115 can be connected directly to the GND pin of the PCB.
Code (from 2.6)
In the code, set the first boolean to “true” :
SRTPedals_ SRTPedals(1, //number of pedals
0, 0, 0, 0,//min
1023, 1023, 1023, 1023,//max
0,1,2,3, //Led pins
For more help, check this project.
One thought on “16 bits interface for pedals”