상품카테고리 > 전자 부품 > 지원부품 > 커넥터

아두이노 호환 MAX485 TTL to RS-485 컨버터 모듈
판매가격 : 440원 (부가세 포함)
상품코드 :[6538]ZAS-MIZ-SSA101
배송일 :당일발송
제조사 :OEM
브랜드 :OEM [브랜드몰 바로가기]
남은수량 : 15개
구매수량 :
총 금액 :
추가&대량구매 요청 053-588-4080

  • 상품상세
  • 관련상품
  • 배송/교환/반품 안내
  • 상품리뷰

개요 (Overview)

 


 

MAX485를 사용한 시리얼 RS-485 컨버터 모듈입니다. 

RS-485는 RS232, RS422에 비해서 많은 드라이버/리시버를 사용할 수 있으며, RS232가 통신 거리가 15m임에 비해, 거리는 1.2Km까지 전달할 수 있으며, 통신속도도 10Mb/s까지 지원합니다. 

 

특히, 전송방식은 Half Duplex 방식이라서, 하나의 선을 사용한 다수의 모터 제어를 위한 로보티즈사의 다이나믹셀 등에 사용되고 있습니다.

 


 



 

 

스펙 (Specification)

  • 구동 전압: 5V

  • 사이즈: 44mm x 14mm

 

하드웨어 연결 (Wiring)

 

아두이노 우노를 사용하여 다수의 메가와 통신하는 방법


 

RS485를 사용하여 아두이노 메가와 프로미니와의 연결방법

 



 

 

 

마스터 소스코드


#include <SoftwareSerial.h>

#define SSerialRX        10  //RX핀
#define SSerialTX        11  //TX핀

#define SSerialTxControl 3   //TX컨트롤핀

#define RS485Transmit    HIGH
#define RS485Receive     LOW

#define Pin13LED         13


SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX

int byteReceived;
int byteSend;

void setup()
{
  Serial.begin(9600);
  pinMode(Pin13LED, OUTPUT);
  pinMode(SSerialTxControl, OUTPUT);

  digitalWrite(SSerialTxControl, RS485Receive);
  // Tx컨트롤을 이용해 수신받을지 발신할 지를 구분합니다.
  // 수신모드 - LOW
  // 발신모드 - HIGH
  RS485Serial.begin(4800);   // 보드레이트를 설정합니다.
}

void loop()
{
  digitalWrite(Pin13LED, HIGH);  // 상태 표시
  if (Serial.available())
  {
    byteReceived = Serial.read();

    digitalWrite(SSerialTxControl, RS485Transmit);  // 송신모드
    RS485Serial.write(byteReceived);          // 데이터 전송

    digitalWrite(Pin13LED, LOW);
    delay(10);
    digitalWrite(SSerialTxControl, RS485Receive);  // 수신모드
  }

  if (RS485Serial.available())  //슬레이브쪽에서 수신된 데이터 처리
  {
    digitalWrite(Pin13LED, HIGH);
    byteReceived = RS485Serial.read();    // 데이터 수신
    Serial.write(byteReceived);
    delay(10);
    digitalWrite(Pin13LED, LOW);
  }
}

슬레이브 소스코드


#include <SoftwareSerial.h>

#define SSerialRX        10  //Serial Receive pin
#define SSerialTX        11  //Serial Transmit pin

#define SSerialTxControl 3   //RS485 Direction control
#define RS485Transmit    HIGH
#define RS485Receive     LOW

#define Pin13LED         13

SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX

int byteReceived;
int byteSend;

void setup()   /****** SETUP: RUNS ONCE ******/
{
  Serial.begin(9600);
  
  pinMode(Pin13LED, OUTPUT);   
  pinMode(SSerialTxControl, OUTPUT);  
  
  digitalWrite(SSerialTxControl, RS485Receive);  // Init Transceiver
  
  RS485Serial.begin(4800);   // set the data rate 
}

void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  if (RS485Serial.available()) //마스터에서 받은 데이터 처리
  {
    byteSend = RS485Serial.read();   // 읽은데이터 저장 
    
    digitalWrite(Pin13LED, HIGH);  // 상태 표시
    delay(10);              
    digitalWrite(Pin13LED, LOW);   
    
    digitalWrite(SSerialTxControl, RS485Transmit);  // 송신모드 
    RS485Serial.write(byteSend); // 그대로 돌려준다.
    delay(10);   
    digitalWrite(SSerialTxControl, RS485Receive);  // 수신모드    
  } 
}


참고 링크 (Links)

  • 메카솔루션 커뮤니티 Mechasolution Blog는 여러가지 정보를 제공합니다.

 

 

메카리워즈






견적요청
구매대행
퀵/방문수령
후불결제
기술문의