Arduino Modbus RTU | EP.3 แนะนำการใช้งาน Arduino Modbus RTU Master (พร้อมตัวอย่าง)

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 มิ.ย. 2020
  • แนะนำการใช้งาน Arduino Modbus RTU Master เพื่อให้ Arduino สามารถดึงข้อมูลจากอุปกรณ์ที่มีมาตรฐานการสื่อสารผ่าน Modbus RTU Protocol
    อุปกรณ์ที่ใช้
    1. Arduino uno
    2. TTL to RS485 : AC-3B485 จาก www.smicrothai.com/smicro_9.php
    3. USB to RS485 : www.arduinoall.com/product/57...
    4. Modbus Simulator : ModRSim2
    5. Modbus Library : github.com/4-20ma/ModbusMaster
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 70

  • @by4972
    @by4972  3 ปีที่แล้ว +1

    หากเพื่อนๆท่านใดมีข้อสงสัย ติชม สามารถคอมเมนต์ลงในช่องคอมเมนต์ได้นะครับ

    • @Grean-it-thailandBlogspot
      @Grean-it-thailandBlogspot 3 ปีที่แล้ว

      โจทย์ ข้อนี้ต่อลักษณะเดียวกันได้ไหมครับ eleceasy.com/t/code-arduino-ec-sensor/3894/6?u=remy_martin

    • @by4972
      @by4972  3 ปีที่แล้ว

      ถ้าอุปกรณ์นั้นเป็น modbus protocol ก็ลักษณะเดียวกันครับ ทดลองเอา usb to rs485 ต่อกับอุปกรณ์ผ่านขา A+, B- และลองอ่านค่าด้วย modbus simulator program ดูครับ ถ้าอ่านได้แสดงว่าสามารถใช้ arduino อ่านด้วย modbus rtu ได้ครับ

    • @Grean-it-thailandBlogspot
      @Grean-it-thailandBlogspot 3 ปีที่แล้ว

      @@by4972 อันกลับทางกันครับ ใช้ arduino อ่านค่ากลับมาจาก เซนเซอร์ เราใช้ เสียบที่ Tx Rx ของ Arduino เลยใช่ไหมครับ

    • @by4972
      @by4972  3 ปีที่แล้ว +1

      ต้องถามก่อนว่า output ที่ออกมาจาก sensor คืออะไรครับ จากที่ผมดูอุปกรณ์ประกอบด้วย 2 ส่วน คือ
      1. sensor ใช้อ่านค่าที่ต้องการวัด
      2. Trasnmitter แปลงค่าจาก sensor ไปเป็น modbus rtu protocol
      หาก output ของ sensor เป็น 4-20ma หรือ 0-5V ก็ใช้ arduino อ่านค่าผ่าน analog input ครับ ถ้าเป็นกรณีนี้จะต่อเข้าที่ Rx และ Tx ไม่ได้ครับ

    • @Grean-it-thailandBlogspot
      @Grean-it-thailandBlogspot 3 ปีที่แล้ว

      @@by4972 อ่อครับขอบคุณครับ

  • @venakavaintaboonsri558
    @venakavaintaboonsri558 3 ปีที่แล้ว

    เยี่ยมมากเลยคับ ขอบคุณคับ

  • @user-eh2ec3rn6w
    @user-eh2ec3rn6w 2 ปีที่แล้ว +1

    อาจารย์ครับ ถ้าเราจะให้ ทางฝั่ง Arduino เป็น slave แล้ว เรามี library ของ modbus rtu slave ในฝั่ง arduino มั๊ย ครับ

  • @peeradonchaopa2426
    @peeradonchaopa2426 2 ปีที่แล้ว

    มีแนวทางเขียน code slave ไหมครับ ขอบคุณมากครับ

  • @user-hl4tv5wn9q
    @user-hl4tv5wn9q 2 ปีที่แล้ว

    ตัวแปรอะเรย์ Data_Modbus[xx] ค่าสูงสุดของ xx กำหนดได้กี่ค่าครับ?

  • @apisa2514
    @apisa2514 3 ปีที่แล้ว +1

    ถ้าต้องการเขียนไป modbus ทำไงครับ ขอบคุณครับ

  • @wisitsittisirinukul6638
    @wisitsittisirinukul6638 2 ปีที่แล้ว

    มีรับสอน modbus ส่วนตัว ไหมครับ?

  • @Jeerapong-d
    @Jeerapong-d ปีที่แล้ว

    ผมใช้max232 แทน ttl to rs485 อัพลงบอดได้แล้วแต่มันไม่อ่านค่าเลยครับ

  • @anuraksaethao5845
    @anuraksaethao5845 2 ปีที่แล้ว

    รบกวนขอcodeตัว Master และ Slave ด้วยครับ

  • @wrssingti709
    @wrssingti709 2 ปีที่แล้ว

    รบกวนขอ Code เพื่อใช้กับ Arduino Mega 2560 ด้วยครับ..

  • @wuttichaiwetsanon1107
    @wuttichaiwetsanon1107 2 ปีที่แล้ว

    อยากติดต่อสอบถามครับ

  • @manza12298
    @manza12298 3 ปีที่แล้ว

    รอ slave อยู่ครับผม เคยใช้แต่ ตัวที่ตัวคุม RE DE จะลองซื้อมาทดลองบ้าง

    • @by4972
      @by4972  3 ปีที่แล้ว +1

      เดี่ยวจะรีบจัดให้ รอติดตามได้เลยครับผม

    • @manza12298
      @manza12298 3 ปีที่แล้ว

      @@by4972 ขอบคุณครับพี่

    • @by4972
      @by4972  3 ปีที่แล้ว +1

      ขออีเมล์หน่อยครับ จะส่งตัวอย่างให้ ไม่มีเวลาทำคลิปเลยครับ

    • @manza12298
      @manza12298 3 ปีที่แล้ว

      @@by4972 manza12298@gmail.com ครับผม

  • @ravinpijitham5555
    @ravinpijitham5555 3 ปีที่แล้ว

    แบบ slave ลองยังคับ ใช้ libary ตัวไหนคับ

    • @by4972
      @by4972  3 ปีที่แล้ว +1

      เคยลองทำครับ จะอัพเดทให้อีกทีครับ

  • @dmildz9641
    @dmildz9641 2 ปีที่แล้ว +1

    ผมเอามาใช้กับ PM2200 ได้ไหมครับ

    • @by4972
      @by4972  2 ปีที่แล้ว

      ใช้ได้ครับ แต่ต้องรู้ modbus address ครับ

  • @user-xl1uc9is4q
    @user-xl1uc9is4q 3 ปีที่แล้ว +1

    อันนี้ยังไม่ได้ลองเขียนค่ากลับไปใช่ไหมครับ

    • @by4972
      @by4972  3 ปีที่แล้ว

      ยังไม่ได้เขียนค่ากลับครับผม

    • @user-xl1uc9is4q
      @user-xl1uc9is4q 3 ปีที่แล้ว

      @@by4972 สอนเขียนกลับหน่อยครับ

  • @wichian4406
    @wichian4406 3 ปีที่แล้ว

    ขอ Code ตัวอย่างหน่อยครับ

    • @wichian4406
      @wichian4406 3 ปีที่แล้ว

      wichian4406@gmail.com

    • @by4972
      @by4972  3 ปีที่แล้ว

      ส่งให้แล้วครับ

  • @apisa2514
    @apisa2514 3 ปีที่แล้ว +1

    ไม่มี code แจก หรือครับ

    • @apisa2514
      @apisa2514 3 ปีที่แล้ว

      apisak2514@yahoo.co.th ขอบคุณครับ

    • @by4972
      @by4972  3 ปีที่แล้ว +1

      ส่งให้แล้วครับ

    • @apisa2514
      @apisa2514 3 ปีที่แล้ว

      มี code เขียนไป modbus ไหมครับ
      หรือ อ่านได้อย่างเดียวครับ

  • @kakitelecom
    @kakitelecom 11 หลายเดือนก่อน

    ขอ code ตัวอย่างได้มั๊ยครับ kaki_kh@hotmail.com

  • @dekdoi32
    @dekdoi32 3 ปีที่แล้ว

    พี่ครับ ผมขอ code ตัวอย่างเชื่อมต่อกับ slave หน่อยครับ Email : Phitthaya.yawi@bumail.net ขอบคุณครับ

    • @by4972
      @by4972  3 ปีที่แล้ว +1

      ส่งเมล์ให้แล้วนะครับผม

    • @dekdoi32
      @dekdoi32 3 ปีที่แล้ว

      ขอบคุณ​ครับได้รับแล้วครับ​ พี่ครับ​ถ้าผมใช้บอร์ด​ mega​ 2560 เป็น​ mater ต้องปรับเปลี่ยน​codeตรงไหนบ้างครับ

    • @tanachaiphoset3451
      @tanachaiphoset3451 3 ปีที่แล้ว

      @@by4972 ขอด้วยคนนะครับ aekk123-456@hotmail.com

    • @by4972
      @by4972  3 ปีที่แล้ว

      ส่งให้แล้วครับผม

    • @sukritchankrai1549
      @sukritchankrai1549 3 ปีที่แล้ว

      @@by4972 ขอ code slave ด้วยคนครับ sukrit.ktit@gmail.com

  • @sharing6507
    @sharing6507 3 ปีที่แล้ว

    ผมเขียนตามแล้วครับ ,มัน erorr ตรง
    Data_Modbus[0] = ReadModbus8bits(1, 0);
    Data_Modbus[1] = ReadModbus8bits(1, 1);
    error
    exit status 1
    'readHoldingRegisters' was not declared in this scope

    • @by4972
      @by4972  3 ปีที่แล้ว

      ขอดูโค้ดเต็มๆหน่อยครับ

    • @sharing6507
      @sharing6507 3 ปีที่แล้ว +1

      @@by4972
      #include
      #include
      ModbusMaster node;
      SoftwareSerial mySerial(6,7);
      float Data_Modbus[5];
      void setup()
      {
      Serial.begin(19200);
      mySerial.begin(9600);
      node.begin(1,mySerial);
      }
      void loop()
      {
      Data_Modbus[0] = ReadModbus8bits(1, 0);
      Data_Modbus[1] = ReadModbus8bits(1, 1);
      Serial.println("");
      Serial.println("Address 0 Value" = + String(Data_Modbus[0]));
      Serial.println("Address 1 Value" = + String(Data_Modbus[1]));
      }
      float ReadModbus8bits(char addr, uint8_t REC);
      {
      float i = 0;
      uint8_t j;
      int8_t result;
      int8_t data[1];
      int8_t Value = 8;
      node.begin(addr, mySerial);
      result = node.readHoldingRegisters (REG,5);
      delay(1000);

      if (result == node.ku8MBSuccess);
      {
      for (j = 0; j < 1 j++)
      {
      data[j] =node.getResponseBuffer(j);
      }
      Value = data[0];
      i = Value
      return 1;
      }
      elif
      {
      Serial.print("Connec fail REC >>>>");
      Serial.println(REC, HEX);
      delay(1000);
      return 0;
      }
      }

    • @sharing6507
      @sharing6507 3 ปีที่แล้ว

      @@by4972 อ.โต้ง มีเฟสบุ๊ค หรือเปล่าครับขอคำปรึกษาหน่อยได้หรือเปล่าครับ

    • @by4972
      @by4972  3 ปีที่แล้ว

      rooster diy ครับ

    • @user-jt5re2nq4u
      @user-jt5re2nq4u 2 ปีที่แล้ว

      @@sharing6507 ทำยังไงครับของผมก็ขึ้น erorr