DIY Project - 01 Electric Vehicle Battery Tester
Automotive Education & Innovation Hub: DIY Project - 01 Electric Vehicle Battery Tester
Project Overview:
This DIY project involves creating a simple but effective battery tester specifically designed for electric vehicles (EVs). This device will help individuals assess the health of their EV batteries, identify potential issues, and make informed decisions about maintenance or replacement.
Materials:
- Arduino microcontroller
- Analog-to-digital converter (ADC) module
- Voltage divider resistors
- Current shunt resistor
- LCD display or LED indicators
- Power supply
- Breadboard
- Jumper wires
- Enclosure (optional)
Procedure:
Circuit Design:
- Design a circuit that connects the ADC module to the EV battery terminals through a voltage divider and current shunt resistor.
- The voltage divider will reduce the battery voltage to a safe level for the ADC to measure.
- The current shunt resistor will measure the current flowing through the battery.
Programming:
- Write Arduino code to read the analog values from the ADC module and convert them to voltage and current measurements.
- Display the measured voltage and current values on the LCD display or LED indicators.
- Implement algorithms to calculate the battery's state of charge (SOC) and state of health (SOH) based on the voltage and current measurements.
#include <LiquidCrystal.h> // Include the LiquidCrystal library for LCD display
// Define pins for ADC module, LCD display, and LED indicators
const int adcPin = A0; // Analog input pin for ADC module
const int lcdPin1 = 2; // LCD display pins (adjust as needed)
const int lcdPin2 = 3;
const int lcdPin3 = 4;
const int lcdPin4 = 5;
const int lcdPin5 = 6;
const int lcdPin6 = 7;
const int ledPin = 13; // LED indicator pin
// Define constants for voltage divider and current shunt
const float voltageDividerRatio = 10.0; // Adjust based on your voltage divider
const float currentShuntResistance = 0.1; // Adjust based on your current shunt
// Create objects for LCD display and ADC module
LiquidCrystal lcd(lcdPin1, lcdPin2, lcdPin3, lcdPin4, lcdPin5, lcdPin6);
ADC adc;
void setup() {
// Initialize LCD display
lcd.begin(16, 2); // Adjust dimensions as needed
// Initialize ADC module
adc.begin();
// Initialize LED indicator
pinMode(ledPin, OUTPUT);
}
void loop() {
// Read analog value from ADC module
int analogValue = adc.read(adcPin);
// Convert analog value to voltage
float voltage = analogValue * 5.0 / 1023.0 * voltageDividerRatio;
// Convert analog value to current
float current = (analogValue * 5.0 / 1023.0) / currentShuntResistance;
// Calculate SOC and SOH (implement your own algorithms here)
float soc = calculateSOC(voltage);
float soh = calculateSOH(voltage, current);
// Display voltage, current, SOC, and SOH on LCD
lcd.setCursor(0, 0);
lcd.print("Voltage: ");
lcd.print(voltage, 2);
lcd.print(" V");
lcd.setCursor(0, 1);
lcd.print("Current: ");
lcd.print(current, 2);
lcd.print(" A");
lcd.setCursor(8, 0);
lcd.print("SOC: ");
lcd.print(soc, 2);
lcd.print("%");
lcd.setCursor(8, 1);
lcd.print("SOH: ");
lcd.print(soh, 2);
lcd.print("%");
// Control LED indicator based on SOC (optional)
if (soc < 20) {
digitalWrite(ledPin, HIGH); // Indicate low SOC
} else {
digitalWrite(ledPin, LOW);
}
delay(1000); // Update display every second
}
// Implement your own algorithms for calculating SOC and SOH
float calculateSOC(float voltage) {
// Example: Linear relationship between voltage and SOC
float soc = (voltage - 3.0) / 3.0 * 100;
return constrain(soc, 0, 100);
}
float calculateSOH(float voltage, float current) {
// Example: Based on voltage and current over time
// Implement a more complex algorithm here
return 100; // Placeholder
}
Testing and Calibration:
- ttery tester to a known-good Connect the baEV battery.
- Calibrate the voltage and current measurements by comparing them to reference values.
- Test the battery tester under various conditions, such as charging, discharging, and different load levels.
Enclosure (Optional):
- If desired, design and build an enclosure to protect the electronic components and provide a user-friendly interface.
Additional Features (Optional):
- Temperature sensor: Measure the battery temperature to assess its performance under different conditions.
- Battery capacity estimation: Estimate the battery's remaining capacity based on voltage, current, and temperature data.
- Battery health monitoring: Track changes in the battery's performance over time to identify potential degradation.
- Wireless communication: Enable wireless communication (e.g., Bluetooth, Wi-Fi) to transmit data to a smartphone or computer for remote monitoring and analysis.
Learning Outcomes:
- Understanding of EV battery technology and operation
- Experience with electronic circuit design and prototyping
- Programming skills using Arduino
- Knowledge of analog-to-digital conversion
- Ability to measure and analyze electrical quantities
- Practical application of electrical engineering principles
Safety Precautions:
- Always handle batteries with care and follow proper safety guidelines.
- Ensure that the voltage divider and current shunt resistor are rated for the appropriate voltage and current levels.
- Avoid touching the battery terminals while the tester is connected.
By completing this DIY project, participants will gain valuable insights into EV battery technology and develop practical skills in electronics and measurement.
Lakshan Hettiarachchi
- Automotive Expert & Electronic Engineer
- Professor of Chemistry & Electronic Engineering
- 14+ Years of Experience in Automotive Repair & Electronics


Comments
Post a Comment