RS232 dùng matlab và proteus!!

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • dvnccbmacbt
    Đệ tử 4 túi
    • May 2007
    • 65

    #1

    RS232 dùng matlab và proteus!!

    Em đang gặp rắc rối khi truyền dữ liệu từ PIC đến PC dùng matlab.
    Từ máy tính tới PIC dùng matlab thi đã mô phỏng thành công rồi.
    Khi tạo cổng com ảo kiểu loopback thì matlab truyền và nhận dữ liệu đều tốt. Nhưng khi tạo 2 cổng ảo (COM1 nối với matlab và COM2 nối với proteus) thi không nhận dữ liệu từ PIC được. Chỉ có PIC nhận từ máy tính được thôi!
    Có bác nào đã từng mô phỏng bằng Proteus việc truyền dữ liệu từ PIC6f877a đến máy tính dùng matlab chưa ạ?
    Mong các bác giúp đỡ?
    Em cảm ơn nhiều!
  • namqn
    Trưởng lão PIC bang
    • Feb 2006
    • 3020

    #2
    Nguyên văn bởi dvnccbmacbt View Post
    Em đang gặp rắc rối khi truyền dữ liệu từ PIC đến PC dùng matlab.
    Từ máy tính tới PIC dùng matlab thi đã mô phỏng thành công rồi.
    Khi tạo cổng com ảo kiểu loopback thì matlab truyền và nhận dữ liệu đều tốt. Nhưng khi tạo 2 cổng ảo (COM1 nối với matlab và COM2 nối với proteus) thi không nhận dữ liệu từ PIC được. Chỉ có PIC nhận từ máy tính được thôi!
    Có bác nào đã từng mô phỏng bằng Proteus việc truyền dữ liệu từ PIC6f877a đến máy tính dùng matlab chưa ạ?
    Mong các bác giúp đỡ?
    Em cảm ơn nhiều!
    Tại sao lại có 2 cổng COM ảo? COM1 và COM2 ảo đó có nối với nhau không? Nếu có thì nối ra sao?

    Truyền từ PIC đến 1 cổng COM ảo, rồi nhận dữ liệu vào MATLAB cũng qua cổng COM ảo đó thì mới hợp lý chứ.

    Thân,
    Biển học mênh mông, sức người có hạn.

    Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
    http://www.picvietnam.com/forum/showthread.php?t=1263

    Comment

    • dvnccbmacbt
      Đệ tử 4 túi
      • May 2007
      • 65

      #3
      Em xem luông này thì thấy như vậy:http://dientuvietnam.net/forums/showthread.php?t=13005




      Tức là cồng COM4 nối với Proteus, còn COM5 thì nối với Visual. Em hiểu như thế đúng không ạ ?

      Ở matlab em viết là :
      Code:
      s=serial('com1')
      hàm ngắt ở matlab thì em viết thế này
      Code:
      function ngat_Callback(obj,event)
       data=fscanf(obj)
      Còn ở Proteus thì em chọn thế này:


      khi giao tiếp thì matlab phát kí tự thì PIC nhận được,nhưng ngược lại thì không được.
      đây là sơ đồ mạch của em:


      Mong mọi người giúp đỡ.
      Bên luồng "Thiết kế bộ PID cho động cơ DC" em thấy có phần thiết kế và vẽ đồ thị dùng matlab. Các anh cho em xin chương trinh matlab đó đựoc không ạ?
      Em cảm ơn nhiều.

      Comment

      • phamminhtuan
        Super Moderator
        • Feb 2006
        • 150

        #4
        Theo mô tả của bạn thì bạn tạo ra 2 cổng ảo là COM1 và COM2, vậy là trên máy bạn không có cổng COM vật lý nào phải không ??

        Khi bạn tạo cặp cổng COM ảo thì 2 cổng này được nối "ảo" với nhau, do đó bạn có thể gởi dữ liệu ra cổng COM này và nhần về từ cổng COM kia, thí nghiệm của bạn đã thành công khi gởi dữ liệu từ MATLAB xuống PIC, vậy vấn đề về baudrate.., cài đặt cho truyền nối tiếp chắc là không có vấn đề gì, vấn đề ở đây là chương trình trong MATLAB

        Code:
        s = serial('COM1','BaudRate',9600);
        fopen(s)
        s.BytesAvailableFcnMode = 'terminator';
        s.BytesAvailableFcn = @mycallback;; %callback như thế này
        fprintf(s,'*IDN?')[FONT=verdana];[/FONT]
        link tham khảo
        Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
        http://www.picvietnam.com/forum/showthread.php?t=1263

        Comment

        • dvnccbmacbt
          Đệ tử 4 túi
          • May 2007
          • 65

          #5
          Cảm ơn gợi ý của bạn, Chương trinh matlab thì chắc chắn là không sai vì mình có lam thử trên desktop. Thử đấu chéo chận 2 và chân 3 cong Com và chương trinh matlab đã truyền nhận dữ liệu rất tốt. Trên laptop cũng đã thử mô phỏng kiểu loopback và chương trình vẫn chạy tốt. Nhưng khi mình xài laptop, mo phỏng bằng proteus giao tiêp với PIC6f877a thì không được. Chỉ truyền dữ liệu từ matlab xuong được thôi. Còn nhận từ PIC thi chịu. Mong mọi người giúp đỡ.

          Comment

          • andyhug
            Đệ tử 1 túi
            • Jun 2008
            • 23

            #6
            Rs232?

            Mình đã thử truyền từ Pic lên, mô phỏng = Proteus7.2SP2, mạch bỏ qua ComPim thấy truyền được! Xin hỏi làm thế nào để xuống dòng, về đầu dòng? Tất cả mạch và chương trình CCSC đây: Thanks!
            Attached Files
            Sống ở trên đời cần phải có một tấm lòng để gió cuốn đi!
            xxxxxxxxxxxxxxxxxxx Trịnh Công Sơn xxxxxxxxxxxxxxxxxxx

            Comment

            Working...