Build Thread Build a New Set of Gauges from Scratch
DHugg
Senior Jeeper
- Posts
- 915
- Media
- 46
- Resources
- 1
- Thanks
- 2
- Location
- MS Gulf Coast
- Vehicle(s)
- '80 CJ7 304AMC crate with 8KMiles: MC2100 - AMC20 rear w/Superiors - Dana30 front - TF999 - Dana300TC - 35x12.5's - Tilt steer column - Flaming Rvr EZ-Steer Shaft - AGR Super Pump - AGR Super Box II - RockyRidge HD Brace - New home-designed digital TEMP - GAS - OILPR - CALIBRATE gauges.
Re: Build a New Set of Gauges from Scratch - Wrapup
Wrap-up
Here is the punch list for the completion of the digital Jeep gauges project:
1. Calibrate fuel tank level readout.
2. Links to hookup details for connecting the LCD-16X2 display to the Arduino board.
3. Link to Arduino sketch “resistorRead.ino”
4. Calibrate temperature sensor and readout
a. Use “resistorRead.ino” on the breadboard
b. Use standalone TMP36CZ analog temperature measuring device.
5. Calibrate oil pressure measurement using “resistorRead.ino”
6. Link to final iteration of Arduino sketch to cycle thru and display gauge readouts.
The calibration turned out to be both simple AND accurate, two surprises. remember that the Jeep fuel tank float registers a resistance of between 10 and 73 ohms, 10 ohms when empty and 73 ohms when filled. We need a voltage divider to get the measurement into our Arduino. I used a resistor of 1k ohms (1023 ohms actually) in series with resistors spanning the range of readings for the tank float resistor.
Here is a brief description of how you can mimic the Jeep CJ gauges on an Arduino:
And here is what the breadboard voltage divider circuit actually looks like:
Running the Arduino sketch “resistorRead.ino” and changing resistors between all values of 10 to 73 ohms, the sketch returned the correct resistor value within one ohm across the full range of fuel tank float resistor readings. The resistance reading of the tank float resistor is directly proportional to the quantity of fuel in the tank.
While the coolant temperature sending unit varies across a resistance range very close to the tank resistor, the coolant temp resistor is inversely proportional to the coolant temp… heat goes up, resistance goes down. We can simulate coolant temperatures with a voltage divider just as we did the fuel float level, but “resistorRead.ino” will need a slight change. That is an experiment for the next part of wrap-up.
Wrap-up
Here is the punch list for the completion of the digital Jeep gauges project:
1. Calibrate fuel tank level readout.
2. Links to hookup details for connecting the LCD-16X2 display to the Arduino board.
3. Link to Arduino sketch “resistorRead.ino”
4. Calibrate temperature sensor and readout
a. Use “resistorRead.ino” on the breadboard
b. Use standalone TMP36CZ analog temperature measuring device.
5. Calibrate oil pressure measurement using “resistorRead.ino”
6. Link to final iteration of Arduino sketch to cycle thru and display gauge readouts.
The calibration turned out to be both simple AND accurate, two surprises. remember that the Jeep fuel tank float registers a resistance of between 10 and 73 ohms, 10 ohms when empty and 73 ohms when filled. We need a voltage divider to get the measurement into our Arduino. I used a resistor of 1k ohms (1023 ohms actually) in series with resistors spanning the range of readings for the tank float resistor.
Here is a brief description of how you can mimic the Jeep CJ gauges on an Arduino:
And here is what the breadboard voltage divider circuit actually looks like:
Running the Arduino sketch “resistorRead.ino” and changing resistors between all values of 10 to 73 ohms, the sketch returned the correct resistor value within one ohm across the full range of fuel tank float resistor readings. The resistance reading of the tank float resistor is directly proportional to the quantity of fuel in the tank.
While the coolant temperature sending unit varies across a resistance range very close to the tank resistor, the coolant temp resistor is inversely proportional to the coolant temp… heat goes up, resistance goes down. We can simulate coolant temperatures with a voltage divider just as we did the fuel float level, but “resistorRead.ino” will need a slight change. That is an experiment for the next part of wrap-up.