PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp USB, CAN, I2C, SPI, USART... (http://www.picvietnam.com/forum/forumdisplay.php?f=45)
-   -   Điều khiển LED qua USB (http://www.picvietnam.com/forum/showthread.php?t=3857)

TANDEM 07-04-2009 11:23 AM

Đ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 07-04-2009 06:17 PM

Trích:

Nguyên văn bởi TANDEM (Post 24422)
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,

TANDEM 07-04-2009 06:21 PM

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

TANDEM 07-04-2009 06:28 PM

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?

phungtung 07-04-2009 06:56 PM

You must find by yourself!

lequocbao 07-04-2009 07:08 PM

Trích:

Nguyên văn bởi TANDEM (Post 24446)
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 đã.

TANDEM 07-04-2009 08:44 PM

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!

namqn 07-04-2009 09:16 PM

Trích:

Nguyên văn bởi TANDEM (Post 24452)
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:
http://www.picvietnam.com/forum/showthread.php?t=869

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++):
http://www.picvietnam.com/forum/showthread.php?t=274

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:
http://www.users.on.net/~cit/html/vi...m_control.html

Thân,

TANDEM 07-04-2009 10:49 PM

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.

TANDEM 07-04-2009 11:26 PM

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?

namqn 08-04-2009 12:43 AM

Trích:

Nguyên văn bởi TANDEM (Post 24476)
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,

TANDEM 08-04-2009 01:02 AM

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?

TANDEM 08-04-2009 02:22 AM

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!

TANDEM 22-04-2009 10:43 PM

1 Attachment(s)
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!

TANDEM 26-04-2009 03:59 PM

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


Múi giờ GMT. Hiện tại là 05:28 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam