Introduction

The field of electrical engineering has always been at the forefront of innovation, seeking solutions to the world’s growing energy needs and infrastructure challenges. One such challenge is the maintenance and repair of underground power and communication cables. Faults in these cables can lead to service interruptions and costly repairs, making it essential to develop efficient and reliable fault detection systems. In this blog, Circuits Bazaar explore an ingenious project undertaken by electrical engineering students: the Underground Cable Fault Locator, powered by Arduino, a 16×2 LCD display, relays, and various other components.

To book the project:- Click Here

The Importance of Underground Cable Fault Detection

Underground cables play a critical role in modern infrastructure, carrying power, data, and communication signals across cities and regions. However, these cables are susceptible to wear and tear, environmental factors, and accidental damage, which can lead to faults. Detecting and repairing these faults quickly is essential to ensure uninterrupted services and prevent costly downtime.

Video Demonstration:

Underground Cable Fault Locator Project with SMS Sending Feature
Underground cable fault distance locator project

Block Diagram:

Block Diagram of Underground cable Fault distance locator

Circuits:-

Varley Loop Circuit
Relay Circuit

Connect the Varley loop to the Relays and Microcontroller according to the pins mentioned in the Code. here we have shown the single relay but you can take 3 relay as our project required.

Components Required

Arduino Uno microcontroller board
16×2 LCD display
Relays (Three for three lines red yellow blue )
Current sensing resistors
Toggle Switches
Jumper wires
PCB ( Printed Circuit Board )
Power supply adaptor ( 12 V )

Resistors and Capacitors

Testing and Calibration

After building the circuit and programming the Arduino, it’s crucial to calibrate the system. Calibration involves determining the cable’s velocity factor and the speed of the signal, which are necessary for accurately calculating the fault location.

Working Principle:

Fault Injection: Fault is injected or simulated in the project with help of toggle switches

Voltage Measurement: The voltage drop across each segment is measured using current-sensing resistors and an analog-to-digital converter (ADC) built into the Arduino microcontroller.

Fault Localization: The voltage drop readings are analyzed to determine the segment where the fault is located. The distance to the fault is estimated based on the cable length and the relative voltage drops.

Display: The fault location is displayed on a 16×2 LCD screen for easy interpretation.

Building the Underground Cable Fault Locator


Constructing the Arduino-based cable fault locator involves assembling the hardware components, programming the Arduino microcontroller, and connecting the components to the cable.

Hardware Assembly:

Connect the Arduino board to the Varley loop circuit analog pin.

Connect the 16×2 LCD display to the Arduino board using jumper wires according to the circuits diagram.

Connect the relays pin in the Varley loop circuit to the Arduino board and control pins.

Connect the current-sensing resistors to the relays baord and the Arduino board’s ADC pins.

Connect the power supply to the Arduino board and the relays.

Software Programming:

Install the Arduino IDE software on your computer.

Write the Arduino sketch to control the relays, read voltage drop values, and calculate the fault location.

Upload the Arduino sketch to the Arduino board.

Code / Program of the project underground cable fault distance locator


/*
@circuitsbazaar
*/

#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


int sensorPin   = A0; // select the input pin for ldr
int sensorValue = 0; // variable to store the value coming from the sensor


void setup() {

  pinMode(8, OUTPUT); // Reelay 1
    pinMode(9, OUTPUT); // Reelay 2
      pinMode(10, OUTPUT); // Reelay 3
  
  digitalWrite(8, LOW);
    digitalWrite(9, HIGH);    
      digitalWrite(10, HIGH); 
      
Serial.begin(9600); //sets serial port for communication


  lcd.begin(16, 2);
  lcd.print("UNDERGROUND CABLE");
  lcd.setCursor(0, 1);
  lcd.print("FAULT LOCATOR");

  delay(1000);
  delay(1000);
  
}
void loop()
{




 lcd.clear();
  digitalWrite(8, LOW); // Low means relay on
    digitalWrite(9, HIGH);
      digitalWrite(10, HIGH); 
       delay(350); 
       
sensorValue = analogRead(sensorPin); // read the value from the sensor
Serial.println(sensorValue); //prints the values coming from the sensor on the screen

 if( (sensorValue >= 1000) )
{
     lcd.setCursor(0, 0); 
      lcd.print("R -  NF,") ;
   Serial.print("R -  NF,") ;


 }

  else if( (sensorValue >= 890) && (sensorValue <= 920)  )
{  
 Serial.print("R - 2KM,") ;
   lcd.setCursor(0, 0); 
  lcd.print("R - 2KM,") ;
}
  else if( (sensorValue >= 870) && (sensorValue <= 880)  )
{  
 Serial.print("R - 4KM,") ;
    lcd.setCursor(0, 0); 
   lcd.print("R - 4KM,") ;
}
  else if( (sensorValue >= 800) && (sensorValue <= 825)  )
{  
 Serial.print("R - 6KM,") ;
    lcd.setCursor(0, 0); 
   lcd.print("R - 6KM,") ;
}
  else if( (sensorValue >= 670) && (sensorValue <= 688)  )
{  
 Serial.print("R - 8KM,") ;
    lcd.setCursor(0, 0); 
   lcd.print("R - 8KM,") ;
}
 delay(1500); 

digitalWrite(8, HIGH);
    digitalWrite(9, LOW);
      digitalWrite(10, HIGH); 
       delay(350); 
       
sensorValue = analogRead(sensorPin); // read the value from the sensor
Serial.println(sensorValue); //prints the values coming from the sensor on the screen

 if( (sensorValue >= 1000) )
{
 
   Serial.print("Y -  NF") ;
    lcd.setCursor(8, 0); 
    lcd.print(" Y -  NF,") ;
 }

  else if( (sensorValue >= 890) && (sensorValue <= 920)  )
{ 
  lcd.setCursor(8, 0);  
 Serial.print("Y - 2KM,") ;
  lcd.print(" Y - 2KM,") ;
}
  else if( (sensorValue >= 870) && (sensorValue <= 880)  )
{  
 Serial.print("Y - 4KM,") ;
 lcd.setCursor(8, 0); 
   lcd.print(" Y - 4KM,") ;
}
  else if( (sensorValue >= 800) && (sensorValue <= 825)  )
{  
 Serial.print("Y - 6KM,") ;
 lcd.setCursor(8, 0); 
   lcd.print(" Y - 6KM,") ;
}
  else if( (sensorValue >= 670) && (sensorValue <= 688)  )
{  
 Serial.print("Y - 8KM,") ;
 lcd.setCursor(8, 0); 
   lcd.print(" Y - 8KM,") ;
}
 delay(1500); 


digitalWrite(8, HIGH);
    digitalWrite(9, HIGH);
      digitalWrite(10, LOW); 
       delay(350); 

sensorValue = analogRead(sensorPin); // read the value from the sensor
Serial.println(sensorValue); //prints the values coming from the sensor on the screen

 if( (sensorValue >= 1000) )
{
  lcd.setCursor(5, 1); 
   Serial.println("B -  NF") ;
    lcd.print("B -  NF") ;
 }

  else if( (sensorValue >= 890) && (sensorValue <= 920)  )
{  
 Serial.println("B - 2KM") ;
 lcd.setCursor(5, 1); 
  lcd.print("B - 2KM") ;
}
  else if( (sensorValue >= 870) && (sensorValue <= 880)  )
{  
 Serial.println("B - 4KM") ;
 lcd.setCursor(5, 1); 
   lcd.print("B - 4KM") ;
}
  else if( (sensorValue >= 800) && (sensorValue <= 825)  )
{  
 Serial.println("B - 6KM") ;
 lcd.setCursor(5, 1); 
   lcd.print("B - 6KM") ;
}
  else if( (sensorValue >= 670) && (sensorValue <= 688)  )
{  
 Serial.println("B - 8KM") ;
 lcd.setCursor(5, 1); 
   lcd.print("B - 8KM") ;
}
 delay(1500); 


}

PCB Download Link for Underground Cable Fault Locator:

Click here

Cable Connection:

Connect one end of the cable to the Arduino board and the other end to the fault injection point.

Connect the voltage-sensing circuits to the respective cable segments using relays.

Using the Cable Fault Locator
Power on the Arduino board and the relays.

Press the ‘Start’ button to initiate the fault detection process.

The Arduino microcontroller will activate the relays one by one, measuring the voltage drop across each cable segment.

The fault location will be displayed on the LCD screen.

Advantages of Arduino-Based Cable Fault Locator

Cost-effective: Uses readily available and inexpensive components.
Open-source: Arduino platform and software are open-source, allowing for customization and modification.
Versatile: Can be adapted for different cable lengths and types.
Portable: Compact and lightweight, making it suitable for field use.

Limitations of Arduino-Based Cable Fault Locator


Accuracy: Accuracy depends on the calibration of the current-sensing resistors and the precision of the ADC.
Fault type: Can only detect short circuit faults; open circuit faults require additional techniques.

Safety Considerations

Working with high-voltage equipment and electrical circuits demands strict safety measures

Work in a controlled environment.
Disconnect power sources when making connections.
Use insulating materials and enclosures to prevent electrical hazards.
Keep bystanders away from the testing area

Conclusion

The Underground Cable Fault Locator project, developed by creative electrical engineering students, showcases the power of technology to address real-world infrastructure challenges. By combining electronics, programming, and cable fault detection techniques, this project provides a practical solution for locating underground cable faults efficiently.

While this project offers an exciting opportunity for electrical engineering students and enthusiasts to learn and apply their knowledge, safety remains a paramount concern. Always prioritize safety when working with high-voltage equipment, and consider seeking guidance from experts in cable fault location for accurate and secure operation.

This innovative project demonstrates the potential of technology to address real-world challenges and contributes to the maintenance and reliability of underground cable networks, ensuring that the world continues to run smoothly.

Categorized in: