English
Español
PCBWAY PCB service

PCBWAY PCB service

PCBONLINE PCB service






Sketch for the inductance meter



Download the .zip Sketch for the inductance meter







Or just copy the code below


/*Thanks. Remember to visit my Youtube channel
  If you don't whant to Serial print the valeus just delete the serial. print lines
  and leave just the LCD print ones.
  I've used a i2c LCD screen module. 
*/
//LCD config
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,20,4);  //sometimes the adress is not 0x3f. Change to 0x27 if it dosn't work.

//13 is the input to the circuit (connects to 150ohm resistor), 11 is the comparator/op-amp output.
double pulse, frequency, capacitance, inductance, inductance__mH;
void setup(){
  lcd.init();
  lcd.backlight();
  Serial.begin(115200);
  pinMode(11, INPUT); //Input from the comparator output
  pinMode(13, OUTPUT);//output through a 150 ohm resistor to thr LC circuit
  Serial.println("Hi there!");
  delay(1000);
  Serial.println("ELECTRONOOBS inductance meter");
  delay(2500);
}
void loop(){
  digitalWrite(13, HIGH);
  delay(5);//give some time to charge inductor.
  digitalWrite(13,LOW);
  delayMicroseconds(100); //make sure resination is measured
  pulse = pulseIn(11,HIGH,5000);//returns 0 if timeout
  if(pulse > 0.1){ //if a timeout did not occur and it took a reading:
    
    
  #error insert your used capacitance value here. Currently using 2uF. Delete this line after that
  capacitance = 2.E-6; // <- insert value here
  
  
  frequency = 1.E6/(2*pulse);
  inductance = 1./(capacitance*frequency*frequency*4.*3.14159*3.14159);//one of my profs told me just do squares like this
  inductance *= 1E6; //note that this is the same as saying inductance = inductance*1E6
  inductance_mH = inductance * 1000; //note that this is the same as saying inductance = inductance*1E6

  //Serial print
  Serial.print("High for uS:");
  Serial.print( pulse );
  Serial.print("\tfrequency Hz:");
  Serial.print( frequency );
  Serial.print("\tinductance uH:");
  Serial.println( inductance );
  delay(10);

  //LCD print
  lcd.clear();
  lcd.setCursor(0,0); 
  lcd.print("uH Inductance mH");
  lcd.setCursor(0,1); 
  lcd.print(inductance);
  lcd.setCursor(10,1); 
  lcd.print(inductance_mH);        
  delay(10);
  }
}