Reading negative voltage directly with an Arduino is not possible, because the Arduino's analog inputs can only measure voltages between 0V and the board's supply voltage (usually 5V or 3.3V). If you want to measure negative voltages, you will need to first shift the voltage level so that it falls within the range of the Arduino's analog inputs.
One way to do this is to use an op-amp circuit called an inverting amplifier. This circuit amplifies the input voltage by a fixed factor and inverts it so that the output voltage is positive and falls within the range of the Arduino's analog inputs. Here is a simple circuit diagram for an inverting amplifier:
+Vcc
|
Rf
|
Vin ---+---|_|--- Vout
| |
R1 |
| |
GND GND
In this circuit, R1 is the input resistor, Rf is the feedback resistor, Vin is the negative voltage that you want to measure, and Vout is the amplified and inverted output voltage. The gain of the amplifier is equal to Rf/R1. For example, if R1 = 10kΩ and Rf = 100kΩ, the gain would be 10.
To use this circuit with an Arduino, you would connect the Vout pin to one of the Arduino's analog inputs and read the voltage using the analogRead() function. Keep in mind that the Arduino's analog inputs have a resolution of 10 bits, so the voltage range is divided into 1024 levels. If you want to measure negative voltages with a high degree of precision, you may need to use a higher resolution analog-to-digital converter (ADC) external to the Arduino.