Arduino IDE 1.6.6에는 몇 가지 중요한 버그가 있습니다. 이전 자습서에서는 Arduino의 I2C 통신 프로토콜 및 SPI 통신 프로토콜에 대해 배웠습니다. 이제 RS-485라는 또 다른 직렬 통신 프로토콜이 있습니다. 이 프로토콜은 비동기 직렬 통신을 사용합니다. RS-485의 주요 장점은 두 장치 간의 장거리 데이터 전송입니다. 그리고 그들은 가장 일반적으로 전기 시끄러운 산업 환경에서 사용됩니다. 직렬 터미널 또는 비스이노와 아두 이노 메가에 연결하면 텍스트 형태로 표시되는 전위계의 위치를 볼 수 있습니다 (그림 2). 비스이노에서는 범위(그림 3)에 플롯된 것을 볼 수도 있습니다. 전위전위계를 돌리면 값이 변경됩니다.
아두 이노 나노의 LED는 아두 이노 메가에 의해 새로운 데이터를 수신 할 때, 매 초마다 켜고 끄십시오. 이 RS-485 모듈은 Arduino와 쉽게 인터페이스 할 수 있습니다. 아두 이노 0 (RX) 및 1 (TX)의 하드웨어 직렬 포트를 사용 하자 (UNO, 나노에서). 프로그래밍은 또한 RS-485 및 Serial.Read()에 쓸 수 있는 Serial.print()를 사용하여 RS-485에서 읽을 수 있습니다. (모든 것이 제대로 연결되어있는 경우) 입력 한 후, 아두 이노에서받은 정보는 터미널 창에 표시됩니다 : 마스터 측면에서, 단순히 전위계를 변경하여 핀 A0에서 아날로그 입력을 한 다음 SerialWrite 에 해당 값을 작성합니다 아두 이노 UNO의 하드웨어 직렬 포트 (0,1)를 통해 RS-485 버스. 참고: 여러 Arduinos에서 실행되는 응용 프로그램이 있는 작업 시스템에는 일부 조직화된 데이터 이동 및 오류 검사가 있어야 합니다. 닉 감몬은 여기에이 작업을 수행하는 좋은 라이브러리가 있습니다 : http://www.gammon.com.au/forum/?id=11428 감사합니다 BoianM, 그것은 작동합니다. 당신은 RS485를 통해 서보 모터를 원격 제어하는 02 x 아두 이노 (즉, 메가 와 나노)를 사용하는 방법을 조언 할 수 있습니까? 슬레이브 측에서는 아두이노 나노(Pins -0,1)의 하드웨어 직렬 포트에서 사용할 수 있는 마스터 RS-485에서 정수 값을 수신합니다. 단순히 그 값을 읽고 변수에 저장합니다. 값은 (0-1023)의 형태입니다.
따라서 PWM 기술이 LED 밝기를 제어하는 데 사용되므로 (0-255)로 변환됩니다. 나는 오랫동안 RS-485 인터페이스에 기사를 쓰는 방법에 대한 아이디어를 가지고있다. 처음에는 데이터 (바이트)만 전송할 계획입니다. 그러나 일단 ModBus에서 흥미로운 프로젝트를 접하게되면 modBus:https://create.arduino.cc/projecthub/hwhardsoft/how-to-use-modbus-with-arduino-6f434b?ref=search&ref_id=rs485&offset=4 RS485는 차동 구성에서 와이어 쌍을 사용합니다. 장거리 통신(최대 1.2km) 및 매우 빠른 속도. 또한 동일한 케이블을 따라 여러 발신자 / 수신기를 허용 : 이것은 “멀티 드롭”이라고합니다. 그것은 또한 접지가 필요합니다 – 그러나 일반적으로 로컬 전기 접지가 될 수 있으므로 두 개의 전선 (일반적으로 케이블의 일부 유형에서 꼬인 쌍)만 필요합니다. 이 예에서는 아래쪽의 A와 B에 연결된 빨간색 및 녹색 와이어가 있습니다.
또한 오른쪽 사진의 연결 세부 사항을 기록하고 아래 소프트웨어 예제에 표시된 핀 연결을 참조하십시오: 데모 비디오가 포함된 전체 코드는 이 자습서의 끝에 나와 있습니다. 여기서는 코드의 중요한 부분을 설명합니다. 이 튜토리얼에는 아두 이노 UNO (마스터)와 아두 이노 나노 (슬레이브)에 대한 다른 하나, 두 개의 프로그램이 있습니다. 첫 번째 RS-485와 Arduino UNO (마스터) 사이의 회로 연결 : 당신은 무선 트래픽을 불가능하게, 당신의 가정에서 강철 벽에 문제가있는 경우, 당신은 당신의 아두 이노에 연결된 RS-485 모듈을 사용하여 유선 MySensors 네트워크를 만들 수 있습니다.