|
13-02-2008, 11:39 PM | #1 |
Đệ tử 5 túi
|
Việc dùng PWM trong pic 16f877a
Các bác cho em hỏi;
+ Mình có thể dùng chân ccp1 để tạo xung PWM cho động cơ 1 chạy, và dùng chân ccp1 này để tạo xung PWM cho động cơ 2 chạy không. Với điều kiện khi tạo động cơ 1 chạy thì động cơ 2 không chạy và ngược lại. Em tính dùng chân CCP1 tạo xung + ngắt cạnh lên H_TO_L cho động cơ 1, và tạo xung + ngắt cạnh xuống L_TO_H cho động cơ 2 được không. Xin các bác nào có kinh nghiệm trả lời. |
13-02-2008, 11:53 PM | #2 |
Đệ tử 5 túi
|
void dongco1(int8 speed1)
{ setup_ccp1(CCP_PWM_H_L); // Configure CCP1 as a PWM setup_timer_2(T2_DIV_BY_16, 255,1); set_pwm1_duty (speed1); tốc độ động cơ 1 } void dongco2(int8 speed2) { setup_ccp1(CCP_PWM_L_H); // Configure CCP1 as a PWM setup_timer_2(T2_DIV_BY_16, 255,1); set_pwm1_duty (speed2); tốc độ động cơ 2 } Khi dùng cho động cơ nào em gọi hàm động cơ đó. Không biết như thế này có được không? |
14-02-2008, 12:37 AM | #3 | |
Trưởng lão PIC bang
|
Trí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 |
|
14-02-2008, 06:48 PM | #4 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
Trích:
em có thể làm 1 chân pic bình thường thành 1 chân có điều xung có được ko ạ(đc hay ko thôi ạ?) |
|
14-02-2008, 06:52 PM | #5 | |
Trưởng lão PIC bang
|
Trí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 |
|
14-02-2008, 06:55 PM | #6 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
Trích:
nếu anh có doạn mã code cho em thì hay quá. thank anh nhìu |
|
14-02-2008, 12:35 AM | #7 | ||
Trưởng lão PIC bang
|
Trích:
Trí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 |
||
22-02-2008, 01:04 AM | #8 | |
Đệ tử 6 túi
Tham gia ngày: Mar 2007
Bài gửi: 150
: |
Trích:
Các bác cho em hỏi; + Mình có thể dùng chân ccp1 để tạo xung PWM cho động cơ 1 chạy, và dùng chân ccp1 này để tạo xung PWM cho động cơ 2 chạy không. Với điều kiện khi tạo động cơ 1 chạy thì động cơ 2 không chạy và ngược lại. Tất nhiên là được, vì xét về bản chất, tại bất kỳ thời điểm nào, bạn cũng chỉ cần 1 tín hiệu PWM. Trích: Nguyên văn bởi manhha2799 Em tính dùng chân CCP1 tạo xung + ngắt cạnh lên H_TO_L cho động cơ 1, và tạo xung + ngắt cạnh xuống L_TO_H cho động cơ 2 được không. Xin các bác nào có kinh nghiệm trả lời. Đây là một trong những cách khả thi. Tất nhiên về phía đầu vào thì bạn phát hiện cạnh để chọn động cơ được cấp PWM, nhưng phía đầu ra của PIC bạn cũng nên dùng thêm ngõ ra để hiện thực việc lái tín hiệu PWM đến động cơ cần được truyền động. Thân, Cho em hỏi cái này hơi chuối một chút , em ko hiểu "cách dùng chân CCP1 tạo xung + ngắt cạnh lên H_TO_L cho động cơ" là sao cả?. Vậy ngắt này được tạo ra do đâu ? Có phài là ngắt của khối CCP kô ? nếu vậy thì chân ccp1 phải nhận được tín hiệu ngắt , sau khi có ngắt xảy ra nó sẽ tạo ra tín hiệu pwm phải ko ? Nếu đúng như vậy thì khi có xung ngắt vào chân ccp , thì con lái (driver) mạch điều khiển động cơ cũng nhận được tín hiệu đó , như thế sẽ có ảnh hưởng đến việc điều khiển hả anh ? #define CCP_PWM_H_H 0x0c #define CCP_PWM_H_L 0x0d #define CCP_PWM_L_H 0x0e #define CCP_PWM_L_L 0x0f trong ccs nó co chỉ như vậy nhưng em kô hiểu , rất mong các anh chỉ giúp .. Thanks for all !!
__________________
_________________________________________________ Le Trung Duc Industry Research & Application Center NTT Institute of Hi_technolog ltduc@ntt.edu.vn leduc_cktd@yahoo.com.vn http://www.nttc.edu.vn CNC DIY : http://quangcaosanpham.com/shop/driverservo 0909300332 |
|
09-10-2008, 12:58 AM | #9 |
Nhập môn đệ tử
Tham gia ngày: Jul 2008
Bài gửi: 1
: |
Hướng dẫn cụ thể về PWM trong PIC 16F877a
Có ai giúp mình tìm hiểu cách hoạt động của quá trình điều chế xung với.
Rất mong được các bác hướng dẫn cụ thể. Cảm ơn các bác nhiều. |
22-02-2008, 01:07 AM | #10 | |
Đệ tử 6 túi
Tham gia ngày: Mar 2007
Bài gửi: 150
: |
Trích:
Vậy ngắt này được tạo ra do đâu ? Có phài là ngắt của khối CCP kô ? nếu vậy thì chân ccp1 phải nhận được tín hiệu ngắt , sau khi có ngắt xảy ra nó sẽ tạo ra tín hiệu pwm phải ko ? Nếu đúng như vậy thì khi có xung ngắt vào chân ccp , thì con lái (driver) mạch điều khiển động cơ cũng nhận được tín hiệu đó , như thế sẽ có ảnh hưởng đến việc điều khiển hả anh ? CCP_PWM_H_H CCP_PWM_H_L CCP_PWM_L_H CCP_PWM_L_L Trong ccs nó co chỉ như vậy nhưng em kô hiểu , rất mong các anh chỉ giúp .. Thanks for all !!
__________________
_________________________________________________ Le Trung Duc Industry Research & Application Center NTT Institute of Hi_technolog ltduc@ntt.edu.vn leduc_cktd@yahoo.com.vn http://www.nttc.edu.vn CNC DIY : http://quangcaosanpham.com/shop/driverservo 0909300332 |
|
01-03-2008, 10:42 PM | #11 |
Nhập môn đệ tử
Tham gia ngày: Jan 2008
Bài gửi: 1
: |
Chào moi người .Cho tớ hỏi cái hàm điều xung bằng giá trị phần trăm (tức là mình sẽ truyền tham số cho hàm là giá trị phần trăm chứ không phải là value ) nằm ở đâu nhỉ ?tớ nghe nói là có ở trên diễn đàn mà, nên hỏi về để tham khảo .Có mục Tìm Kiếm ở trên rồi mà mình không tìm được.Cảm ơn mọi người
|
20-02-2008, 10:50 PM | #12 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
Em có ý kiến thế này.em dùng con 16F877A để điều khiển 3 động cơ cùng 1 lúc bằng cách dùng 2 chân pwm của PIC :
em hỏi la có thể dùng 1 chân pwm để điều khiển 1 lúc 2 động cơ được ko?khi điều khiển 1 động cơ riêng lẻ thì qua 1 con (như dạng phân kênh) đc ko ạ? |
21-02-2008, 01:47 AM | #13 | |
Trưởng lão PIC bang
|
Trí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 |
|
21-02-2008, 02:52 AM | #14 | |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
cach dieu xung
Trích:
|
|
21-02-2008, 05:38 AM | #15 |
Trưởng lão PIC bang
|
Trong phần code trên, trong các hàm ccp1() và ccp2() bạn dùng vòng lặp while(true) { ... }, điều này là không nên, vì khi bạn gọi một trong những hàm đó thì chương trình sẽ không thể trở về chương trình gọi (là main() trong trường hợp của bạn). while(1) { ... } hay while(true) { ... } chỉ nên được dùng trong main().
Ngoài ra, bạn xem lại trong ccp2(), bạn setup CCP2 xong lại thay đổi duty cycle của pwm1. 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 |
|
|