![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 3 túi
Tham gia ngày: Jul 2005
Bài gửi: 47
: |
Break mới đúng phương pháp PWM
![]() Bác thử băm động cơ ở 20k xem, nếu không Break thì nó sẽ thế nào? |
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
Vấn đề là nếu bạn không nối tắt khi hết duty cycle thì dòng điện của động cơ sẽ tìm đường khác để chạy tiếp (do điện cảm của động cơ duy trì dòng điện một cách liên tục). Hệ quả là diode ngược của khóa phía dưới của nửa cầu PWM (giả sử đang dùng MOSFET) cùng với diode ngược của khóa phía trên của nửa cầu kia sẽ tạo đường dẫn cho dòng điện động cơ. Sẽ có 2 trường hợp xảy ra. Động cơ nhẹ tải, do đó dòng điện trung bình nhỏ, khi đó dòng điện sẽ có thể trở về giá trị 0, và các khóa sẽ dẫn dòng điện theo chiều ngược lại cho đến khi bạn bắt đầu chu kỳ mới. Nếu động cơ nặng tải, dòng điện trung bình đủ lớn, khi đó dòng điện sẽ không về giá trị 0, các diode ngược sẽ phải làm việc cho đến khi bạn bắt đầu chu kỳ mới. Trong cả hai trường hợp, áp đặt vào động cơ sẽ là +V khi ở phần duty cycle, và -V ở phần còn lại của chu kỳ, thay vì +V ở phần duty cycle, và 0 ở phần còn lại của chu kỳ. Như vậy, khoảng điều khiển của bạn bị hẹp lại, và duty cycle = 50% sẽ ứng với điện áp trung bình bằng 0! (một cách lý tưởng). Đây không chỉ là lý thuyết, vì nó đã xảy ra khi sinh viên của tôi làm đề tài điều khiển PID cho động cơ DC cách đây khoảng 3 năm. 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 thay đổi nội dung bởi: namqn, 11-07-2006 lúc 12:26 AM. Lý do: viết thiếu vài chữ |
|
![]() |
![]() |
![]() |
#3 | |
Đệ tử 3 túi
Tham gia ngày: Jul 2005
Bài gửi: 47
: |
Trích:
Cái đề tài điều khiển PID động cơ anh hướng dẫn ấy mà. Thực hiện mấy vòng điều khiển? dùng loại chíp nào? có tính hàm truyền động cơ không hay là chỉnh định Z-N. Anh nói rõ chút được không? Em muốn tham khảo chút thông tin ![]() |
|
![]() |
![]() |
![]() |
#4 | |
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 |
|
![]() |
![]() |
![]() |
#5 | |
Đệ tử 3 túi
Tham gia ngày: Jul 2005
Bài gửi: 47
: |
Trích:
![]() Theo anh thì để điều khiển DC Motor đến nơi đến chốn thì cần làm những bước nào, áp dụng các phương pháp điều khiển nào? Ý em là xây dựng một hệ điều khiển DCservo như Tây nó làm từ rất lâu rồi ý ![]() Hôm trước đi làm thí nghiệm CNC thấy cái tay robot 6 bậc ngon quá mà toàn điều khiển bằng động cơ PITTMAN Encoder 504 xung (loại kiếm được ngoài chợ mới hay chứ) |
|
![]() |
![]() |
![]() |
#6 |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Hì cảm ơn bác namqn rất nhiều.
Bác sphinx đừng mỉa mai em thế tội nghiệp, trước giờ em có rờ tới động cơ bao giờ đâu ![]() |
![]() |
![]() |
![]() |
#7 |
Đệ tử 1 túi
Tham gia ngày: Sep 2006
Bài gửi: 17
: |
he he mình cũng đang làm để tài điều khiển đông cơ dùng module PWM của pic8f4431 và dang nghiên cứu dùng encoder để hồi tiếp vận tốc để tính toán sai số phương pháp điều khiển.Có gì cùng thảo luận nhé.vì mình chưa biết tí gì về encoder nên mong các bạn chỉ bước đầu.hihi thanks
chú mèo đihia tái bút thanks |
![]() |
![]() |
![]() |
#8 |
Đệ tử 2 túi
Tham gia ngày: Jul 2006
Bài gửi: 32
: |
Chào các bác,
em đọc trong datasheet cua PIC 18F4431, thay co 8 PWM, chia lam 4 cặp. Nhưng đến khi em dùng ICD2 cua batbatdieu, lập trình bằng PICC rồi burn nhưng không sử dụng được PWM 4,5,6,7. Em cũng mới bắt đầu học thôi, mong các bác chỉ dùm, em cảm ơn các bác nhiều nhiều. FM |
![]() |
![]() |
![]() |
#9 |
Nhập môn đệ tử
Tham gia ngày: May 2007
Bài gửi: 1
: |
Em mới tìm hiểu PIC18F4431 để điều khiển động cơ. Cho hỏi các bác dày dạn kinh nghiệm là có cách nào dùng 1 con 4431 để đọc đồng thời 4 encoder (có phase A, B, Z) được không và nếu xử lý cho cả 2 chiều thuận và ngược thì làm sao?
|
![]() |
![]() |
![]() |
#10 |
Nhập môn đệ tử
Tham gia ngày: Nov 2006
Bài gửi: 3
: |
mình đang làm đồ án về điều khiển vi trí động cơ dùng pic18 thông qua cổng usb nhưng không có mạch và nguyên lý, điều khiển qua cổng com cũng được mình sẽ phát triển lên. bác nào có cho em. em đang đau đầu về nó. có gì gửi qua mail cho mình cũng được : dhgiang85@gmail.com. cám ơn các bác
|
![]() |
![]() |
![]() |
#11 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 7
: |
mode velocity timer5 set mode là inernal sync timer hoặc external sync counter. bác scentoflove xem lại datasheet nha!. tôi đã dung module này rồi đúng là tiện thật.
namqn: scentoflove hỏi phần này cách đây hơn 1 năm rưỡi rồi, và có lẽ đã làm xong từ lâu. Bạn để ý thông tin thời gian khi post bài nhé. thay đổi nội dung bởi: namqn, 09-04-2008 lúc 05:32 PM. |
![]() |
![]() |
![]() |
#12 |
Đệ tử 6 túi
Tham gia ngày: Mar 2006
Bài gửi: 129
: |
Thanks hi@hi, thật sự thì mình cũng ít dùng mode này, lúc đầu mới chơi 4431 thì tò mò sau này wen rồi thi đa số lại dùng mode position.
|
![]() |
![]() |
![]() |
#13 |
Đệ tử 1 túi
Tham gia ngày: May 2008
Bài gửi: 22
: |
chào mọi người, mấy hôm nay, em làm xong mạch test rôi, Pickit2 cug chạy rồi, em cũng đang bắt đầu làm 18f4431 điều khiển động cơ đây,
code: power_pwm đây, nạp xong nó im re, các bác giúp e với, ================================================== Code:
int16 duty1=2000; int16 ref=0,out=0; signed int16 udk=0, error=0; void main() { setup_adc_ports( ALL_ANALOG ); setup_adc(ADC_CLOCK_INTERNAL ); delay_ms(1000); setup_power_pwm_pins(PWM_OFF,PWM_OFF, PWM_OFF,PWM_OFF); setup_power_pwm_pins(PWM_COMPLEMENTARY,PWM_COMPLEMENTARY, PWM_COMPLEMENTARY,PWM_COMPLEMENTARY); setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN|PWM_DEAD_CLOCK_DIV_4,1,10000,1000,0,1,10); set_power_pwm0_duty(2000); //set_power_pwm2_duty(2000); while(1) { set_adc_channel(0); delay_us(10); ref=read_adc(); set_adc_channel(1); delay_us(10); out=read_adc(); error=ref-out; udk=5*error; if (udk>2000) { udk=2000; } if (udk<-2000) { udk=-2000; } duty1=2000+udk; set_power_pwm0_duty(duty1); } } anh nào giúp em với, còn đọc encoder nữa. em chưa viết được. chân thành cảm ơn các huynh. thay đổi nội dung bởi: namqn, 26-05-2008 lúc 10:40 PM. |
![]() |
![]() |
![]() |
#14 |
Đệ tử 6 túi
Tham gia ngày: Mar 2006
Bài gửi: 129
: |
Bạn ko up sơ đồ mạch thì làm sao có thể giúp bạn. Bạn cũng ko cho biết là im re là ko có xung pwm trên chân PWM0 PWM1 hay là có xung nhưng động cơ ko chạy
Có 1 số điểm trong setup của bạn chưa hợp lý: _ Giá trị Initial PTMR của bạn là 10000, trong khi giá trị PTPER là 1000. _ Trước khi set duty bạn nên overide false trên các chân PWM0 PWM1 |
![]() |
![]() |
![]() |
#15 |
Đệ tử 1 túi
Tham gia ngày: May 2008
Bài gửi: 22
: |
em làm mạch trên testboard nên chưa có sơ đồ, anh thông cảm, đại khái là em nối PWM0(RB0),PWM1(RB1), vào mạch công suất cầu h có ir2184, riêng mạch công suất em test chạy rồi, "ỉm re" em dung LED thử nó vẩn tối thui,
vậy Initial PTMR, PTPER, phải sữa như thế nào hả anh. nó là tham số gì vậy?. còn set duty (overide false) nữa. còn Encoder nối với C4,C5, các huynh giúp code giúp em với. nói tóm lại: em muốn điều khiển vị trí thông qua máy tính. em mới tập tành thôi, nên có nhiều cái còn mơ hồ quá, mong các huynh chì giáo. chân thành cảm ơn trước. thân. thay đổi nội dung bởi: tamrua, 27-05-2008 lúc 05:01 PM. |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
xin bootloader của pic18f4331 | hoangminh1234 | Tiny Bootloader | 30 | 24-12-2011 02:38 PM |
trao doi | truonggiang | Trao đổi ngoài luồng | 2 | 20-12-2006 11:30 AM |