# CT Sensor on AVR ATmega

A CT (Current Transformers) sensor is a device used to measure alternating current. A CT sensor, like other current transformers is made by a primary winding, a magnetic core and a secondary winding. The primary winding is often a single wire passing through the main core of the transformer. The seconday winding is used to sense the AC current passing through the primary winding wire. They are usually build to be clipped on the primary wire. As any other AC transformer the primary winding current produce a change in the magnetic field of the core. This change cause current on the secondary winding.

This library implements a way to read current using a CT sensor on ATmega.
So the primary current Ip is calculated by using the formula
Ip = V * Ns / Rburden

Given
Ns = Turns on secondary coil, i.e. the CT sensor core turns
Rburden = Burden resistor of the CT sensor.
Given
Vp = Voltage on primary
Vs = Voltage on secondary
Np = Turns on primary
Ns = Turns on secondary
Ip = Current on primary
Is = Current on seconday
CTratio = Np / Ns
Vs/Vp = Ns/Np
And, due to conservation of energy
Vp*Ip = Vs*Is
So
Vp = (Np/Ns)*Vs
and
Vp = (Vs*Is)/Ip
Then
CTratio*Vs = (Vs*Is)/Ip
Simplified:
Is = Ip * CTratio
Using the ADC of our microcontroller we can read voltages, so we need to “convert” the current output of the CT sensor to voltage. We can doing this using a resistor, the burden resistor.
Below the schematics used on the ATmega sample.
Notice the two biasing 10k resistors.
For more detail: CT Sensor on AVR ATmega