สารบัญ:

สูงสุด 3 RS485 บัสบน Arduino หนึ่งตัว: 5 ขั้นตอน
สูงสุด 3 RS485 บัสบน Arduino หนึ่งตัว: 5 ขั้นตอน

วีดีโอ: สูงสุด 3 RS485 บัสบน Arduino หนึ่งตัว: 5 ขั้นตอน

วีดีโอ: สูงสุด 3 RS485 บัสบน Arduino หนึ่งตัว: 5 ขั้นตอน
วีดีโอ: EP.3 Arduino Uno ติดต่อ Mega ผ่าน Library Modbus โดยไม่ใช้ Module TTL TO RS485 #arduino#modbus#plc 2024, กรกฎาคม
Anonim
สูงสุด 3 RS485 บัสบน Arduino. หนึ่งตัว
สูงสุด 3 RS485 บัสบน Arduino. หนึ่งตัว
สูงสุด 3 RS485 บัสบน Arduino. หนึ่งตัว
สูงสุด 3 RS485 บัสบน Arduino. หนึ่งตัว

ในคำแนะนำนี้ฉันจะแสดงวิธีเชื่อมต่อบัส RS485 อิสระสูงสุด 3 ตัวกับ Arduino หนึ่งตัว สิ่งนี้มีประโยชน์หากคุณต้องการสร้างเกตเวย์ระหว่างบัสเหล่านี้ หรือหากคุณต้องการควบคุมอุปกรณ์ในบัสเหล่านี้ (โดยไม่ต้องเชื่อมต่อตัวบัสเอง) อีกแอปพลิเคชันหนึ่งคือการเชื่อมต่ออุปกรณ์ RS422 (เช่น การควบคุมมอเตอร์) และอุปกรณ์ RS485 (เช่น เซ็นเซอร์) กับ Arduino เดียวกัน

ไม่ว่าในกรณีใด คุณจะต้องใช้ชิลด์ RS485 พร้อมอินเทอร์เฟซแบบแยกเพื่อขจัดปัญหาการต่อสายดินและเพื่อปกป้อง Arduino

ขั้นตอนที่ 1: เครื่องมือและวัสดุ

Image
Image

ฮาร์ดแวร์:

  • Arduino UNO (หรือคอมพิวเตอร์บอร์ดตัวเดียวที่มีซ็อกเก็ต Arduino Shield)
  • Arduino RS42 / RS485 Shield พร้อมอินเทอร์เฟซแยก

ซอฟต์แวร์:

Arduino IDE

ขั้นตอนที่ 2: DIP Switch & การตั้งค่าจัมเปอร์สำหรับ BUS 1

สวิตช์ DIP & การตั้งค่าจัมเปอร์สำหรับ BUS 2
สวิตช์ DIP & การตั้งค่าจัมเปอร์สำหรับ BUS 2

จัมเปอร์:

  • UART RX ไปยังตำแหน่ง 0
  • UART TX ไปยังตำแหน่ง 1
  • แรงดันไฟฟ้าไปยังตำแหน่ง 5V

สวิตช์จุ่ม:

  • S1 = ปิด - เปิด - เปิด - ปิด
  • S2 = ปิด - ปิด - เปิด - เปิด
  • S3 = เปิด - ปิด - ปิด - ปิด

ขั้นตอนที่ 3: สวิตช์ DIP & การตั้งค่าจัมเปอร์สำหรับ BUS 2

จัมเปอร์:

  • UART RX ไปยังตำแหน่ง 2
  • UART TX ไปยังตำแหน่ง 3
  • แรงดันไฟฟ้าไปยังตำแหน่ง 5V

สวิตช์จุ่ม:

  • S1 = ปิด - เปิด - เปิด - ปิด
  • S2 = ปิด - ปิด - เปิด - เปิด
  • S3 = เปิด - ปิด - ปิด - ปิด

ขั้นตอนที่ 4: DIP Switch & การตั้งค่าจัมเปอร์สำหรับ BUS 3

สวิตช์ DIP & การตั้งค่าจัมเปอร์สำหรับ BUS 3
สวิตช์ DIP & การตั้งค่าจัมเปอร์สำหรับ BUS 3

จัมเปอร์:

  • UART RX ไปยังตำแหน่ง 4
  • UART TX ไปยังตำแหน่ง 5
  • แรงดันไฟฟ้าไปยังตำแหน่ง 5V

สวิตช์จุ่ม:

  • S1 = ปิด - เปิด - เปิด - ปิด
  • S2 = ปิด - ปิด - เปิด - เปิด
  • S3 = เปิด - ปิด - ปิด - ปิด

ขั้นตอนที่ 5: การรวมซอฟต์แวร์

ชิลด์สำหรับบัส 1 จะใช้ฮาร์ดแวร์ UART บน PIN 0 และ 1 ของ Arduino ชีลด์อื่นทั้งสองจะใช้ซอฟต์แวร์ UART

#รวม

ซอฟต์แวร์Serial RS485_BUS2 (2, 3);

ซอฟต์แวร์Serial RS485_BUS3 (4, 5);

การตั้งค่าเป็นโมฆะ ()

{

….

// init พอร์ตอนุกรมสำหรับบัส 1

Serial.begin(9600);

// init พอร์ตอนุกรมสำหรับบัส 2

RS485_BUS2.begin(9600);

// init พอร์ตอนุกรมสำหรับบัส 3

RS485_BUS3.begin(9600);

….

ข้อมูลการส่งข้อมูลของซอฟต์แวร์ UART เหล่านี้ถูกจำกัดด้วยกำลังการคำนวณของ Arduino แน่นอนถ้าคุณจะใช้บอร์ด Arduino หรือ STM32 ที่ใช้ ARM สิ่งนี้จะไม่เป็นปัญหาจริงๆ แต่สำหรับ UNO ขอแนะนำให้ใช้เพียงสองชิลด์ในเวลาเดียวกัน และสำหรับชิลด์ที่สองไม่เกิน 9600 Baud เป็นอัตราข้อมูล.

แนะนำ: