Allegro ACS758 電流センサー(LCD表示・過電流保護機能付き)Arduino用

Allegro ACS758 電流センサー(LCD表示・過電流保護機能付き)Arduino用

このチュートリアルでは、Allegro ACS758 電流センサーを LCD と組み合わせて電流の読み取り値を表示し、過電流保護を実装する方法を学びます。この構成により、電流を監視し、あらかじめ定めた閾値を超えた場合に自動的に負荷を切り離すことができます。プロジェクトはハードウェアとソフトウェアの両方を組み合わせて、機能的な電流監視システムを作成します。

このガイドに従えば、コンポーネントを正しく配線でき、コードの背後にあるプログラミングロジックを理解できます。より視覚的な説明をお求めなら、関連動画(動画の00:00で)もぜひご覧ください。

ハードウェアの解説

このプロジェクトの主要な構成要素には、Allegro ACS758電流センサー、I2Cインターフェース付きのLCD1602ディスプレイ、およびArduinoボードが含まれます。ACS758センサーはその中を流れる電流を測定し、電流に比例した電圧を出力します。LCD1602は電流の測定値とステータスメッセージを表示し、Arduinoはデータを処理して過電流保護のためにリレーを制御します。

ACS758センサーはホール効果センシングと呼ばれる原理で動作し、直接電気的接触を必要とせずに電流を測定できます。通過する電流の大きさに応じて出力電圧が変化し、電気負荷を安全かつ効率的に監視する手段を提供します。

データシートの詳細

製造者 アレグロ・マイクロシステムズ
部品番号 ACS758
ロジック/入出力電圧 3.3V / 5V
電源電圧 5V
出力電流(チャンネルごと) 最大200A
ピーク電流(チャンネルあたり) 200A
PWM周波数に関するガイダンス 該当なし
入力論理レベルのしきい値 0.5×VCC(双方向)
電圧降下 / Rドレイン・ソース(オン)/ 彩度 該当なし
熱制限 150℃
パッケージ 基板取り付け
備考 / バリエーション 異なる電流範囲向けに複数のモデルを用意しています

  • 最大定格に近い条件で動作させる場合は、適切な放熱対策を行ってください。
  • デカップリングコンデンサを使用して電源電圧を安定化させてください。
  • 使用するリレーが最大負荷電流に耐えられることを確認してください。
  • 短絡を避けるため、配線には注意してください。
  • よくある落とし穴としてフローティング入力があります。すべての接続が確実であることを確認してください。
  • 長時間使用時はセンサーの過熱を監視してください。

必要な部品

  • ACS758 電流センサー
  • 12V 100Aリレー
  • I2C(4線)対応のLCD1602
  • 2N2222または2N3904トランジスタ
  • 1kΩ 1/4W、または任意の電力用抵抗器
  • リレー用電源
  • 負荷用電源
  • ブレッドボード
  • ジャンパー線

配線手順

Arduino wiring for ACS758 current sensor with LCD and protection relay
Arduino wiring for ACS758 current sensor with LCD and protection relay

Allegro ACS758電流センサーとLCD1602ディスプレイを配線するには、まずACS758センサーを接続します。接続するVCCセンサーのピンをArduinoの5Vピンに接続します。そのGNDピンはArduinoのGNDピンに接続する必要があります。そのSセンサーの(信号)ピンはアナログ入力ピンに接続する必要があります。A0Arduino上で。

次に、LCD1602では、次のように接続します:VCCピンをArduinoの5Vピンに接続し、GND地面に押さえつける。そのSDALCDのピンは…に接続するべきだA4Arduinoのピン(SDA)では、一方でSCLピンはそれに接続する必要があるA5Arduinoのピン(SCL)に接続します。最後に、リレーモジュールをデジタルピンに接続してください。2電流の測定値に基づいて負荷を制御するため。

コード例とウォークスルー

Arduinoのコードでは、まず次のような主要な識別子を定義することから始めますVIN、これはACS758センサーに接続されたアナログ入力ピンを表します。そのrelayPinリレー制御用に設定されている一方でmaxCurrent過電流保護の閾値を定義する。

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const int relayPin = 2; // set a digital pin for relay
const float maxCurrent = 15.00; // set maximum Current

そのsetup()関数はLCDを初期化し、リレーピンを出力として設定します。また、使用中の電流センサーについてユーザーに知らせる歓迎メッセージをLCDに表示します。

void setup() {
    pinMode(relayPin, OUTPUT); // set relayPin as output
    Serial.begin(9600); // initialize serial monitor
    lcd.begin(); // initialize the LCD
    lcd.backlight(); // Turn on the blacklight
    lcd.print("Robojax");
}

〜の中でloop()この関数では、センサーから電圧を継続的に読み取り、電流を算出します。電流が最大許容値を超えた場合、リレーが作動して負荷を切り離します。このロジックにより、システムは過電流状態から保護されます。

void loop() {
  float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Read the voltage from sensor
  float current = voltage / FACTOR; // Calculate current
  if (current >= minCurrent) {
    if (current <= maxCurrent) {
      digitalWrite(relayPin, LOW); // turn the relay OFF to allow current
    } else {
      digitalWrite(relayPin, HIGH); // turn the relay ON to disconnect current
    }
  }
}

デモンストレーション/当日のご案内

配線とコードのアップロードが完了すると、LCDに電流の現在値が表示されます。電流が定義されたものを超えるとmaxCurrent, リレーが作動して負荷を切り離します。負荷電流を徐々に増やし、LCDとシリアルモニタの変化を観察することでこれをテストできます。極性の逆接続を避けてください。これにより部品が損傷するおそれがあります(ビデオの10:15で)。

画像

LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
ACS758-sensor-0
ACS758-sensor-0
ACS758-sensor-1
ACS758-sensor-1
ACS758-sensor-3
ACS758-sensor-3
ACS758-sensor-4
ACS758-sensor-4
Arduino wiring for ACS758 current sensor with LCD and protection relay
Arduino wiring for ACS758 current sensor with LCD and protection relay
111-Arduino Code for Allegro ACS758 Current Sensor with LCD160
言語: C++
コピーしました!

必要かもしれないもの

ファイル📁

データシート(pdf)