The purpose of this circuit is to generate a constant current (~198 microAmps), which is sent through the body via two electrodes. The electrodes are placed on the opposite hand and ankle of the subject. Two more electrodes are placed in close proximity to the initial "current" electrodes, and will be used to measure the voltage difference. The voltage difference is then amplified by an instrumentation amplifier, read by the AD5933 chip, and an impedance value will be output by the Arduino. Using relationships established by Lukaski et al., the fat free mass in kilograms can be calculated from the impedance value. Subtracting that value from the total mass of the subject, the percent body fat can be found.
The following supplies are necessary:
1 x Arduino
2 x TL072 OP Amps
1 x INA128 Instrumentation Amplifier
1 x AD5933
1 x 10 kΩ resistor
4 x 1 kΩ resistors
1 x 5.5 kΩ resistor
1 x 10 nF capacitor
The AD5933 chip will output a user defined voltage (for our case, we used 198 mV), which will then pass through the high pass filter to attenuate frequencies below 10 kHz. The voltage then flows through a transconductance amplifier, which coverts it into a current source, which is sent through the body via two electrodes. The voltage difference, measured by two additional electrodes placed on the body, is sent to the instrumentation amplifier, and feeds into the AD5933 chip, which measures the impedance and outputs it to the Arduino Uno.
The transconductance amplifier converts an input voltage into a current. Using Ohm's Law, for an input voltage of 198 mV, and a Rcurrent value of 1 kΩ, the current will 198 microAmps. The Rprotect resistor is used as a means of measuring the current beforehand to make sure it is indeed 198 microAmps, and not too large of a value as to cause harm to the subject. A value of 1 kΩ can be used for this resistor. Using the multimeter, if the voltage drop across Rprotect is equal to 198 mV, then the current can be verified to be 198 microAmps.
The first part of the code, case A, performs a frequency sweep starting at 1 kHz, and goes up to 100 kHz, increasing in 1 kHz increments.
The second part of the code, case C, performs a frequency sweep and outputs the frequency, resistance, and reactance at each frequency increment.
The last part of the code, case B, measures the temperature of the chip.
To determine the fat free mass, first take the inverse of impedance to find conductance. Then, multiply the conductance by the subject's height squared. Finally, substitute the value into the equation: y=3.04+0.85x, where x is the value determined in the previous step, and y is the fat free mass in kg. From here, to find the fat mass of the subject by subtracting y from the total mass. Percent body fat can be found by dividing the fat mass by the total mass and multiplying by 100.
The above relationship was found by Lukaski, et al., in their paper Assessment of fat-free mass using bioelectrical impedance measurements of the human body.