Ðăng Nhập

View Full Version : Hỏi về mô phỏng DC motor trong Proteus


it4rb
16-04-2009, 12:32 AM
Chào các bác, em mô phỏng một con motor dc trong proteus, dùng pwm để thay đổi tốc độ, dùng ic l6202 để thay đổi hướng, Nhưng k0 hiểu sao nó cứ chạy loạn lên,mặc dù em xem dạng sóng pwm thấy khá đúng. Cụ thể là:
+khi tốc độ thấp: đảo chiều công tắc nhưng motor ko đổi chiều
+khi tốc độ cao: quay một chặp lại đảo chiều, mặc dù công tắc ko đảo
Em mới tập làm nên gà lắm,mong các bác chỉ giáo.

it4rb
17-04-2009, 12:44 AM
Còn nữa, khi motor quay nhanh quá thì em nhìn ko ra nó quay theo chiều nào nữa, các bác cho em hỏi có phải dấu + - ở motor là chiều quay ko ạ? Còn chỉ số phía dưới motor là vận tốc hay gia tốc vậy?

mtuankct
17-04-2009, 01:24 AM
Con IC bạn dùng là môt con cầu H thôi
Bạn sử dụng nó chưa đúng nguyên lý
Để đảo chiều quay thì bạn cần đưa xung vào chấn IN1 hoặc IN2 chứ không phải là đưa thêm một con Fet vào chân SENSE như thế. Để động cơ quay theo chiều thuận thì đưa Enable lên 1 rồi đưa xung vào chân IN1 còn chân IN2 để ở mức logic 0 và ngược lại
Còn chân SENSE thì nối trực tiếp xuống đất hoặc qua điện trở sun để đo dòng điện
Bạn nên send kèm file hex đã dịch sẵn của chương trình thì mình mới kiểm tra được
Còn cái số hiện phái dưới động cơ là tốc độ thôi, đơn vị là kRPM (revolutions per minute)

vietanh
17-04-2009, 10:08 AM
tôi đa sửa lại code va mạch cho bạn chạy binh thường không có vấn đề ji

#include <16f877a.h>
#fuses HS,put,NOWDT
#use delay(clock=20000000) //// KHAI BAO TS XUNG LAM VIEC CL 20MHZ
#include <def_877a.h>
#use fast_io(c)
#use fast_io(b)
#use fast_io(a)
int16 speed=0;
///////////////////////////////////////////////////////// HAM TOC DO //////////////////////////////////////////////////////////////////////////////////////////////
void TOCDO()
{
delay_ms(200);

if(!INPUT(PIN_B0)) SPEED = SPEED + 10; // LU Y KHI VIET THE NAY KHI TANG QUA GIA TRI 1023 NO NHAY VE MO hay giam qua 0 no nhay gia tri cao nhat
DELAY_US(20);
if(!INPUT(PIN_B1)) SPEED = SPEED - 10; // CHO NEN BAN CAN THUC HIEN THEM bp SO SANH DE DUA VE GIA TRI DUNG TRONG KHOANG TU 0>>> 1023


}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////// CTC ////////////////////////////////////////////////////////////////////////////////////////////////////
void main()
{
setup_timer_2(T2_DIV_BY_16,255,1);
TRISC=0x00;
PORTC=0x00;
set_tris_a(0b00000111); //////// TU A0 DEN A3 LA CHAN NHAP DL
set_tris_b(0b00000011); ////////////////BO//////B1 //////////////////

while(TRUE) {

tocdo(); // goi thang toc do
setup_ccp1(CCP_PWM); //GOI hay thiet lap che do dc do rong xung cho chan C2
set_pwm1_duty(speed); // DAT GIA TRI CHO MOT KHOANG CHU KY XUNG XUAT RA


if(!input(pin_a0)){ // quay chieu thuan

output_high(pin_c0); //// THAY DOI CHIEU TUC IN1----- IN2 DAO CHIEU NHAU
output_low(pin_c3);

output_high(pin_d0); /// cho them cai led hien thi cho mau
output_low(pin_d1);

}

if(!input(pin_a1)) { /// chieu nguoc

output_low(pin_c0);
output_high(pin_c3);


output_low(pin_d0); /// cho them cai led hien thi cho mau
output_high(pin_d1);


}


if(!input(pin_a2)){ /// cho them nut tat nua vao

output_c(0x00); // tat ca port c neu truong hop cac chan khac van lam viec khac thi dung OUTPUT_LOW(PIN_......);
setup_ccp1(ccp_off); /// tat con vit nay di
output_d(0x00); // tat ca port d cho nhanh //// TRUONG TU TREN
SPEED=0; // CHO GIA TRI TOC DO ====== MO

}

} // DAU NGOAC NHON CUA WHILE
} // HAM MAIN
/////////////////////////////////////////////////////// KET THUC ////////////////////////////////////////////////////////////////////////////////////


TRANG WEB NÀY BỊ LỖI CODE CỦA BỘ GÕ LẠI PHAI CAI UNIKEY === ADMIN SỦA LẠI ĐI NHÉ

it4rb
17-04-2009, 03:43 PM
Cám ơn các bác, nhưng mà em vẫn chưa hiểu lắm, em xem datasheet của nó thì thấy nguồn nuôi motor cấp từ 2 chân vs và sense nên mới đưa xung đã điều chế vô đó. Còn chân Enable chỉ chophép/ko cho phép hoạt động thôi mà. Các bác giải thích cặn kẽ giùm em xíu nha.
http://www.picvietnam.com/forum/attachment.php?attachmentid=2442&d=1239954178

vietanh
17-04-2009, 04:14 PM
bạn nên nhìn đọc cho kỹ trước khi hỏi . chỉ cần nhin sơ đồ khối đã chân nào làm nhiêm vu gì.. tuy tôi không học chuyên ngành điện tư rõ ràng là in1 int2 la chân cấp nguồn cho cổng logic nếu int1 có điên áp cao thì thằng logic phia cầu trái được cấp nguồn nên cho xung dche di qua tới mạch cầu l vế trái làm việc điên. áp lên cao và ngược lại .. bạn cứ tượng như là dùng 4 cái công tắc cho 1 mô to ban muốn đảo chiều nào mà không đươc,,,,

mtuankct
17-04-2009, 06:13 PM
Bạn nên đọc lại nguyên lý hoạt động của cầu H, có thể tìm trên diễn đàn này chắc cũng có mà. Lúc mới bắt đầu mình cũng chẳng hiểu cầu H là cái gì :D
@vietanh: Mình thấy bộ gõ tiếng Việt của forum hoạt động bình thường mà

baulong
11-11-2009, 12:18 PM
Bạn nên đọc lại nguyên lý hoạt động của cầu H, có thể tìm trên diễn đàn này chắc cũng có mà. Lúc mới bắt đầu mình cũng chẳng hiểu cầu H là cái gì :D
@vietanh: Mình thấy bộ gõ tiếng Việt của forum hoạt động bình thường mà

Ban đầu nhấn save file lại thì hiện ra đuôi .rar nhưng sau đó thì lại hiện ra đuôi .htm để tải trang này... nhiều lần rùi không biết có phải chỉ mình em bị không nhỉ....