아두 이노 485 통신 - adu ino 485 tongsin

1. 준비물

(1) TTL to RS485 자동 흐름제어 컨버터 모듈 [SZH-CVBE-010] 

(2) 아두이노 나노 (Slave#1 역할)

(3) 아두이노 메가 (Slave#2 역할)

(4) 라즈베리파이 (Master 역할)

아래의 사진은 TTL to RS485 컨버터.

Max 485로도 시도해봤으나 아래 컨버터가 더 심플하고, 추가적인 라이브러리 셋팅도 필요없어 간편했다.

2. 연결하기

아두이노 나노, 메가, 라즈베리파이

RS485 컨버터 모듈

GND

GND

Vcc(5v)

VCC

Tx

RXD

Rx

TXD

RS485 컨버터 모듈의 D-/B, D+/A, GND 끼리 각각 연결해준다.

3. 동작 방식

시리얼 통신이라고 하는 게 TCP/IP 처럼 특정 디바이스에만 값을 요청하는것은 불가능하다. 

대부분의 시리얼 통신 방식은 아래 그림1.과 같은데 Master가 Client1에만 값을 요청한다고 write()를 해도 client2, client3,,, client N까지 값을 read()할 수 있다. 

그림 1.

//makeshare.org/bbs/board.php?bo_table=arduinoetc&wr_id=39

[아두이노 부품사용법] MAX485 TTL to RS-485 컨버터 모듈

개요 (Overview)  MAX485를 사용한 시리얼 RS-485 컨버터 모듈입니다. RS-485는 RS232 RS422에 비해서 많은 드라이버/리시버를 사용할 수 있으며 RS232가 통신 거리가 15m임에 비해 거리는 1.2Km까지 전달할 수 있으며 통신속도도 10Mb/s까지 지원합니다.  특히 전송방식은 Half Duplex 방식이라서 하나의 선을 사용한 다수의 모터 제어를 위한 로보티즈사의 다이나믹셀 …

makeshare.org

다른 시리얼 통신을 해본적이 없는 나로써는 내 식대로 만들기로 했다. (근데 일반적으로 만드는 방법일지도?)

아두이노 나노와 메가에 각각 ID를 부여했다. 

그리고 라즈베리파이 즉, 마스터는 그 ID를 배열로 저장해놓고 정해진 시간이 되었을 때 Slave에게 req를 보낸다.

Req 형식은 "@101!" 와 같은 식이다. 골뱅이와 느낌표 사이에 아이디를 적어주었다. 

그래서 Slave 쪽에서는 read()로 하염없이 req를 기다리고 있다가 데이터를 수신하게 되면 나에게 요청을 한것이 맞는지 확인하는 함수를 한번 거친다. 

if "내 아이디" == 수신한 시리얼 데이터의 아이디 write("내 데이터") else return

위와 같은 형식이다.

회로도작업중

(RS485/MAX485 통신모듈(6편) 1:N통신 기본코드 버전2 만들기)
3편에서 만들어둔 통신방식의 문제점을 파악해보자
문제점을 해결할 아이디어가 무엇인가?
Response의 누락없이 데이터를 수신해보자
슬레이브가 오프라인일 경우 체크할 수 있는가?
슬레이브가 일정시간 응답이 없을 경우 어떻게 하지~~
등등 버전2에서 해결해보자!

예제124-1-1 (마스터코드)
 * Request*Response 기능을 강화하기 위한 V2코드
 * 마스터가 슬레이브들에게 패킷을 전송한다음 수신할때 까지 기다린다.
 * 일정시간동안 슬레이브가 동작하지 않을경우 오프라인으로 처리한다.

124-1-1.txt

0.00MB

124-1-2.txt

0.00MB

124-1-3.txt

0.00MB


예제124-2-1 (마스터코드)
 * Request*Response 기능을 강화하기 위한 V2코드
 * 마스터가 슬레이브들에게 패킷을 전송한다음 수신할때 까지 기다린다.
 * 일정시간동안 슬레이브가 동작하지 않을경우 오프라인으로 처리한다.
 * 디지털 4,5,6,7번 핀에 LED를 배치하시오
 * 4,5에 각각 녹색, 빨간색
 * 6,7에 각각 녹색, 빨간색
 * 슬레이브1이 온라인이면 4번(녹색)켜짐, 오프라인이면 5번(적색)켜짐
 * 슬레이브2가 온라인이면 6반(녹색)켜짐, 오프라인이면 7번(적색)켜짐

124-2-1.txt

0.00MB

124-2-2.txt

0.00MB

124-2-3.txt

0.00MB


레퍼런스 강의(아두이노 #112 RS485 3편)

bota.tistory.com/1340

Toplist

최신 우편물

태그