PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Thực hành (http://www.picvietnam.com/forum/forumdisplay.php?f=20)
-   -   Tìm người làm bài tập thực hành: Bộ ĐK PID động cơ DC (http://www.picvietnam.com/forum/showthread.php?t=485)

trungkien_0914373773 26-09-2006 12:42 AM

tôi mới tìm hiểu về pic và thấy ý kiến hay đấy .

bluepine 26-09-2006 10:20 AM

Hỏi về interrupt on change
 
Trích:

Nguyên văn bởi falleaf (Post 5060)
http://www.picvietnam.com/forum//showthread.php?t=224


Em xem luồng này, xem bài số 13. Nếu như bây giờ em đọc cả cạnh lên và cạnh xuống của encoder của cả hai kênh A, B, thì như vậy em sẽ thấy rằng độ phân giải sẽ tăng lên 4 lần.

Nếu em chỉ đọc cạnh lên của kênh B chẳng hạn, thì bây giờ em đọc cạnh lên B, lên A, xuống B, xuống A. Như vậy độ phân giải sẽ tăng lên 4.

Như vậy, với encoder 500 xung/vòng, em có thể đọc lên tới 2000 xung/vòng, đây là kỹ thuật cơ bản về encoder thôi.

http://dientuvietnam.net/forums/showthread.php?t=2637
Luồng này là về chuẩn ICSP_BLD của picvietnam (bên dientuvietnam, anh quên viết bài bên picvietnam, nhưng nó có trong bài bootloader của Chính, anh sẽ bổ sung sau).

Chúc vui.


bluepine 26-09-2006 10:22 AM

Chào mọi người, cho em hỏi sao em không dùng được chức năng interrupt on change trên portb, em viết chương trình như thế này
.......
#INT_RB
void RB_int()
{
counted_round_value++;
printf("%ld\t",counted_round_value);// hiển thị giá trị số lần ngắt về máy tính

}


void main()
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_RB);
port_b_pullups(true);
set_tris_b(0xf0);

output_low(PIN_B0);
while(true);
}
..... em dùng 1 phím nhấn để thay đổi tín hiệu trên 1 chân (từ b4 đến b7)
khi hiển thị về máy tính thì thấy giá trị số lần ngắt tăng liên tục mặt dù chưa nhấn phím.
dòng lệnh port_b_pullups(true); để chống nhiễu do áp trôi trên portb, em đã thử bỏ đi mà kết quả vẫn không đổi.
kiểm tra lại thì phím nhấn không vấn đề gì.

scentoflove 27-09-2006 03:02 AM

Bạn chọn ngắt cạnh lên hay cạnh xuống (điện trở kéo lên chắc là ngắt cạnh xuống). Bạn nên mắc điện trở kéo lên ở mạch ngoài như vậy ổn định hơn
Nếu nút nhấn chỉ mắc 1 chân RB0 thi bạn nên set_tris_b(0x10), chân Rb1-Rb3 ko xài
Thực ra khi lúc mới học PIC viết ngắt ngoài thì bị lỗi khác (lúc chạy đúng lúc chạy sai) làm cho mình có cảm giác RB0-RB3 ngắt ko ổn định bằng RB7.

bluepine 27-09-2006 11:01 AM

Trích:

Nguyên văn bởi scentoflove (Post 5115)
Bạn chọn ngắt cạnh lên hay cạnh xuống (điện trở kéo lên chắc là ngắt cạnh xuống). Bạn nên mắc điện trở kéo lên ở mạch ngoài như vậy ổn định hơn
Nếu nút nhấn chỉ mắc 1 chân RB0 thi bạn nên set_tris_b(0x10), chân Rb1-Rb3 ko xài
Thực ra khi lúc mới học PIC viết ngắt ngoài thì bị lỗi khác (lúc chạy đúng lúc chạy sai) làm cho mình có cảm giác RB0-RB3 ngắt ko ổn định bằng RB7.

chào bạn, mình nghĩ bạn nhầm, vì mình dùng chức năng ngắt INT_RB (interupt on change) tức là chương trình ngắt sẽ được gọi khi có sự thay đổi mức trạng thái trên bất kì chân nào trong số b4 đến b7. Còn ngắt trân chân b0 như bạn nói là ngắt ngoài INT_EXT, bạn có thể vào mục help của CCsc để xem lại.
mến

bluepine 28-09-2006 12:16 PM

hỏi về hàm truyền động cơ DC
 
1 Attachment(s)
chào mọi người, khi tham khảo địa chỉ http://www.library.cmu.edu/ctms/ctms...or/digital.htm
em thấy hàm truyền động cơ DC có dạng



với các đại lượng như sau:
electrical resistance (R) = 1 ohm
*electrical inductance (L) = 0.5 H
*electromotive force constant (Ke=Kt) = 0.01 Nm/Amp
*moment of inertia of the rotor (J) = 0.01 kg*m^2/s^2
*damping ratio of the mechanical system (b) = 0.1 Nms
*input (V): Source Voltage
*output (teta dot): Rotating speed

khi tra trong trong datasheet của động cơ em (TS3078) thì thấy các đại lượng không giống với các đại lượng trên, cụ thể là không có các đại lượng damping ratio of the mechanical system (b), electromotive force constant (Ke=Kt), moment of inertia of the rotor (J),

nhưng mà trong datasheet chỉ có các đại lượng như Rated Torque(TR), Torque Constant(KT), Armature Moment of Inertia(IR)

:)các anh cho hỏi

Rated Torque(TR) ?= Rated Torque(TR)
electromotive force constant (Ke=Kt) ?= Torque Constant(KT)
moment of inertia of the rotor (J) ?= Armature Moment of Inertia(IR)

(em chỉ so sánh thấy thứ nguyên giống nhau thôi)

ai rành về thông số động cơ chỉ giùm nhé, em pót datasheet lên cho mọi người tham khảo luôn
mến

namqn 28-09-2006 06:46 PM

Câu trả lời là Yes cho cả 3 câu hỏi của em.

Vào đọc thêm ở đây:
http://namqn.byethost7.com/Motor.php
Thân,

scentoflove 28-09-2006 10:46 PM

Trích:

Nguyên văn bởi bluepine (Post 5119)
chào bạn, mình nghĩ bạn nhầm, vì mình dùng chức năng ngắt INT_RB (interupt on change) tức là chương trình ngắt sẽ được gọi khi có sự thay đổi mức trạng thái trên bất kì chân nào trong số b4 đến b7. Còn ngắt trân chân b0 như bạn nói là ngắt ngoài INT_EXT, bạn có thể vào mục help của CCsc để xem lại.
mến

Bài đó mình viết nhầm Rb4-Rb7 chứ ko phải Rb0-Rb3, set_tris_b(0x10) chân Rb6-Rb4 ko xài:)

Bạn sử dụng ngắt INT_RB như thế nào nếu ko phải là đưa tín hiệu tử mạch ngoài vào, ngắt INT_EXT cũng ngắt dựa trên tín hiệu của mạch ngoài, như vậy trong mạch bạn sử dụng thì INT_RB và INT_EXT gần giống nhau về cách gây ra ngắt là sự thay đổi trạng thái ở ngõ vào.

Mình viết bài đó là để nói kinh nghiệm thới cùi bắp mới học PIC :D.

trungkien_0914373773 03-10-2006 11:55 AM

Bác F ơi . Tôi có 1 con Pic 16F877A và một mạch cầu H , Một động cơ 1 chiều .Tôi không biết viết chương trình trong CCS như thế nào để điều khiển được tốc độ của động cơ Bác F có thể giúp tôi ko ? cảm ơn Bác F.

falleaf 03-10-2006 02:15 PM

Trích:

Nguyên văn bởi trungkien_0914373773 (Post 5225)
Bác F ơi . Tôi có 1 con Pic 16F877A và một mạch cầu H , Một động cơ 1 chiều .Tôi không biết viết chương trình trong CCS như thế nào để điều khiển được tốc độ của động cơ Bác F có thể giúp tôi ko ? cảm ơn Bác F.

Bạn đọc lại từ đầu luồng này, sẽ rất có ích cho bạn.

tinhthanthep 06-10-2006 12:19 PM

Mạch điều khiển của mình thiết kế xong roài. Falleaf cho hỏi làm thế nào để post sơ đồ mạch vẽ bằng OrCAD10.5 lên diễn đàn? (Chuyển từ OrCAD sang ảnh JPG mà hình vẽ và các ký hiệu vẫn rõ ràng)

falleaf 06-10-2006 04:38 PM

Bạn nén tất cả thành file zip gửi lên diễn đàn bằng cách Tải file đính kèm.

Nếu bạn chỉ muốn gửi hình lên diễn đàn, thì bạn có thể dùng print screen để chụp hình màn hình lại, sau đó dán vào Paint, rồi cắt cái phần hình ra, lưu lại dạng JPEG, và gửi lên photobucket.com như gửi một hình bình thường.

Chúc vui.

tinhthanthep 09-10-2006 08:58 AM

1 Attachment(s)
Đây là sơ đồ bộ điều khiển:
http://i72.photobucket.com/albums/i1.../Schematic.jpg
Phần công suất dùng chip LMD18200
Giao tiếp với PC qua RS232.
Chuẩn ICSP và Bootloader của PICvietnam
Hiển thị thông tin trên LCD 2x16
Có nút gạt chuyển chế độ manual và auto
có nút bấm start/stop, quay trái quay phải và đèn báo tương ứng.
Mạch flip-flop dùng để tăng , giảm số xung nhận được từ encoder khi quay thuận và nghịch (vì capture của PIC chỉ theo chiều tăng). Dùng 2 chip 74HC74.
Dùng 4 biến trở để điều chỉnh hệ số Kp, Ki, Kd, tốc độ bằng tay.
Các bạn thử xem với sơ đồ mạch như vậy còn có vấn đề gì nữa không?.
file orCAD mình gửi kèm theo đây

minhcuong 09-10-2006 11:13 PM

Mạch điều khiển 6 motor đồng thời + current sensing
 
1 Attachment(s)
Các anh chị em cho ý kiến nhé. Cái này tôi đã thử với 1 motor chạy khá tốt, và ổn định.

falleaf 14-10-2006 03:28 PM

Cho hỏi là mọi người đã làm xong mạch cầu điều khiển động cơ, chạy ngon chưa? Bây giờ các bạn post mạch của mình lên mạng, và chương trình chạy thử, còn có những khúc mắc gì không?

Nhờ anh Nam tổng kết lại.

Chúc vui


Múi giờ GMT. Hiện tại là 04:16 AM.

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