elcouz:
… I am wondering what is the best way to "inject" keypress into the Instrument Cluster ADC 5V signal.
Hello, Laurent. I feel you are on a generally good path. To get on the same page — the original circuit is functional with multiple input voltages on an ADC input. The input voltages are created by a series of voltage dividers. Each different input voltage is considered a request for specific action to the ECU. This is effectively no different than hundreds of other examples, from temperature thermistor dividers to light sensing photoresistor circuits, where a voltage divider provides an input voltage signal. The goal (as I understand you) is to provide both user input (through original switches) and also add the option of equivalent inputs via an Arduino.
In order to accomplish the goal, the Arduino should be able to provide the input voltage to the ECU using the original system's 5V pullup, in order to leave the original setup simultaneously functional. Your suggested drawing is the general concept of resistors, but could be accomplished several ways. Optionally could be to momentarily "cut" the switch circuit and pullup out with a FET, while simultaneously inserting the replacement signal voltage via Arduino, but timing would be important in order to avoid a circuit error (no signal) reaction in the ECU.
The original resistor ladder provided voltage division by adding resistance in-series, e.g., pressing the Down(3) switch would create a voltage divider between R1 and three resistors totaling ~371 ohms. As R1 is unknown; using an example value of R1 = 1k, the input signal voltage would be in the range of 1.353 volts. Right Key(1) would signal approximately 2.71V.
Assuming (!) that no two switches would be active simultaneously; my suggestion would be to instead switch individual resistors into the division singly, each with the total resistance of the series resistors for that switch function. For example, switch 371 ohms to ground for Down(3). The switching should be through signal devices (e.g., signal MOSFETs), as the current is too high in some cases for the Arduino pins to handle. Be sure to include the device's on-resistance (Rds(on) for FETs) to your intended resistance.
An alternative could be to use a single MOSFET as a resistor (similar to your digital resistor idea), controlled at specific levels of resistance by Arduino PWM, in order to create the equivalent required resistor effects through a single device. While simpler in concept, the hardware and tuning could be as or more complicated than simple resistors Another would be to create the required signal directly to the cut (see above) ECU pin with a PWM RC circuit outputting the voltage without resistors, e.g., 1.35V to signal for Down(3). Lots of options and just food for thought, as the requirement is simply to create a specific voltage to the ECU pin for each function; but you can see I'm leaning towards your basic concept but with single instead of series resistors.
As there is no magic in the 5V power/pullup source and no isolation should be required, the Arduino could be both powered and grounded by the system source, in order to maintain shared function and circuit completion. Any point in the vehicle that shares ground and power with the ECU (not isolated) should function. Be aware that using non-isolated remote power and ground may introduce voltage offset that could play havoc with your intended voltage control. I hope that helps in some way, and good luck!