Điều khiển LED qua USB

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • TANDEM
    Đệ tử 2 túi
    • Aug 2008
    • 40

    #1

    Điều khiển LED qua USB

    Nay đệ muốn điều khiển 10 LED thông qua cổng USB theo kiểu: trên màn hình máy tính có giao diện, sau khi qua cổng USB thì có PIC P16F877A viết bởi CCS. Vấn đề này không mới, song bản thân chưa có nhiều hiểu biết sâu sắc. Vì vậy, muốn tham khảo các sư huynh:
    Mô hình thực hiện vấn đề này như thế nào. Rất mong hồi âm!
  • namqn
    Trưởng lão PIC bang
    • Feb 2006
    • 3025

    #2
    Nguyên văn bởi TANDEM View Post
    Nay đệ muốn điều khiển 10 LED thông qua cổng USB theo kiểu: trên màn hình máy tính có giao diện, sau khi qua cổng USB thì có PIC P16F877A viết bởi CCS. Vấn đề này không mới, song bản thân chưa có nhiều hiểu biết sâu sắc. Vì vậy, muốn tham khảo các sư huynh:
    Mô hình thực hiện vấn đề này như thế nào. Rất mong hồi âm!
    Đơn giản nhất là bạn dùng mô hình sau:

    Máy tính <=> USB-to-serial converter <=> PIC16F877A => LED

    Giao diện trên máy tính chỉ cần dùng giao tiếp RS-232 qua cổng COM ảo của bộ USB-to-serial converter. PIC16877A chỉ cần dùng giao tiếp RS-232, và xuất dữ liệu ra LED. Những vấn đề này đều đã được đề cập ở picvietnam.

    Cần chú ý là PIC16F877A không hỗ trợ giao tiếp USB, do đó nếu bạn muốn dùng trực tiếp giao tiếp USB (sẽ tốn nhiều thời gian và công sức) thì nên chuyển sang một PIC18 có hỗ trợ module ngoại vi USB như PIC18Fx450, hoặc PIC18Fx455, hoặc PIC18Fx550.

    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

    • TANDEM
      Đệ tử 2 túi
      • Aug 2008
      • 40

      #3
      Sao không thấy huynh nào giúp mình vậy?

      Comment

      • TANDEM
        Đệ tử 2 túi
        • Aug 2008
        • 40

        #4
        Cám ơn namqn! Quả thật “Giao diện trên máy tính chỉ cần dùng giao tiếp RS-232 qua cổng COM ảo của bộ USB-to-serial converter.” Đây là vấn đề tôi còn “Gà mờ” lắm, viết giao diện như thế nào? Bạn có thể cho tôi một đọan mẫu được không?

        Comment

        • phungtung
          Đệ tử 1 túi
          • Mar 2008
          • 14

          #5
          You must find by yourself!

          Comment

          • lequocbao
            Đệ tử 6 túi
            • Oct 2008
            • 137

            #6
            Nguyên văn bởi TANDEM View Post
            Cám ơn namqn! Quả thật “Giao diện trên máy tính chỉ cần dùng giao tiếp RS-232 qua cổng COM ảo của bộ USB-to-serial converter.” Đây là vấn đề tôi còn “Gà mờ” lắm, viết giao diện như thế nào? Bạn có thể cho tôi một đọan mẫu được không?
            Bạn kiếm chổ nào gần nhà học một khóa cấp tốc về Visual Basic trước cái đã.
            A&A

            Comment

            • TANDEM
              Đệ tử 2 túi
              • Aug 2008
              • 40

              #7
              Quả thật, đệ là dân ngoại đạo, cho nên lờ mờ về IT lắm, nay gặp vấn đề này cũng tự mình muốn mày mò để làm song khó quá. Bữa trước, đệ có đọc cái TUT “Hướng dẫn giao tiếp máy tính từ A đến Z”của minhtuan04 trên diễn đàn điện tử, tối về “vọc ” như hướng dẫn thì thành công liền với mô phỏng Protues. Có điều, bây giờ đệ muốn thay C# bởi Visual Basic, thay 8051 bởi PIC P16F887A. Với Pic thì đệ mới học và cũng có thể thao tác được với vài bài tập đơn giản, song với Visual Basic thì khó quá, cho nên bây giờ đệ muốn “ăn” xong phần “Máy tính <=> USB-to-serial converter” như lời trưởng lão PIC bang đã nói. Mong các huynh chỉ giúp!

              Comment

              • namqn
                Trưởng lão PIC bang
                • Feb 2006
                • 3025

                #8
                Nguyên văn bởi TANDEM View Post
                Quả thật, đệ là dân ngoại đạo, cho nên lờ mờ về IT lắm, nay gặp vấn đề này cũng tự mình muốn mày mò để làm song khó quá. Bữa trước, đệ có đọc cái TUT “Hướng dẫn giao tiếp máy tính từ A đến Z”của minhtuan04 trên diễn đàn điện tử, tối về “vọc ” như hướng dẫn thì thành công liền với mô phỏng Protues. Có điều, bây giờ đệ muốn thay C# bởi Visual Basic, thay 8051 bởi PIC P16F887A. Với Pic thì đệ mới học và cũng có thể thao tác được với vài bài tập đơn giản, song với Visual Basic thì khó quá, cho nên bây giờ đệ muốn “ăn” xong phần “Máy tính <=> USB-to-serial converter” như lời trưởng lão PIC bang đã nói. Mong các huynh chỉ giúp!
                Bạn cứ xem cái USB-to-serial converter là một cổng COM, và đọc luồng sau:
                RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...


                Việc ứng dụng thì thực ra khá đơn giản, chỉ cần dùng địa chỉ cổng COM ảo thay cho địa chỉ cổng COM trong hướng dẫn trên.

                Về chi tiết cách tạo giao diện thì bạn có thể tham khảo thêm tutorial sau (viết cho VC++):
                RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...


                Cả hai tutorial đều sử dụng MSComm control của Microsoft. Bạn có thể tham khảo cách dùng MSComm trong VB ở đây:


                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

                • TANDEM
                  Đệ tử 2 túi
                  • Aug 2008
                  • 40

                  #9
                  Cám ơn bác namqn! Em sẽ làm theo hướng dẫn, mắc chỗ nào em sẽ thảo luận với bác sau.

                  Comment

                  • TANDEM
                    Đệ tử 2 túi
                    • Aug 2008
                    • 40

                    #10
                    Bác namqn à! như em biết thì địa chỉ cổng COM1 là 3F8 và COM2 là 2F8. Vậy địa chỉ của cổng COM ảo là bao nhiêu vậy?

                    Comment

                    • namqn
                      Trưởng lão PIC bang
                      • Feb 2006
                      • 3025

                      #11
                      Nguyên văn bởi TANDEM View Post
                      Bác namqn à! như em biết thì địa chỉ cổng COM1 là 3F8 và COM2 là 2F8. Vậy địa chỉ của cổng COM ảo là bao nhiêu vậy?
                      Bạn không cần địa chỉ kiểu đó đâu. Cổng COM ảo thường khác với COM1 .. COM4. Bạn chỉ cần xem nó xuất hiện ở máy của bạn dưới tên nào, giả thiết là COMx, rồi bạn dùng x đó trong câu lệnh thiết lập port (tức là thay MSComm1.CommPort = 1 thành MSComm1.CommPort = x). Thế thôi.

                      Nếu MSComm không thể mở cổng với giá trị x quá lớn thì bạn tìm cách thiết lập địa chỉ của cổng COM ảo thành một trong các giá trị COM1 .. COM4 (vì máy tính của bạn chắc sẽ không có đến 4 cổng COM). Các bộ USB-to-serial dùng chip của FTDI chắc chắn có thể thay đổi được địa chỉ theo cách vừa nói.

                      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

                      • TANDEM
                        Đệ tử 2 túi
                        • Aug 2008
                        • 40

                        #12
                        Em hỏi thế này bác namqn ơi, khi nào thì PIC nhận ra rằng dữ liệu đã được gửi xuống từ PC vậy?

                        Comment

                        • TANDEM
                          Đệ tử 2 túi
                          • Aug 2008
                          • 40

                          #13
                          Cám ơn bác "Trưởng lão PIC bang" hôm nay đệ mở được to con mắt hơn rồi! Chúc các bác ngủ ngon!

                          Comment

                          • TANDEM
                            Đệ tử 2 túi
                            • Aug 2008
                            • 40

                            #14
                            Báo cáo với các sư huynh về dự án của đệ: "Điều khiển LED qua USB". Hiện nay đệ đã làm xong mô hình mà Trưởng lão PIC bang khuyến cáo 'Máy tính <=> USB-to-serial converter <=> PIC16F877A => LED', tuy nhiên đệ chỉ mới mô phỏng bằng Proteus và chưa giả lập được cổng COM. Còn một điều nữa là khi check các LED thì LED đã được check trước lại tắt, đệ không biết giải quyết thế nào? Nhờ các huynh chỉ giáo!
                            Attached Files

                            Comment

                            • TANDEM
                              Đệ tử 2 túi
                              • Aug 2008
                              • 40

                              #15
                              Bác Nam ơi, bác giúp em cái vấn đề mà em đang mắc với!

                              Comment

                              Working...