Đề tài Vi điều khiển 8051 điều khiển động cơ dc bằng xung pwm

Ngày nay đa số các lĩnh vực sản xuất , điều khiển , giám sát , đo lường đều được trang bị hệ thống tự động hóa . Một trong các vi mạch được sử dụng là vi điều khiển , nó được ứng dụng rất phổ biến trong các lĩnh vực này . Vi điều khiển quản lý hoạt động của hệ thống thông qua phần mềm , nhờ vậy mà chúng ta có thể thay đổi 1 cách dễ dàng hoạt động của hệ thống bằng cách thay đổi thông số của chương trình . Vi điều khiển hoạt động theo chương trình đã nạp sẵn , đọc các tín hiệu từ bên ngoài sau đó đưa vào để xử lý ,trên cơ sở đố vi điều khiển đưa ra các tín hiệu điều khiển để điều khiển các thiết bị bên ngoài hoạt động theo đúng yêu cầu , thông số của chương trình cài đặt sẵn bên trong vi điều khiển . Trên thực tế vi điều khiển có mặt trong hầu hết các thiết bị , đồ dùng của chúng ta và ngày càng trở nên phổ biến như : lò vi sóng ,máy giặt , hệ thống cảnh báo , hệ thống đèn giao thông Trong báo cáo này chúng em xin được phép giới thiệu về một trong các hệ thống điều khiển sử dụng vi điều khiển 8051 để điều khiển động cơ DC bằng xung PWM . Để điều khiển tốc độ động cơ DC người ta có thể dùng nhiều phương pháp khác nhau trong đó có một phương pháp hết sức quan trọng và thông dụng là phương pháp điều chế độ rộng xung kích (PWM), có nghĩa là thay đổi độ rộng xung kích để điều khiển linh kiện đóng ngắt (SCR hay Transistor), từ đó điều khiển tốc độ động cơ. Bộ PWM có thể tạo ra từ các linh kiện điện tử. Với yêu cầu dùng vi điều khiển 8051để điều khiển động cơ quay thuận-nghịch và thay đổi tốc độ, ta sử dụng chương trình để tạo xung PWM bên trong vi điều khiển AT89S52 tại chân P2.6 . Tại chân này khi hoạt động sẽ xuất chuỗi xung vuông , độ rộng điều chỉnh được dễ dàng. Xung ra này dùng để tạo tín hiệu đóng ngắt Trasistor trong mạch động lực, với độ rộng xác định sẽ tạo ra một điện áp trung bình xác định. Thay đổi độ rộng xung sẽ thay đổi điện áp trung bình và do đó thay đổi được tốc độ động cơ.

pdf21 trang | Chia sẻ: lvbuiluyen | Ngày: 16/12/2013 | Lượt xem: 10016 | Lượt tải: 9download
Bạn đang xem nội dung tài liệu Đề tài Vi điều khiển 8051 điều khiển động cơ dc bằng xung pwm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG Bài tiểu luận Vi điều khiển và ứng dụng ĐỀ TÀI : VI ĐIỀU KHIỂN 8051 ĐIỀU KHIỂN ĐỘNG CƠ DC BẰNG XUNG PWM Giảng viên : Nguyễn Huy Dũng Sinh viên : Phạm Nho Biển Đào thị Năm Tạ Hữu Quang Vinh 1 Mục lục 1. Giới thiệu 2. Tổng quan kỹ thuật vi điều khiển 8051 3. Xung PWM - Pulse Width Modulation 4. Mạch cầu H 5. Động cơ 1 chiều 6. Mạch nguồn 7805 7. Sơ đồ nguyên lý 2 8. Chương trình 9. Mạch in 1. Giới thiệu Ngày nay đa số các lĩnh vực sản xuất , điều khiển , giám sát , đo lường đều được trang bị hệ thống tự động hóa . Một trong các vi mạch được sử dụng là vi điều khiển , nó được ứng dụng rất phổ biến trong các lĩnh vực này . Vi điều khiển quản lý hoạt động của hệ thống thông qua phần mềm , nhờ vậy mà chúng ta có thể thay đổi 1 cách dễ dàng hoạt động của hệ thống bằng cách thay đổi thông số của chương trình . Vi điều khiển hoạt động theo chương trình đã nạp sẵn , đọc các tín hiệu từ bên ngoài sau đó đưa vào để xử lý ,trên cơ sở đố vi điều khiển đưa ra các tín hiệu điều khiển để điều khiển các thiết bị bên ngoài hoạt động theo đúng yêu cầu , thông số của chương trình cài đặt sẵn bên trong vi điều khiển . Trên thực tế vi điều khiển có mặt trong hầu hết các thiết bị , đồ dùng của chúng ta và ngày càng trở nên phổ biến như : lò vi sóng ,máy giặt , hệ thống cảnh báo , hệ thống đèn giao thông … Trong báo cáo này chúng em xin được phép giới thiệu về một trong các hệ thống điều khiển sử dụng vi điều khiển 8051 để điều khiển động cơ DC bằng xung PWM . Để điều khiển tốc độ động cơ DC người ta có thể dùng nhiều phương pháp khác nhau trong đó có một phương pháp hết sức quan trọng và thông dụng là phương pháp điều chế độ rộng xung kích (PWM), có nghĩa là thay đổi độ rộng xung kích để điều khiển linh kiện đóng ngắt (SCR hay Transistor), từ đó điều khiển tốc độ động cơ. Bộ PWM có thể tạo ra từ các linh kiện điện tử. Với yêu cầu dùng vi điều khiển 8051để điều khiển động cơ quay thuận-nghịch và thay đổi tốc độ, ta sử dụng chương trình để tạo xung PWM bên trong vi điều khiển AT89S52 tại chân P2.6 . Tại chân này khi hoạt động sẽ xuất chuỗi xung vuông , độ rộng điều chỉnh được dễ dàng. Xung ra này dùng để tạo tín hiệu đóng ngắt Trasistor trong mạch động lực, với độ rộng xác định sẽ tạo ra một điện áp trung bình xác định. Thay đổi độ rộng xung sẽ thay đổi điện áp trung bình và do đó thay đổi được tốc độ động cơ. 2. Tổng quan vi điều khiển 8051 Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051. Hãng Intel ký hiệu nó như là MCS51 3 Đặc tính Số lượng ROM trên chíp 8 k byte RAM 128 byte Bộ định thời 2 Các chân vào ra 32 Cổng nối tiếp 1 Nguồn ngắt 6 Các đặc tính của 8051 đầu tiên Cấu tạo và chức năng các khối của AT89S52. 4 5 Các đặc tính của AT89S52 CPU( CPU centralprocessing unit) bao gồm: Thanh ghi tích lũy A Thanh ghi tích lũy phụ B Đơn vị logic học (ALU) Thanh ghi từ trạng thái chương trình Bốn băng thanh ghi 6 Con trỏ ngăn xếp Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash. Bộ nhớ dữ liệu( RAM) gồm 256 byte. Bộ UART, có chức năng truyền nhận nối tiếp. 3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sự kiện. Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong. Bộ lập trình( ghi chương trình lên Flash ROM) cho phép người sử dụng có thể nạp các chương trình cho chíp mà không cần các bộ nạp chuyên dụng. Bộ chia tần số với hệ số chia là 12. 4 cổng xuất nhập với 32 chân. Chức năng các chân của AT89S52 Port 0( P0.0=>P0.7) Port 0 gồm 8 chân, ngoài chức năng xuất nhập, port 0 còn là bus đa hợp dữ liệu và địa chỉ( AD0-AD7), chức năng này sẽ được sử dụng khi 89s52 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ, mạch PIO… Port 1( P1.0=>P1.7) Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác. Port1 có thể xuất nhập theo bit và theo byte. Port 2( P2.0=>P2.7) Port 2 ngoài chức năng là cổng vào/ra như Port 0 và 1 còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài. Port 3 Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể như sau: Bit Tên Chức năng P3.0 RXD Dữ liệu nhận cho Port nối tiếp P3.1 TXD Dữ liệu truyền cho Port nối tiếp P3.2 INT0 Ngắt bên ngoài 0 7 P3.3 INT1 Ngắt ngoài 1 P3.4 TO Ngõ vào của Timer/counter0 P3.5 T1 Ngõ vào của Timer/counter1 P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài. P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài. Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài. Chân ALE : ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 7473. Chân /EA : Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài. EA=1 thì thực hiện chương trình trong RAM nội. EA=0 thực hiện ở RAM ngoài. RST( reset) : Ngõ vào reset trên chân số 9. khi RST=1 thì bộ vi điều khiển sẽ được khởi động lại thiết lập ban đầu. XTAL1, XTAL2 : 2 chân này được nối song song với thạch anh tần số max=33 Mhz để tạo dao động cho bộ vi điều khiển. Vcc, GND : cung cấp nguồn nuôi cho bộ vi điều khiển. cấp qua chân 20 và 40. 3. Xung PWM - Pulse Width Modulation Phương pháp điều chế PWM có tên tiếng anh là Pulse Width Modulation là phương pháp điều chỉnh điện áp ra tải hay nói cách khác là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông dẫm đếm sự thay đổi điện áp ra . Các PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của sườn dương hay hoặc là sườn âm. Điều chế độ rộng xung (PWM) là một kỹ thuật thường được sử dụng để kiểm soát tính năng của các thiết bị quán tính điện, áp dụng thực tế trong các thiết bị chuyển mạch điện điện tử hiện đại. Tần số chuyển mạch PWM nhanh hơn nhiều so với các tác động ảnh hưởng đến tải, cụ thể ở đây là các thiết bị sử dụng điện. Thông thường các bộ chuyển đổi thực hiện nhiều lần một phút trong một bếp điện, 120 Hz trong một đèn mờ, từ vài kilohertz (kHz) đến hàng chục kHz cho một ổ đĩa động cơ và cũng vào hàng chục hoặc hàng trăm kHz, bộ khuyếch đại âm thanh và máy tính nguồn cung cấp điện. 8 Ví dụ về PWM trong 1 ổ đĩa động cơ PWM cũng đã được sử dụng trong một số hệ thống thông tin chu kỳ nhiệm vụ của nó đã được sử dụng để truyền đạt thông tin qua một kênh thông tin liên lạc . Trong báo cáo này để điều khiển tốc độ dùng chỉnh độ rộng xung (Pulse Width Modulation -PWM) hay còn được các đội robot gọi là: băm xung. Là cách phổ biến để có thể thay đổi tốc độ của robot. Điều khiển độ rộng của xung được làm bằng cách tắt bật nhanh nguồn điện lên động cơ. Nguồn áp 1 chiều DC sẽ chuyển thành tín hiệu xung vuông, thay đổi từ 12V xuống 0V.Nếu tần số bật tắt mà đủ cao, motor sẽ chạy ở một tốc độ ổn định nhờ mômen quay.Bằng cách thay đổi chu kỳ hoạt động của tín hiệu (thay đổi độ rộng xung – PWM), tức là khoảng thời gian “Bật”, nguồn điện trung bình đặt lên động cơ sẽ thay đổi và dẫn đến thay đổi tốc độ. 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 9 Ưu điểm: - Transistor ở lối ra chỉ có duy nhất hai trạng thái (ON hoặc OFF) do đó loại bỏ được mất mát về năng lượng đốt nóng hay năng lượng rò rỉ tại lối ra. - Dải điều khiển rộng hơn so với mạch điều chỉnh tuyến tính. - Tốc độ mô tơ quay nhanh hơn khi cấp chuỗi xung điều chế theo kiểu PWM so với khi cấp một điện áp tương đương với điện áp trung bình của chuỗi xung PWM. Nhược điểm: - Cần các mạch điện tử bổ trợ - giá thành cao - Các xung kích lên điện áp cao (12 - 24V) có thể gây nên tiếng ồn nếu mô tơ không được gắn chặt và tiếng ồn này sẽ tăng lên nếu gặp phải trường hợp cộng hưởng của vỏ. - Ngoài ra việc dùng chuỗi xung điều chế PWM có thể làm giảm tuổi thọ của mô tơ. 4. Mạch cầu H Mạch cầu H là mạch được cấu tạo bởi 4 transitor hay là Fet. Đôi khi mạch cầu H cũng được cấu tạo bởi 2 transitor hay Fet. Tác dụng của transitor và Fet là các van đóng mở dẫn dòng điện từ nguồn xuống tải với công suất lớn. Tìn hiệu điều khiển các van là tín hiệu nhỏ (điện áp hay dòng điện) và cho dẫn dòng và điện áp lớn để cung cấp cho tải. Tín hiệu điều khiển của điều khiển là nhỏ thường là tín hiệu đầu ra của vi điều khiển là nhỏ hơn 5V (do các điều chế PWM) mà điều khiển động cơ cần dòng điện và điện áp lớn. Các van điều khiển hay các chân điều khiển chỉ cần tín hiệu nhỏ (Điện áp hay dòng điện) là mở khóa (Transitor) dẫn dòng cho tải. Nên thế mới dùng mạch cầu H Mạch cầu H có thể đảo chiều dòng điện qua tải nên thế nó hay được dùng trong các mạch điều khiển động cơ DC và các mạch băm áp. Đối với mạch điều khiển động cơ thì mạch cầu H có thể đảo chiều động cơ quá là đơn giản. Chỉ cần mở khóa các van đúng chiều mà mình muốn. Giả sử có một động cơ DC có 2 đầu A và B, nối 2 đầu dây này với một nguồn điện DC (ắc qui điện – battery). Nếu nối A với cực (+), B với cực (-) mà động cơ chạy theo chiều thuận (kim đồng hồ) thì khi đảo cực đấu dây (A với (-), B với (+) thì động cơ sẽ đảo chiều quay , mạch cầu H (H-Bridge Circuit) sẽ giúp bạn. Như thế, mạch cầu H chỉ là một mạch điện giúp đảo chiều dòng điện qua một đối tượng . 10 Mạch cầu H. Trong hình 2 đầu V và GND là 2 đầu (+) và (-) của ắc qui, “đối tượng” là động cơ DC mà chúng ta cần điều khiển, “đối tượng” này có 2 đầu A và B, mục đích điều khiển là cho phép dòng điện qua “đối tượng” theo chiều A đến B hoặc B đến A. Thành phần chính tạo nên mạch cầu H của chúng ta chính là 4 “khóa” L1, L2, R1 và R2 (L: Left, R:Right). Ở điều kiện bình thường 4 khóa này “mở”, mạch cầu H không hoạt động. Chúng ta sẽ khảo sát hoạt động của mạch cầu H thông qua các hình minh họa có hình dạng dưới đây : 11 Nguyên lý hoạt động mạch cầu H. Giả sử bằng cách nào đó mà 2 khóa L1 và R2 được “đóng lại” (L2 và R1 vẫn mở), dễ dàng hình dung có một dòng điện chạy từ V qua khóa L1 đến đầu A và xuyên qua đối tượng đến đầu B của nó trước khi qua khóa R2 và về GND (như hình a). Như thế, với giả sử này sẽ có dòng điện chạy qua đối tượng theo chiều từ A đến B. Bây giờ hãy giả sử khác đi rằng R1 và L2 đóng trong khi L1 và R2 mở, dòng điện lại xuất hiện và lần này nó sẽ chạy qua đối tượng theo chiều từ B đến A như trong hình b (V->R1->B->A->L2->GND). Chúng ta có thể dùng mạch cầu H để đảo chiều dòng điện qua một “đối tượng” (hay cụ thể, đảo chiều quay động cơ) bằng “một cách nào đó”. Nếu đóng đồng thời 2 khóa ở cùng một bên (L1 và L2 hoặc R1 và R2) hoặc thậm chí đóng cả 4 khóa thì sẽ xảy ra hiện tượng “ngắn mạch” (short circuit), V và GND gần như nối trực tiếp với nhau và hiển nhiên ắc qui sẽ bị hỏng hoặc nguy hiểm hơn là cháy nổ mạch xảy ra. Cách đóng các khóa như thế này sẽ làm ảnh hưởng đối với mạch cầu H 5. Động cơ 1 chiều Độ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ơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như công nghiệp. Thông thường động cơ điện một chiều chỉ chạy ở một tốc độ duy nhất khi nối với nguồn điện, tuy nhiên vẫn có thể điều khiển tốc độ và chiều quay của động cơ với sự hỗ trợ của các mạch điện tử cùng phương pháp PWM. 12 Phần chính gồm Stato(phần đứng yên) với các cực từ (bằng nam châm vĩnh cửu hoặc nam châm điện), Roto với các cuộn dây quấn, cổ góp cùng chổi điện. 6. Mạch nguồn 7805 Linh Kiện : IC 7805 là IC ổn áp 5V 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 Sơ đồ phía dưới IC 7805 có 3 chân: 13 Ngõ ra OUT luôn ổn định ở 5V 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 (các loại IC thường hoạt động ở điện áp này). 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 vẫn giữ được điện áp ở ngõ ra OUT 5V không đổi . Mạch trên lấy nguồn một chiều từ một máy biến áp với điện áp từ 7V đến 9V để đưa vào ngõ IN. Khi kết nối mạch điện, do nhiều nguyên nhân, người dùng dễ nhầm lẫn cực tính của nguồn cung cấp khi đấu nối vào mạch, trong trường hợp này rất dễ ảnh hưởng đến các linh kiện trên board mạch. Vì lí do đó một diode cầu được lắp thêm vào mạch, diode cầu đảm bảo cực tính của nguồn cấp cho mạch theo một chiều duy nhất, và nguời dùng cũng không cần quan tâm đến cực tính của nguồn khi nối vào ngõ IN nữa. Điện áp đặt trước IC7805 phải lớn hơn điện áp cần ổn áp từ 1.5V đến 2V 7. Sơ đồ nguyên lý Sơ đồ khối 14 Tín hiệu vào Khối điều khiển trung tâm Mạch cầu H Motor DC Khối nguồn 5V Sơ đồ nguyên lý 15 Lưu đồ thuật toán : Y N Y N Y N Y N Y N 16 BEGIN Khởi tạo cấu hình xung PWM Xử lý quay thuậnQuay thuận Quay nghịch Tăng tốc Giảm tốc Xử lý quay nghịch Xử lý tốc độ tăng Xử lý tốc độ giảm Điều khiển động cơ quay END Ngừng động cơ Stop 8. Chương trình #include char duty=0,pwm=0;// Gia tri toc do ban dau unsigned char t=0; bit enable_pwm=0,rl=0; void left(void); void right(void); void init_timer()//khoi tao ban dau cho ngat { //----------------thiet lap tna so bus--------------------- TMOD=0x22;//chon timer 0 che do 8 bit tu lap lai TH0=0x00;//thoi gian ngat ~140us TL0=0xFC;//thoi gian ngat ~140us ET0=1;// Cho phep ngat timer 0 TR0=1;//khoi dong timer 0 EA=1;//cho phep ngat toan cuc } void timer_int_0(void) interrupt 1// Ham xu li ngat timer 0 { TF0=0; if(enable_pwm==1)// Pwm=4.7619Khz { if(duty=0) { if(rl==0) P2_3=1;// Quay trai else P2_6=1;// Quay phai } 17 else if(duty>pwm && duty<100) { P2_3=0;// Thoi gian off P2_6=0; } duty++; if(duty==100) { duty=0;// Xoa ve 0 } } t++; if(t==100) { //--------------------------------------------------- if(P3_0==0)// Neu an quay trai { left(); } else if(P3_1==0)// Neu an quay phai { right(); } else if(P3_2==0)// Neu an giam toc { 18 if(pwm>0) { pwm--;// Tang toc } } else if(P3_3==0)// Neu an tang toc { if(pwm<99) { pwm++;// Giam toc } } else if(P3_4==0)// Neu an Stop { pwm=0; } t=0; } } void left(void)// Ham quay trai {//5--3 enable_pwm=0; P2_3=0;// Tat pwm P2_6=0;// Tat pwm P2_7=1;// Khoa van tren P2_5=0;// Mo van tren rl=0;// Quay trai 19 enable_pwm=1; } void right(void)// Ham quay phai {//7---6 enable_pwm=0; P2_3=0;// Tat pwm P2_6=0;// Tat pwm P2_5=1;// Khoa van tren P2_7=0;// Mo van tren rl=1;// Quay phai enable_pwm=1; } void main() { init_timer(); P3=0xFF;// Lay Port3 lam dau vao P0=0xFF; P1=0xFF; P2=0xFF; left();// Quay trai while(1) { } } 20 9. Mạch in Chúng em xin chân thành cám ơn ----------------------------------THE END---------------------------------- 21