工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション

必要な部品と材料

部品数量備考
Arduino Nano R31マスターコントローラー
IO Expander1+リレー拡張用中継ボード
Relay Expander1+16リレー制御用拡張ボード
IO Extender1+長距離通信用 (CAT5ケーブルで最大4000ft)
Arduino 16リレーボード1+安価な市販リレーボード使用可能

使用ソフトウェア

プロジェクト概要

IO ExpanderとRelay Expanderを組み合わせ、最大65,280個のリレーを単一のArduinoで制御できる拡張システムです。大量のリレー制御が必要なプロジェクト(水耕栽培、プラント制御、大規模照明等)に最適です。

仕組みと拡張性

単一IO Expanderで64リレー制御

Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション
IO Expander 1台 + Relay Expander 4台 (64リレー)

動画: 64リレー制御デモ

配線図

Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション
IO ExpanderとArduino Nanoは最初のリレーボードから給電。各Relay Expanderは接続先リレーボードから給電

サンプルコード (単一Expander)

/* IO Expander - 64 Relays Control */
#include <SoftwareSerial.h>
#include "IOExpander.h"
#include <avr/wdt.h>

#define MAX_RELAYS 64

char cmd[10];

void setup() {
  Serial.begin(115200);
  wdt_enable(WDTO_8S); // 8秒ウォッチドッグ
  
  // Relay Expander 4台分 (64/16) を初期化
  sprintf(cmd, "eb%d", MAX_RELAYS / 16);
  SerialCmdDone(cmd);
}

void loop() {
  static int i = 1;
  
  // リレーiをOFF
  sprintf(cmd, "e%df", i);
  SerialCmdDone(cmd);
  
  if (i++ >= MAX_RELAYS) i = 1;
  
  // リレーiをON
  sprintf(cmd, "e%do", i);
  SerialCmdDone(cmd);
  
  delay(100);
  wdt_reset();
}

複数IO Expanderによるリレー制御 (星型/分散配置)

Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション
複数IO Expanderをシリアルバスで接続、IO Extenderで長距離延長可能

動画: 複数Expanderデモ

配線図

Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション
全IO ExpanderとArduinoは最初のリレーボードからシリアルバス経由で給電

サンプルコード (複数Expander・9bitシリアル)

/* IO Expander - Relay Bonanza with Multiple Expanders! */
#include <HardwareSerial9Bit.h>
#include "IOExpander9Bit.h"
#include <avr/wdt.h>

#define MAX_BOARDS 4

char cmd[10];

void setup() {
  Serial9Bit.begin(115200, SERIAL_9N1);
  Serial9Bit.write(0); // IO Expanderを9bitモードに設定
  wdt_enable(WDTO_8S);
  
  for (int board = 1; board <= 4; board++)
    SerialCmdDone(board, "eb1"); // 各ボードで1バンク(16リレー)初期化
}

void loop() {
  static int board = 1;
  static int relay = 1;
  
  sprintf(cmd, "e%df", relay);
  SerialCmdDone(board, cmd); // 指定ボードのリレーOFF
  
  if (++relay > 16) {
    relay = 1;
    if (++board > MAX_BOARDS) board = 1;
  }
  
  sprintf(cmd, "e%do", relay);
  SerialCmdDone(board, cmd); // 指定ボードのリレーON
  
  delay(100);
  wdt_reset();
}

なぜこれほど多くのリレーが必要なのか?

Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション
アクアポニクス/水耕栽培での応用例: 各栽培ベッド・個々の植物単位でセンサーとアクチュエーターを制御

アクアポニクスや水耕栽培では、多数のセンサーとデバイス(ポンプ、バルブ、照明、ファン等)を栽培ベッド単位、さらには個々の植物単位で自動制御する必要があります。これには極めて大量のI/Oが必要で、IO Expanderシステムがその要求に応えます。

特徴まとめ

回路図

Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション Arduinoで65,280個のリレーを制御: 拡張可能IO & リレーソリューション

入手先・詳細情報

IO Expander、Relay Expander、IO Extenderの詳細仕様、購入、技術サポートについては開発元(Zeven Development)のウェブサイトを参照してください。オープンソースハードウェアとして設計情報も公開されています。

製造プロセス

  1. Alexaでシーリングファンを音声制御:ステップバイステップガイド
  2. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  3. Arduino電源制御センター:N-FET/P-FET/リレー/RTC搭載キット
  4. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  5. DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
  6. Arduino Nanoとジョイスティックで2軸ステッピングモーターを制御:Visuinoで簡単プログラミング
  7. Windows 10 CortanaでBluetooth経由でArduinoのLEDを制御
  8. ThimbleKrox: Arduino MicroとMPU-6050を用いた指装着型マウス制御
  9. スマホで家庭照明をシームレス制御 - 1Sheeld活用
  10. Arduinoでゴキブリ制御システムを自作 - 30ドル以下で構築
  11. Arduino Unoで25kHz 4ピンPWMファンを制御 – 製作・コード・テスト