아두이노 나노 - RS485 | Arduino Nano - RS485

이 가이드에서 우리는 아두이노 나노와의 RS485 통신 구현에 대해 자세히 살펴볼 것입니다. 우리는 다음의 주요 측면에 초점을 맞출 것입니다:

튜토리얼은 하드웨어 SerialSoftwareSerial 모두에 대한 지침도 제공합니다.

준비물

1×Arduino Nano Amazon
1×USB A to Mini-B USB cable 쿠팡 | Amazon
1×TTL to RS485 Module Amazon
1×Jumper Wires Amazon
1×(Optional) RS485 to USB Cable Amazon
1×(Optional) 9V Power Adapter for Arduino Nano Amazon
1×(Recommended) Screw Terminal Adapter for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

TTL에서 RS485 모듈에 대하여

아두이노 나노에서 Serial.print(), Serial.read(), Serial.write() 같은 함수를 사용하여 직렬 통신을 사용할 때, 데이터 전송은 TX 핀을 통해 이루어지며, 데이터 수신은 RX 핀을 통해 이루어집니다. 이 핀들은 TTL 수준에서 동작하며, 제한된 범위의 신호를 처리합니다. 따라서 더 긴 거리에서 직렬 통신을 하기 위해서는 TTL 신호를 RS232, RS485, RS422 같은 표준으로 변환해야 할 필요가 있습니다.

이 튜토리얼에서는 TTL에서 RS485 모듈을 활용하여 RS485(또는 RS-485로도 불림)를 아두이노 나노와 통합하는 방법을 탐구하겠습니다. 이 모듈은 TTL 신호를 RS485 신호로 변환하고 그 반대의 변환을 촉진시켜, 장거리에서도 견고한 통신을 가능하게 합니다.

핀 배치

RS485에서 TTL 모듈은 두 가지 인터페이스를 가지고 있습니다:

TTL 인터페이스 (Arduino Nano에 연결됨)에는 4개의 핀이 포함됩니다.

  • VCC 핀: 전원 핀으로, VCC (5V 또는 3.3V)에 연결해야 합니다.
  • GND 핀: 전원 핀으로, GND (0V)에 연결해야 합니다.
  • RXD 핀: 데이터 핀으로, Arduino Nano의 TX 핀에 연결해야 합니다.
  • TXD 핀: 데이터 핀으로, Arduino Nano의 RX 핀에 연결해야 합니다.

RS485 인터페이스는 다음 핀을 포함합니다:

  • D+ (A 또는 TR+) 핀: 이 핀은 데이터 통신을 용이하게 합니다.
  • D- (B 또는 TR-) 핀: 이 핀은 데이터 전송을 위해 사용됩니다.
  • GND 핀: 선택 사항이지만, 잡음 간섭을 줄이고 최적의 성능을 보장하기 위해 이 핀을 포함하는 것이 강력히 권장됩니다.
RS-485 module Pinout
image source: diyables.io

선연결

하드웨어 시리얼을 사용하는 경우의 배선도

Arduino Nano TTL to RS485 Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

소프트웨어 시리얼을 사용하는 경우의 배선도

Arduino Nano RS-485 to TTL Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 나노를 RS485 모듈을 사용하도록 프로그래밍하는 방법

시리얼 인터페이스를 초기화합니다:

Serial.begin(9600);

SoftwareSerial을 사용하려면 라이브러리를 포함하고 SoftwareSerial 객체를 선언해야 합니다:

#include <SoftwareSerial.h> #define RX_PIN 2 #define TX_PIN 3 // SoftwareSerial 객체와 그들의 핀을 정의 SoftwareSerial rs485(RX_PIN, TX_PIN);

RS485에서 데이터를 읽으려면 다음 함수들을 사용할 수 있습니다:

RS485에 데이터를 쓰려면 다음 함수들을 사용할 수 있습니다:

RS485에서 사용할 수 있는 추가 함수들은 Serial reference에서 확인할 수 있습니다.

아두이노 나노 하드웨어 시리얼을 위한 코드

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-rs485 */ void setup() { // 통신을 9600의 보레이트로 시작합니다 Serial.begin(9600); // 시리얼 포트가 초기화되는 동안 잠시 기다립니다 delay(100); } void loop() { // 시리얼에 사용 가능한 데이터가 있는지 확인합니다 if (Serial.available()) { char data = Serial.read(); // 받은 문자를 읽습니다 Serial.print(data); // 데이터를 보낸 곳으로 에코백합니다 } }

소프트웨어 시리얼을 위한 아두이노 나노 코드

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-rs485 */ #include <SoftwareSerial.h> #define RX_PIN 2 #define TX_PIN 3 // SoftwareSerial 객체와 그것의 핀을 정의한다 SoftwareSerial rs485(RX_PIN, TX_PIN); void setup() { // 통신을 위한 보드레이트 9600으로 시작 rs485.begin(9600); // 시리얼 포트가 초기화되는 동안 잠시 대기 delay(100); } void loop() { // rs485에서 사용 가능한 데이터가 있는지 확인 if (rs485.available()) { char data = rs485.read(); // 받은 문자읽기 rs485.print(data); // 데이터를 보낸 곳으로 에코 백 } }

테스팅

아래 단계를 따라 PC에서 아두이노 나노로 데이터를 RS-485를 통해 보내고 그 반대로 테스트를 수행할 수 있습니다:

아래와 같이 Arduino Nano를 RS485-to-USB 케이블을 통해 PC에 연결하세요:

Arduino Nano RS485 to PC communication
  • Tera Term이나 PuTTY와 같은 시리얼 터미널 프로그램을 설치하세요.
  • 시리얼 터미널 프로그램을 열고 시리얼 파라미터를 설정하세요 (COM 포트, 보레이트...).
  • 시리얼 터미널에서 데이터를 입력하여 아두이노 나노로 보내세요.
  • 성공하면 시리얼 터미널에 에코 데이터가 표시됩니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!