thiết kế mạch điều khiển động cơ một chiều gồm: quay thuận, quay nghịch, dừng, tăng tốc, giảm tốc. Mạch được mô phỏng trực tiếp trên proteus 7.8 cùng với code sử dụng keilc viết. Mạch đã được kiểm nghiệm và chạy tốt trên cả mạch lắp ráp thật. Có ứng dụng trong thang máy, công nghệ tời.
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA ĐIỆN – ĐIỆN TỬ BÀI TẬP LỚN VI XỬ LÝ Thiết kế mạch điều khiển tốc độ của động cơ một chiều, bao gồm các chức năng điều khiển quay thuận, nghịch, tăng tốc độ , giảm tốc độ, dừng. Giáo viên hướng dẫn : Nhóm sinh viên: TS. Trần Văn Hưng : Ngyên Quý Tuấn Anh : Cao Văn Đức : Triệu Trung Hiếu Lớp: Kỹ thuật viễn thông_K52 HÀ NỘI – 2013 MỤC LỤC LỜI NÓI ĐẦU 1 I. Thiết kế sơ đồ nguyên lý 2 1. Yêu cầu 2 1.1. Nhiệm vụ 2 1.2. Linh kiện 2 2. Sơ đồ nguyên lý 6 II. Thiết kế mạch 7 1. Yêu cầu và nhiệm vụ 7 1.1. Yêu cầu 7 1.2. Nhiệm vụ 7 2. Sơ đồ khối toàn chương trình 13 3. Code 14 III. Kết quả 17 1. Mô phỏng 17 2. Mạch thật 18 BTL-VXL Điều khiển động cơ một chiều. 1 LỜI NÓI ĐẦU Động cơ 1 chiều có nhiều ứng dụng trong điều khiển và sản xuất nhất là trong công nghiệp. Trong đó nó đòi hỏi là động cơ phải có nhiều cấp tốc độ có thể tăng giảm dễ dàng. Với sự ra đời và phát triển của vi xử lý thì vấn đề điều khiển động cơ 1 chiều không còn là vấn đề khó khăn nữa. Động cơ có thể điều khiển với nhiều cấp tốc độ khác nhau và điều khiển dừng, đảo chiểu, nhanh chậm dễ dàng được. Vi xử lý 8501 là loại dòng vi xử lý khá là thông dụng đã có mặt từ rất lâu và được ứng dụng vào nhiều các thiết bị điều khiển hay tự động hóa. Nên việc điều khiển động cơ 1 chiều với dòng vi xử lý này là một phương pháp tối ưu và kinh tế đối với bài toán điều khiển động cơ DC ngày nay. Trên cơ sở những kiến thức đã học từ môn vi xử lý. Chúng em đã thực hiện bài tập: Điều khiển động cơ một chiều (DC). Chúng em cám ơn thầy Trần Văn Hưng đã hướng dẫn chúng em làm bài tập này! BTL-VXL Điều khiển động cơ một chiều. 2 I. Thiết kế sơ đồ nguyên lý 1. Yêu cầu 1.1. Nhiệm vụ Động cơ điện một chiều là động cơ điện hoạt động với dòng điện một chiều, động cơ sẽ quay khi có dòng điện một chiều đi qua. Động cơ điện một chiều trong dân dụng thường là các dạng động cơ hoạt động với điện áp thấp, dùng với những tải nhỏ. Trong công nghiệp, động cơ điện một chiều được sử dụng ở những nơi yêu cầu moment mở máy lớn hoặc yêu cầu thay đổi tốc độ trong phạm vi rộng. Động cơ DC sử dụng trong dân dụng thường chỉ hoạt động ở điện áp +24 VDC trở lại, ở đây ta sử dụng động cơ +12VDC có đảo chiều quay. Vậy nhiệm vụ của chúng ta là phải thiết kế mạch điều khiển thuận nghịch và điều khiển tốc độ động cơ. 1.2. Linh kiện 1.2.1. Chip AT89C52 BTL-VXL Điều khiển động cơ một chiều. 3 1.2.2. Motor DC Stator của động cơ điện một chiều thường là một hay nhiều cặp nam châm vĩnh cửu, hay nam châm điện, rotor có các cuộn dây quấn và được nối với nguồn điện một chiều, một phần quan trọng khác của động cơ điện một chiều là bộ phận chỉnh lưu, nó có nhiệm vụ là đổi chiều dòng điện trong khi chuyển động quay của rotor là liên tục. Thông thường bộ phận này gồm có một bộ cổ góp và một bộ chổi than tiếp xúc với cổ góp. 1.2.3. Transistor BTL-VXL Điều khiển động cơ một chiều. 4 Các transistor được dùng để tạo “cầu H” đảo chiều động cơ. Với các động cơ một chiều có thể đảo chiều quay, khi ta cấp dòng theo chiều ngược lại với chiều đang được cấp dòng thì động cơ sẽ đổi chiều quay. Tuy nhiên chú ý phải dừng động cơ, đợi trễ rồi mới đảo chiều quay nếu không sẽ bị giật (rung lắc mạnh) ảnh hưởng tới mạch. Khi tác động điều khiển chiều quay động cơ thuận hay nghịch, ta mở chéo dẫn thông các cặp khoá (K1 và K4) hoặc (K2 và K3). Chú ý: Tác động nhầm khoá sẽ dẫn thông dòng thẳng từ nguồn xống GND gây chập mạch. Ta nên để thời gian trễ khi tác động các cặp khoá cỡ vài chục ms, ví dụ để tác động động cơ quay thuận ta thực hiện 3 thao tác: mở K1, trễ, mở K4. 1.2.4. Diot Diode trong mạch cầu H mắc song song với cực CE để tránh hiện tượng phóng điện làm hỏng khóa Q. 1.2.5. IC ổn áp BTL-VXL Điều khiển động cơ một chiều. 5 Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản. Các loại ổn áp thường được sử dụng là IC 78xx, với xx là điện áp cần ổn áp. Ví dụ 7805 ổn áp 5V, 7812 ổn áp 12V. Việc dùng các loại IC ổn áp 78xx tương tự nhau, dưới đây là minh họa cho IC ổn áp 7812 và 7805. IC 7812 IC 7805 Sơ đồ phía dưới IC 78xx có 3 chân: chân số 1 là chân IN, chân số 2 là chân GND và chân số 3 là chân OUT. Ngõ ra OUT luôn ổn định ở 5V/12V dù điện áp từ nguồn cung cấp thay đổi. Mạch này dùng để bảo vệ những mạch điện chỉ hoạt động ở điện áp 5V hoặc 12V. Nếu nguồn điện có sự cố đột ngột: điện áp tăng cao thì mạch điện vẫn hoạt động ổn định nhờ có IC 7805/7812 vẫn giữ được điện áp ở ngõ ra OUT 5V/12V không đổi. Chú ý: điện áp đặt trước IC78xx phải lớn hơn điện áp cần ổn áp từ 1.5V đến 2V. 1.2.6. Thạch anh BTL-VXL Điều khiển động cơ một chiều. 6 Thạch anh định tần cho xung nhịp. 1.2.7. Tụ điện Tụ điện 33pF dùng trong mạch cùng với thạch anh tạo xung dao động cho chip. Tụ điện 10uF dùng trong mạch nguồn 5VDC cản trở dòng xoay chiều. Tương tự tụ 1000uF dùng trong mạch nguồn 12VDC điều khiển động cơ. 1.2.8. Điện trở Trong mạch ta sử dụng điện trở 220 Ohm cho dèn báo hiệu bật công tắc, điện trở 1K và 5.1K dùng trong mạch điều khiển Motor, điện trở10K cho chân reset. 2. Sơ đồ nguyên lý BTL-VXL Điều khiển động cơ một chiều. 7 II. Thiết kế mạch 1. Yêu cầu và nhiệm vụ 1.1. Yêu cầu Thiết kế mạch điều khiển động cơ một chiều với yêu cầu: quay thuận, quay nghịch và 3 tốc độ khác nhau nhưng nhóm chúng em đã tối ưu bằng cách thiết kế mạch với yêu cầu: “dừng, quay thuận, quay nghịch, tăng tốc và giảm tốc”. 1.2. Nhiệm vụ Thiết kế 5 node với 5 chế độ: Dừng-Thuận-Nghịch-Tăng tốc- Giảm tốc. BTL-VXL Điều khiển động cơ một chiều. 8 Để thay đổi tốc độ ta sử dụng phương pháp điều chế độ rộng xung PWM, hoạt động dựa theo nguyên tắc cấp nguồn cho mô tơ bằng chuỗi xung đóng mở với tốc độ nhanh. Nguồn DC được chuyển đổi thành tín hiệu xung vuông rồi cấp cho động cơ. Dòng điều khiển tốc độ quay sẽ là đường điện áp trung bình của dãy xung này. Nếu tấn số chuyển mạch đủ lớn mô tơ sẽ chạy với tốc độ đều đặn phụ thuộc vào mô men của trục quay. Với phương pháp PWM điều chỉnh tốc độ của mô tơ thông qua việc điều chế độ rộng của xung, tức là thời gian “đầy xung” (“on”) của chuỗi xung vuông cấp cho mô tơ. Việc điều chỉnh này sẽ tác động đến công suất trung bình cấp cho mô tơ và do đó sẽ thay đổi tốc độ của mô tơ cần điều khiển. Như trên hình, với dãy xung điều khiển trên cùng, xung ON có độ rộng nhỏ nên động cơ chạy chậm. Nếu độ rộng xung ON càng lớn (như dãy xung thứ 2 và thứ 3) động cơ DC chạy càng nhanh. Cụ thể, muốn thay đổi tốc độ ta sử dụng Timer cấp điện đóng mở các cặp khoá theo dạng xung với chu kỳ cố định. - Muốn tăng tốc động cơ ta cho tác động sườn dương nhiều, sườn âm ít. - Muốn giảm tốc động cơ ta cho tác động sườn dương ít, sườn âm nhiều. Điện áp điều khiển là đường trung bình của các xung phát ra, vì vậy khi thay đổi biên độ xung ta sẽ tạo ra sự thay đổi của đường điện áp trung bình theo ý muốn. Tạo PWM từ ngắt Timer 0 Tạo hàm ngắt Để tạo được hàm ngắt ta phải làm những công việc sau đây: [...]... {quaynghich();break;} } return (n); } BTL-VXL Điều khiển động cơ một chiều 16 // Chuong trinh chinh void main() { khoitaohethong(); while(1) //lap vo han { tangtoc(); giamtoc(); chonchedo(); } } III Kết quả 1 Mô phỏng Quay thuận Quay nghịch: BTL-VXL Điều khiển động cơ một chiều 17 Dừng: 2 Mạch thật BTL-VXL Điều khiển động cơ một chiều 18 BTL-VXL Điều khiển động cơ một chiều 19 ... ngắt mới xảy ra BTL-VXL Điều khiển động cơ một chiều 9 Các giá trị thanh ghi TCON Tạo PWM có chu kì max: 100us Tạo timer 0 Do yêu cầu của bài toán là điều khiển tốc độ động cơ quay nhanh và quay chậm trong khi chạy thuận nghịch nên dữ nguyên chu kì và thay đổi thời gian mở Yêu cầu như: Động cơ quay thuận nghịch bình thường: 1000us Động cơ tăng tốc lớn nhất: 100us Động cơ giảm tốc lớn nhất: 2000us Khi... điều khiển nhanh chậm của động cơ ta phải tạo ra các xung có độ rộng là 5%, 10% .95%, 100% Như trên ta có khoảng thời gian kéo lên 5V là T1 Xung có độ rộng 10% tức là T1/T=10% Nguyên lý hoạt động PWM PWM: Đưa ra để mở các transitor, xung có độ rộng lớn hơn thì transitor sẽ mở lâu hơn động cơ sẽ quay nhanh hơn nhưng mà không tuyến tính Không có xung thì động cơ sẽ không quay, xung có độ rộng 100% thì động. .. chạy thì bộ đếm của timer sẽ đếm dao động thạch anh, cứ 12 dao động cửa thạch anh thì bộ đếm timer 0 TL0 sẽ đếm tăng 1 , có thể nói timer 0 đếm chu kì máy đối với chế độ 8bit TL0 là thanh ghi 8 bit nó đếm từ 0 đến 255 Nếu nó đếm đến 256 thì nó tràn bộ đếm TL0 lại quay về 0 và cờ ngắt TF0 tự động nạp lại giá trị 1 và ngắt được xảy ra BTL-VXL Điều khiển động cơ một chiều 10 Như đối với bài toán này thì... toán là điều khiển thuận nghịch nên ta cần phải lưu biến PWM này Do PWM có chu kì không đổi nên do đó ta chỉ cần thay đổi phantram_PWM là có thể thay đổi được độ rộng xung BTL-VXL Điều khiển động cơ một chiều 12 2 Sơ đồ khối toàn chương trình Phục vụ ngắt Timer 0 Dem++ Dem > phantram_PWM Dem=2 0 PWM=0 PWM=1 Dem=0 Exit Chương trình chính Begin Khai báo các biến Phục vụ ngắt Timer0 Khởi động Timer0 Stop... các biến Phục vụ ngắt Timer0 Khởi động Timer0 Stop Thuận Nghịch Tăng tốc Giảm tốc P1_ P1_ P1_ P1_ P1_ exit P0_0=0; P0_1=0; P0_2=0; P0_3=0; exit P0_0=PWM; P0_1=0; P0_2=0; P0_3=PWM; BTL-VXL Điều khiển động cơ một chiều exit P0_0=0; P0_1=PWM; P0_2=PWM; P0_3=0; exit phantram_PWM exit phantram_PWM++ 13 3 Code #include // Dinh nghia cac nut nhan #define stop P3_0 #define thuan P3_1 #define nghich... // Ngat tao ra PWM void ngat_timer0(void) interrupt 1 //Ngat timer 0 { TR0=0; // Dung chay timer0 TF0=0; // Xoa co, o che do co tu duoc xoa dem++; if(dem>=phantram_PWM) { PWM=1; BTL-VXL Điều khiển động cơ một chiều 14 } // Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else { PWM=0; } if(dem==20) dem=0; // Neu dem du 20 thi gan lai bang 0 de bat dau chu ki moi TR0=1; // Cho chay timer0... P0_2=PWM; P0_3=0; } // Ham dieu khien tang toc do unsigned char tangtoc(void) { if(tang==0) // nếu nút tăng được ấn { while(tang==0)// trong khi nút tăng được ấn { ;//không làm j cả } BTL-VXL Điều khiển động cơ một chiều 15 phantram_PWM ; delay(100); if(phantram_PWM . Động cơ điện một chiều là động cơ điện hoạt động với dòng điện một chiều, động cơ sẽ quay khi có dòng điện một chiều đi qua. Động cơ điện một chiều trong dân dụng thường là các dạng động cơ. nghịch và điều khiển tốc độ động cơ. 1.2. Linh kiện 1.2.1. Chip AT89C52 BTL-VXL Điều khiển động cơ một chiều. 3 1.2.2. Motor DC Stator của động cơ điện một chiều thường là một hay nhiều. trong mạch điều khiển Motor, điện trở10K cho chân reset. 2. Sơ đồ nguyên lý BTL-VXL Điều khiển động cơ một chiều. 7 II. Thiết kế mạch 1. Yêu cầu và nhiệm vụ 1.1. Yêu cầu Thiết kế mạch