<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">I have used <a href="http://www.amazon.com/SCT-013-030-Split-core-Current-Transformer/dp/B005CTWE8A/ref=sr_1_2?ie=UTF8&qid=1421267065&sr=8-2&keywords=AC+Current+Sensor">these</a> low cost current transformers   There are more or less sensitive versions this one is 30A, probably good for a water heater.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">There are also open resistor versions that you can customize to get any sensitivity you like.  (Or you can open it up and cut out the resistor inside)</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif">You need to separate the hot AC wire and run it through the transformer.  This does mean you will have to strip off the outer cover of the wire and expose the Hot wire.</font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif">the ADC on arduino can capture a pretty good sine wave of the current flow as follows:</font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style="font-size:13px"><div class="gmail_default"><font face="arial, helvetica, sans-serif">#define Arraysize 300</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">#define loopdelay 1</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">int r[Arraysize];</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">unsigned long t[Arraysize];</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">int i;</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">String readingline, timeline;</font></div><span class="im"><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">void setup() {</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  // put your setup code here, to run once:</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  Serial.begin(9600);</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">}</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div></span><div class="gmail_default"><font face="arial, helvetica, sans-serif">void loop() {</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  for  (i=0; i<Arraysize; i=i+1)</font></div><span class="im"><div class="gmail_default"><font face="arial, helvetica, sans-serif">  {</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  // send the value of analog input 0:</font></div></span><div class="gmail_default"><font face="arial, helvetica, sans-serif">  r[i] = analogRead(A0);</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  t[i] = micros();</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  }</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    Serial.println("------------------------------------");</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  for  (i=0; i<Arraysize; i=i+1)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  {</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    readingline = "Iread = , ";</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    readingline += r[i];</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    timeline = "time = , ";</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    timeline += t[i];</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    readingline += ", ";</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    readingline += timeline;</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">    Serial.println(readingline);</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">  }</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">delay(loopdelay);</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">}</font></div></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif">Plotting r vs t can give you lots of info about your water heater current.</font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif">However it may be that the Hall sensor is a much better way to go!  No wires need exposing!</font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif">I just ordered a couple they looked so good.</font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif">Martin</font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default" style><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_extra"><div class="gmail_signature"><div dir="ltr"><div dir="ltr"><br></div></div></div>
</div></div>