산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션

부품 및 소모품

부품비고수량
아두이노 나노 R31
IO 익스팬더IO 익스팬더1
릴레이 익스팬더1
IO 익스텐더1
아두이노 16 릴레이 보드1

앱 및 온라인 서비스

프로젝트 소개

IO 익스팬더와 릴레이 익스팬더를 사용하여 최대 65,280개의 릴레이를 제어합니다.

프로젝트에 많은 릴레이를 추가해야 하나요? 그럼 IO 익스팬더와 릴레이 익스팬더가 필요합니다. 각 IO 익스팬더는 최대 16개의 데이지 체인 릴레이 익스팬더를 제어하여 총 256개의 릴레이를 관리합니다. 255개의 IO 익스팬더를 연결하면 최대 65,280개의 릴레이를 선택적으로 제어할 수 있습니다.

단일 IO 익스팬더로 릴레이 제어

아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션

기능 목록

릴레이 뱅크 구축에 필요한 부품

배선도

아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션

참고: 위 배선도에서 IO 익스팬더와 아두이노 나노는 첫 번째 릴레이 보드로부터 전원을 공급받습니다. 모든 릴레이 익스팬더는 연결된 릴레이 보드로부터 전원을 공급받습니다.

/* IO Expander
 * Control 64 Relays
 */
#include <SoftwareSerial.h>
#include "IOExpander.h"
#include <avr/wdt.h>
//#define SERIAL_DEBUG
#define MAX_RELAYS 64
#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif
char cmd[10];

void setup() {
  Serial.begin(115200);
  #ifdef SERIAL_DEBUG
  swSerial.begin(115200);
  swSerialEcho = &swSerial;
  #endif
  wdt_enable(WDTO_8S);
  sprintf(cmd, "eb%d", MAX_RELAYS / 16);
  SerialCmdDone(cmd);
}

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

다중 IO 익스팬더로 릴레이 제어

또 다른 방법은 여러 IO 익스팬더를 사용하는 것입니다. 이를 통해 센서와 릴레이를 중앙 또는 스타 네트워크로 분산시키면서도 모든 IO 익스팬더를 단일 시리얼 버스로 상호 연결할 수 있습니다. IO 익스팬더를 최대 4000ft(약 1.2km)까지 분리해야 한다면 표준 파란색 Cat5 네트워크 케이블과 함께 IO 익스텐더를 사용하세요.

아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션

배선도

아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션

참고: 위 배선도에서 모든 IO 익스팬더와 아두이노 나노는 첫 번째 릴레이 보드를 통해 시리얼 버스로 전원을 공급받습니다. 모든 릴레이 익스팬더는 연결된 릴레이 보드로부터 전원을 공급받습니다.

/* IO Expander
 * Relay Bonnaza with IO 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 익스팬더를 9비트 모드로 설정
  wdt_enable(WDTO_8S);
  for (int board = 1; board <= 4; board++)
    SerialCmdDone(board, "eb1");
}

void loop() {
  static int board = 1;
  static int relay = 1;
  sprintf(cmd, "e%df", relay);
  SerialCmdDone(board, cmd);
  if (++relay > 16) {
    relay = 1;
    if (++board > MAX_BOARDS) board = 1;
  }
  sprintf(cmd, "e%do", relay);
  SerialCmdDone(board, cmd);
  delay(100);
  wdt_reset();
}

왜 그렇게 많은 릴레이를 제어해야 할까?

아쿠아포닉스나 수경 재배 같은 분야가 한 예입니다. 각 재배 베드나 개별 식물 단위까지 센서와 장치를 자동화해야 하므로 극한의 IO가 필요하며, IO 익스팬더가 이를 제공합니다.

아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션

지금 IO 익스팬더를 구입하여 시스템을 구축하세요!

코드

단일 익스팬더로 64 릴레이 제어 (C/C++)

/* IO Expander * Control 64 Relays */
#include <SoftwareSerial.h>
#include "IOExpander.h"
#include <avr/wdt.h>
//#define SERIAL_DEBUG
#define MAX_RELAYS 64
#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif
char cmd[10];

void setup() {
  Serial.begin(115200);
  #ifdef SERIAL_DEBUG
  swSerial.begin(115200);
  swSerialEcho = &swSerial;
  #endif
  wdt_enable(WDTO_8S);
  sprintf(cmd, "eb%d", MAX_RELAYS / 16);
  SerialCmdDone(cmd);
}

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

다중 익스팬더로 64 릴레이 제어 (C/C++)

/* IO Expander * Relay Bonnaza with IO 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); // Set IO Expanders to 9-bit
  wdt_enable(WDTO_8S);
  for (int board = 1; board <= 4; board++)
    SerialCmdDone(board, "eb1");
}

void loop() {
  static int board = 1;
  static int relay = 1;
  sprintf(cmd, "e%df", relay);
  SerialCmdDone(board, cmd);
  if (++relay > 16) {
    relay = 1;
    if (++board > MAX_BOARDS) board = 1;
  }
  sprintf(cmd, "e%do", relay);
  SerialCmdDone(board, cmd);
  delay(100);
  wdt_reset();
}

회로도

아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션 아두이노로 65,280개 릴레이 제어: 확장 가능한 IO & 릴레이 솔루션

제조공정

  1. 알렉사(Alexa)로 천장 선풍기 제어하기 - 단계별 가이드
  2. 스마트 저금통 만들기: 아두이노 나노로 동전 인식기 제어하기
  3. 아두이노 파워 컨트롤 센터: N-FET, P-FET, 릴레이 & RTC 키트
  4. 아두이노 블루투스로 LED 제어하기 - HC-05 & MIT App Inventor 입문 가이드
  5. 아두이노 릴레이 제어 가습기 자동화 – 고전압 안전 설계
  6. 아두이노 나노와 조이스틱으로 2개 스테퍼 모터 제어하기 – 비주이노(Visuino) 튜토리얼
  7. 윈도우 10 코타나와 블루투스로 아두이노 LED 제어하기 (UWP 앱)
  8. ThimbleKrox: 아두이노 마이크로와 MPU-6050을 이용한 손가락 장착형 마우스 컨트롤
  9. 스마트폰으로 가정 조명 시스템 무선 제어하기 - 1Sheeld 활용
  10. 아두이노 우노로 25kHz 4핀 PWM 팬 제어하기 - 제작, 코드 및 테스트