Introduction: Current Monitoring Via Arduino Nano (I2C)

About: We are a group of makers. We work in IoT, IOS app, android app, embedded design, sensor design, raspberry pi, arduino, beaglebone, particle electron, particle photon, Bluetooth.


Good Greetings..!!

Here I (Somanshu Choudhary) on the behalf of Dcube tech ventures going to monitor current using Arduino nano, it is one of the applications of I2C protocol to read analog data of Current Sensor TA12-200.

Step 1: Overview

  1. TA12-200 is an AC current sensor
  2. DATASHEET Link:
  3. This project measure AC current values

Step 2: What You Need / Links

  1. Arduino Nano
  2. I²C Shield for Arduino Nano
  3. USB Cable Type A to Micro Type B 6 Feet Long
  4. I²C Cable

  5. I²C AC current Sensor via ADC121C 12-Bit ADC I²C Mini Module

  6. CFL or Light bulb.

  7. PCV cables.

Step 3: Circuit Diagram

Step 4: Programming / Code


void setup()


// I2C address of the ADC121C021, 0x50 interfaced with TA12-200

#define ADC_ADDR 0x50

// Join I2c Bus as master


// Start serial communication for serial console output



void loop()


// Begin transmission with given device on I2C bus


// Calling conversion result register, 0x00(0)



// Request 2 bytes

Wire.requestFrom(ADC_ADDR, 2);

// Read the bytes if they are available

if(Wire.available() == 2)


int msb =;

int lsb =;

// End transmission and release I2C bus


// Calculating value

int rawADC = msb * 256 + lsb;

rawADC = rawADC & 0x0fff;

// Output to the screen

Serial.print("ADC Value : ");





Serial.println("Not enough bytes available on wire.");





// These values are in mili amps

// You can also find rms value of current by finding maxinmum reading and divide it by 1.414

Step 5:

For further quires Feel free to visit our site: