忍者ブログ

設備のマニアどっとこむ

設備、資格、DIYのブログ!

01/04

Wed

2017

【arduino】電流監視ロガーの制作【DIY】

あけましておめでとうございます。今年も設備のマニアどっとこむをよろしくお願いいたします。
今年一発目の記事ですが、タイトルの通り電流監視ロガーを作ってみました。

データセンターのラックなどの電流を管理するのは非常に重要なことです。電源の異常を素早く察知し、顧客へ連絡することで被害を最小限にすることができます。

今回は電源ケーブルにCTを取り付け、arduino へとりこみマイクロSDカードへログを書き込んでみました。

まず準備するのはarduinoに加えてethenetシールドが必要になります。

これをガキーン!とくっつけます。

そしてマイクロSDカードをさします。


電流センサーは秋月電子通商で購入しました。
交流回路を直流にし、なおかつarduinoのアナログ入力である0~5Vにする必要があります。
CT比は3000:1(実電流3Aで2次側1mA)です。抵抗100Ωにて電圧回路にしています。特性表の電圧を10倍してください。3Aで0.1Vとなります。

回路例は写真の通りです。念のため、可動鉄片型の電流計にてわかりやすいように比較できるようにしています。



arduinoの入力はA0ピンとグランドを使い、LEDは5、6、7ピンを使っています。
注意しなければならないのが、ethenetシールドを使用する場合11、12、13、4ピンをつかうと
うまく動きません、それ以外のピンを使うようにしてください。



ソースコードはスケッチの例にデフォルトで入っているSDフォルダのなかのDateloggerを少しいじったものになります。
#include <SPI.h>
#include <SD.h>
// On the Ethernet Shield, CS is pin 4. Note that even if it's not
// used as the CS pin, the hardware CS pin (10 on most Arduino boards,
// 53 on the Mega) must be left as an output or the SD library
// functions will not work.
const int chipSelect = 4;
void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
    
    pinMode(5, OUTPUT);
    pinMode(6, OUTPUT);
    pinMode(7, OUTPUT);
  }
  Serial.print("Initializing SD card...");
  // make sure that the default chip select pin is set to
  // output, even if you don't use it:
  // pinMode(10, OUTPUT);
  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }
  Serial.println("card initialized.");
}
void loop()
{
  // make a string for assembling the data to log:
  String dataString = "";
  // read three sensors and append to the string:
  for (int analogPin = 0; analogPin < 1; analogPin++) {
    int sensor = analogRead(analogPin);
     
    dataString += String(sensor* 0.146484);
   
    if (analogPin < 1) {
      dataString += "A";}
if (sensor > 68.266) {
 digitalWrite(5, HIGH);
 delay(500);
 digitalWrite(5, LOW);
 digitalWrite(6, HIGH);
 delay(500);
 digitalWrite(6, LOW);
 digitalWrite(7, HIGH);
 delay(500);
 digitalWrite(7, LOW);
 
}  
else {digitalWrite(5, LOW);
 digitalWrite(6, LOW);
 digitalWrite(7, LOW);}  
     
  }
  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  // if the file is available, write to it:
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // print to the serial port too:
    Serial.println(dataString);
  }
  // if the file isn't open, pop up an error:
  else {
    Serial.println("error opening datalog.txt");
  }
}
arduinoの入力電圧は0~5Vを1024分割した入力になります。それを電流にするため、
入力電圧×3000(CT比)÷100(抵抗)×1024÷5
=入力電圧×0.146484という定数をかけています。
これで実電流を表示する事ができます。センサー類を使う場合、この様な換算が必要になってきます。

警報が出るしきい値は10A以上としていますが、こちらは逆に10÷0.146484でセンサーの電圧にしています。

10A以上電流が流れる機器としてドライヤーを使用しました。
ヒーターを使うとLEDが点滅し、送風だと10A以下なのでスルーします。


aruduino IDEのシリアルモニタに電流が出力されていますがすべてマイクロSDカードにログが保存されていきます。



↑マイクロSDに作成されたファイル

これで電流監視ロガーができました。
arduinoははじめからさまざまなケースのスケッチの例があり少しいじれば簡単にいろんなことができます。業者にウン十万払って工事するよりも、意外と安くできる・・・かも。



↓↓電験3種の公式集を作りました↓↓



拍手[0回]

PR

Comment

お名前
タイトル
E-MAIL
URL
コメント
パスワード

AD

シェアしてね

著書

プロフィール

HN:
アルティメット雅史
性別:
男性
自己紹介:
製油所、データセンター、化学工場を渡り歩いた設備安全評論家
取得資格は電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士一次試験合格(電気・電子)、フォークリフトほか

カウンター

お問い合わせ

忍者アクセスランキング

Copyright © 設備のマニアどっとこむ : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]