- Tính toán thiết kế mạch công suất để có thể điều khiển được động cơ có công suất lớn hơn.. Vì em chỉ sài PWM và ADC nên chỉ trình bày cụ thể 2 phần này: 2.2 PWM: 2.2.1 Phương pháp điề
Giới thiệu sơ lược các modul của mạch
-Tên đề tài đồ án : Lập trình PIC16F877A điều khiển tốc độ động cơ DC. -Yêu cầu đặt ra: Lập trình C cho Pic 16F877A điều khiển tốc độ cho động cơ DC Tốc độ được cài đặt từ biến trở và hiện % duty cycle lên led 7 đoạn. -Tóm tắt hướng thực hiện đề tài:
Sử dụng Pic 16F877A là vi điều khiển trung tâm Dùng chương trình CCS lập trình C và biên dịch chương trình
Xây dựng nút nhấn và biến trở để khiển động cơ DC: 1 nút xoay chiều thuận.
1 nút xoay chiều nghịch 1 nút dừng
1 biến trở điều chỉnh tốc độ động cơ.
Sử dụng mạch cầu H dùng IC L298 để đảo chiều động cơ.
Hiện thị % duty cycle lên led 7 đoạn.
Sử dụng PWM của vi điều khiển Pic để điều khiển tốc độ động cơ.
Đối tượng điều khiển là động cơ DC 12V.
Ngoài ra trên mạch còn có 1 nút reset cho Pic 16F877A.
1.2 Sơ đồ nguyên lý mạch:
Hình 1: sơ đồ nguyên lý.
Bước1: nạp code vào pic và sau đó sử dụng.
+chương trình sẽ điều khiển tăng,giảm,đảo chiều động cơ và đồng thời hiện thị phần trăm duty.
Bước 2: cấp nguồn cho mạch pic 16f877a và lm298.
+để điểu chỉnh tốc độ thì ta vặn biến trở.
+để đảo chiều thì ta bấm nút (b0,b4)
Bước 3: nếu muốn dừng hết hoạt của động cợ thì chương trình đã cài sẵn mà bố trí
Cho nó thêm nút b5 trên mạch.
Nhược điểm
-Mạch cầu H sử dụng IC L298 chỉ điều khiển được động cơ DC có công suất nhỏ.
-Do không áp dụng các phương pháp điều khiển (ví dụ như: PID, điều khiển mờ,…) nên tốc độ động cơ chưa được ổn định.
Ưu điểm
dễ làm không cầu kì.
1.5 hướng phát triển đề tài:
- Cải thiện ổn định tốc độ động cơ bằng phương pháp PID hay điều khiển mờ.
- Tính toán thiết kế mạch công suất để có thể điều khiển được động cơ có công suất lớn hơn.
- Sử dụng LCD để tăng khả năng quan sát của khối hiển thị.
- Kết nối với máy tính, sử dung vi điều khiển lập trình để điều khiển tốc độ động cơ DC.
CƠ SỞ LÝ THUYẾT
Khái niệm về PIC 16F877A
PIC là tên viết tắt của “Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần
100 loại sản phẩm khác nhau PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tảng về họ vi điều khiển PIC của mình.Cấu trúc tổng quát của PIC16F877A như sau:
- 5 port vào ra với tín hiệu điều khiển độc lập 6
- 2 bộ định thời Timer0 và Timer2 8 bit
- 1 bộ định thời Timer1 16 bit có thể hoạt động ở cả chế độ tiết kiệm năng lượng với nguồn xung clock ngồi.
- 1 bộ biến đổi Analog -> Digital 10 bit, 8 ngõ vào
- 2 bộ so sánh tương tự
- 1 bộ định thời giám sát (Watch Dog Timer)
- 1 cổng song song 8 bit với các tín hiệu điều khiển
Chương 2: Cơ sở lý thuyết
Hình 2:sơ đồ khối PIC 16F877A
2.1.2 sơ đồ chân và sơ đồ nguyên lý
Sơ đồ chân với chip loại cắm 40 chân.
Chương 2: Cơ sở lý thuyết
Hình 3:sơ đồ chân của pic 16f877a
Hình 4: Sơ đồ nguyên lí các Port của PIC 16F877A
Chương 2: Cơ sở lý thuyết
Từ sơ đồ chân và sơ đồ nguyên lý ở trên, ta rút ra các nhận xét ban đầu như sau :
- PIC16F877A có tất cả 40 chân.
- 40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chân thạch anh và một chân dùng để RESET vi điều khiển.
Vì em chỉ sài PWM và ADC nên chỉ trình bày cụ thể 2 phần này:
Phương pháp điều chế 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).
2.2.1.1 Điều chế PWM là gì:
Phương pháp điều chế độ rộng xung PWM (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 độ rộng của chuỗi xung kích để điều khiển linh kiện đóng ngắt (SCR hay Transistor) dẫn đến sự thay đổi điện áp ra tải.
2.2.1.2 Đồ thị dạng xung điều chế PWM:
Hình 5: Đồ thị dạng xung điều chế PWM
Chương 2: Cơ sở lý thuyết
2.2.1.3 Nguyên lí của PWM: Đây là phương pháp được thực hiện theo nguyên tắc dóng ngắt nguồn có tải một cách có chu kì theo luật điều chỉnh thời gian đóng ngắt.Phần tử thực hiện nhiệm vụ đóng cắt là các van bán dẫn.Sơ đồ nguyên lí điều khiển tải dùng PWM.
Hình 6 : Sơ đồ nguyên lí dùng PWM điều khiển điện áp tải (trái) Sơ đồ xung van điều khiển và đầu ra (phải)
Trong khoảng thời gian 0 - to ta cho van Q1 mở toàn bộ điện áp nguồn Ud được đưa ra tải Cũn trong khoảng thời gian từ t0 đến T cho van Q1 khóa, cắt nguồn cung cấp cho tải.Vì vậy với thời gian t0 thay đổi từ 0 cho đến T ta sẽ cung cấp toàn bộ , một phần hay khóa hoàn toàn điện áp cung cấp cho tải.
Công thức tính giá trị trung bình của điện áp ra tải là:
Ud = Umax (t0/T) hay Ud = Umax.D
Trong đó:Ud: là điện áp trung bình ra tải.
Umax: là điện áp nguồn. t0: là thời gian xung ở sườn dương (van khóa mở) T: thời gian cả thời gian xung sươn dương và sườn âm D t0/T: hệ số điều chỉnh hay PWM được tính bằng %
Ví dụ: điện áp nguồn là 12V.
Nếu hệ số điều chỉnh là 20% => Ud = 12.20% = 2.4 V
Nếu hệ số điều chỉnh là 50% => Ud = 12.50% = 6 V
Vì vậy, trong đề tài: “Điều khiển tôc độ động cơ DC” chúng em sử dụng phương pháp điều chế độ rộng xung PWM để thay đổi điện áp DC cấp cho
Chương 2: Cơ sở lý thuyết vuông với độ 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.
2.2.1.4 Cách thiết lập chế độ PWM cho PIC16F877A:
Khi hoạt động ở chế độ PWM (Pulse Width Modulation _ khối điều chế độ rộng xung), tính hiệu sau khi điều chế sẽ được đưa ra các pin của khối CCP (cần ấn định các pin này là output ) Để sử dụng chức năng điều chế này trước tiên ta cần tiến hành các bước cài đặt sau:
- Thiết lập thời gian của 1 chu kì của xung điều chế cho PWM
(period) bằng cách đưa giá trị thích hợp vào thanh ghi PR2.
- Thiết lập độ rộng xung cần điều chế (duty cycle) bằng cách đưa giá trị vào thanh ghi CCPRxL và các bit CCP1CON.
- Điều khiển các pin của CCP là output bằng cách clear các bit tương ứng trong thanh ghi TRISC.
- Thiết lập giá trị bộ chia tần số prescaler của Timer2 và cho phép Timer2 hoạt động bằng cách đưa giá trị thích hợp vào thanh ghi T2CON.
Khái niệm:ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự và số PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0) Hiệu điện thế chuẩn VREF có thểđược lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên hai chân RA2 và RA3 Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit sốtương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL Khi không sử dụng bộchuyển đổi ADC, các thanh ghi này có thểđược sử dụng như các thanh ghi thông thường khác Khi quá trình chuyển đổi hoàn tất, kết quả sẽđược lưu vào hai thanh ghi ADRESH:ADRESL, bit ADCON0) được xóa về
0 và cờ ngắt ADIF được set.
Chương 2: Cơ sở lý thuyết
Hình 7: Sơ đồ khối bộ chuyển đổi ADC
Qui trình chuyển đổi từ tương tự sang số bao gồm các bước sau:
Hình 8: cách lưu kết quả chuyển đổi AD:
Chương 2: Cơ sở lý thuyết
Bước 1: Chọn số ngõ vào, điện áp chuẩn Uc.Bước 2: Chọn ngõ vào cụ thể.
Chương 2: Cơ sở lý thuyết
Bước 3: Chọn tần số chuyển đổi Bước 4: Chọn nơi chứa kết quả chuyển đổi.
Bước 5: Bật bộ chuyển đổi, cho phép bộ chuyển đổi hoạt động Bước 6 :Kiểm tra chuyển đổi xong chưa? Đọc kết quả về. Nếu muốn tiếp tục thì trở lại bước 5.
Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm: INTCON
(địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE, PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF) PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE) ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh):thanh ghi chứa kết quả PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đến I/O PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến I/O Các thanh ghi trên chi tiết xem bảng phụ lục trang 96
Thanh ghi điều khiển ADC: ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ
9Fh): xác lập các thông số cho bộchuyển đổi AD.
Thanh ghiđiều khiển ADCON0: Bit 7:6 ADCS1:ADCS0: Các bit lựa chọn tần số chuyển đổi A/D
11 =FRC (xung clock được lấy từ dao đông nội RC)
Bit 5:3 CHS2:CHS0: Các bit lựa chọn kênh Analog
Chương 2: Cơ sở lý thuyết
Bit 2 GO/ DONE: Bit báo trạng thái chuyển đổi A/D
1: Quá trình A/D đang thực hiện (Khi chúng ta set bit này lên thì quá trình chuyển đổi sẽ xảy ra, khi quá trình kết thúc nó sẽ tựđộng được xóa bằng phần mềm).
1: Quá trình A/D không xảy ra hoặc đã hoàn tất Bit 1 Không sử dụng, giá trị là 0
Bit 0 ADON : Bit cho phép module A/D hoạt động.
2: Nguồn được cung cấp cho A/D
1: Ngưng cung cấp nguồn cho A/D Thanh ghi điều khiển ADCON1:
Chương 2: Cơ sở lý thuyết
Bit 7 ADFM: Bit lựa chọn định dạng kết quả A/D
1: Canh phải, 6 bit cao nhất của thanh ghi ADRESH có giá trị 0
1: Canh trái, 6 bit thấp nhất của thanh ghi ADRESL có giá trị 0 Bit 6ADCS2: Bit lựa chọn clock chuyển đổi A/D
Chương 2: Cơ sở lý thuyết
Bit 3:0 PCFG3:PCFG0: Các bit điều khiển cấu hình các chân ADC
2.4.1 Công dụng và nguyên lý hoạt động của mạch:
Mạch cầu H là một mạch điện giúp đảo chiều dòng điện qua một đối tượng Đối tượng là động cơ DC mà chúng ta cần điều khiển 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 Từ đó giúp đổi chiều quay của động cơ.
Hiện nay, ngoài loại mạch cầu H được thiết kế từ các linh kiện rời như:BJT công suất, Mosfet, … Còn có các loại mạch cầu H được tích hợp thành các IC như: L293D và L298D Do đối tượng điều khiển trong đề tài này là động cơ DC có điện áp 12V và công suât nhỏ nên chúng em dùng mạch cầu H đảo chiều động cơ là IC L298.
Chương 2: Cơ sở lý thuyết
Khảo sát hoạt động của mạch cầu H:
Hình 10: Nguyên lý hoạt động của mạch cầu H
Chương 2: Cơ sở lý thuyết
Công dụng sơ đồ chân và sơ đồ nguyên lý
Chương 2: Cơ sở lý thuyết
L298D là một chip toch1 hợp 2 mạch trong gói 15 chân L298D có điện áp danh nghĩa cao (lớn hơn 50V) và dòng điện danh nghĩa lớn hơn 2A nên rất thích hợp cho các ứng dụng công suất nhỏ như các động cơ DC loại vừa và nhỏ.
Hình 11: Sơ đồ chân của IC L298D (phải) IC L298D (trái)
Hình 12: Sơ đồ nguyên lí của IC L298D
Chương 2: Cơ sở lý thuyết
Có 2 mạch cầu H trên mỗi chip L298D nên có thể điều khiển 2 đối tượng riêng với 1 chip này Mỗi mạch cầu H bao gồm 1 đường nguồn Vs (thật ra là đường chung cho 2 mạch cầu), một chân current sensing (cảm biến dòng) ở phần cuối của mạch cầu H, chân này không được nối đất mà bỏ trống để cho người dùng nối 1 điện trở nhỏ gọi là sensing resistor.Bằng cacch1 đo điện áp rơi trên điện trở này chúng ta có thể tính được dòng qua điện trở, cũng là dòng qua động cơ, mục đích của việc này là để xác định dòng quá tải Nếu việc đo lường là không cần thiết thì ta có thể nối chân này với GND Động cơ sẽ được nối với 2 chân OUT1, OUT2 hoặc OUT3, OUT4.Chân EN (ENA và ENB) cho phép mạch cầu hoạt động, khi chân này được kéo lên mức cao.
L298D không chỉ được dùng để đảo chiều động cơ mà còn điều khiển vận tốc động cơ bằng PWM.Trong thực tế, công suất thực ma L298D có thể tải nhỏ hơn giá trị danh nghĩa của nó (U PV, I *) Để tăng dòng tải của chíp lên gấp đôi, chúng ta có thể nối hai mạch cầu H song song với nhau (các chân có chức năng như nhau của 2 mạch cầu được nối chung).
Khái niệm: Tụ điện là một linh kiện điện tử thụ động cấu tạo bởi hai bản cực đặt song song được ngăn cách bởi lớp điện môi Khi có chênh lệch điện thế tại hai bề mặt, tại các bề mặt sẽ xuất hiện điện tích cùng điện lượng nhưng trái dấu Tụ điện có tính chất cách điện 1 chiều nhưng cho dòng điện xoay chiều đi qua nhờ nguyên lý phóng nạp.
Chương 2: Cơ sở lý thuyết
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Hình 14: Nguồn DC thông dụng
Một tụ điện thông thường sẽ có cấu tạo bao gồm:
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Chương 2: Cơ sở lý thuyết không khí, là giấy ta có tụ giấy, còn là gốm ta có tụ gốm và nếu là lớp hóa chất thì cho ta tụ hóa.
Chương 2: Cơ sở lý thuyết
Hình 15: Cấu tạo của tụ điện
Nguyên lý phóng nạp của tụ điện được hiểu là khả năng tích trữ năng lượng điện như một ắc quy nhỏ dưới dạng năng lượng điện trường.
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Từ phân loại và nguyên lý hoạt động của các loại tụ điện để được áp dụng vào từng công trình điện riêng, hay nói cách khác nó có nhiều công dung, nhưng có 4 công dụng chính đó là:
- Khả năng lưu trữ năng lượng điện, lưu trữ điện tích hiệu quả là tác dụng được biết đến nhiều nhất Nó giống công dụng lưu trữ như ắc-quy Tuy nhiên, ưu điểm lớn của tụ điện là lưu trữ mà không làm tiêu hao năng lượng điện.
- Công dụng tụ điện tiếp theo là cho phép điện áp xoay chiều đi
Chương 2: Cơ sở lý thuyết
- Với nguyên lý hoạt động của tụ điện là khả năng nạp xả thông minh, ngăn điện áp 1 chiều, cho phép điện áp xoay chiều lưu thông giúp truyền tí hiệu giữa các tầng khuyếch đại có chênh lệch điện thế.
- Công dụng nổi bật thứ tư là tụ điện có vai trò lọc điện áp xoay chiều thành điện áp 1 chiều bằng phẳng bằng cách loại bỏ pha âm.
- chức năng ổn áp điện áp 5V
Chương 2: Cơ sở lý thuyết
- C4 tụ hóa (có phân cực) ổn áp ngõ vào, điện dung của tụ này càng lớn thì điện áp vào IC 7805 càng phẳng.
THỰC NGHIỆM
Mạch được thiết kế gồm có các khối như sau: khối nguồn, khối bàn phím, khối hiển thị, khối mạch công suất, khối điều khiển.
Mạch lấy nguồn xoay chiều qua adapter AC/DC 220VAC/12VDC
Công dụng:gồm 3 nút và một biến trở có chức năng khác nhau được nối vào port B của pic 16f877a :
- B0: động cơ đảo chiều sang trai
- B4: động cơ đảo chiều sang phải
- B5: cho động cơ ngừng chạy
- Biến trở: dùng để tăng,giảm tốc độ động cơ
Hình 19: khối hiển thị led 7 đoạn
Chức năng: hiển thị % duty khi vặn biến trở.
- Mạch công suất sử dụng IC cầu H L298, với 2 kênh A và B,mỗi kênh với điện áp định mức 50V và dòng định mức cho tải là 2A.Khi đấu song song 2 kênh ta được dòng cấp cho tải lên đến 4A (gấp đôi).Điện áp điểu khiển 5v.
- Cầu Diode dùng để chống dòng điện ngược, do tải động cơ có tính chất cảm kháng.Nguồn cấp cho động cơ 12V
- Sử dung IC cầu H này, không những dùng để đảo chiều động cơ mà còn điểu khiển tốc độ động cơ bằng phương pháp băm xung (PWM).
Chương 3: Thực nghiệm giới thiệu về chương trình viết code:
Trong đồ án này nhóm chúng em sử dụng chương trình viết code CCS, chương trình cho phép lập trình ngôn ngữ C cho vi điều khiển
PIC Hình 20: Khối mạch công suất sử sụng IC L298 củaMicrochip Chương trình này có các câu lệnh đơn giản, dễ hiểu, hổ trợ biên dịch với chức năng hiển thị lỗi và cảnh báo chương trình không khả dụng.
Cấu trúc 1 chương trình trong CCS:
- Đầu tiên là các chỉ thị tiền xử lý : ( # ) có nhiệm vụ báo cho CCS cần sử dụng những gì trong chương trình C như dùng vi xử lí gì , có dùng giao tiếp PC không , ADC không , DELAY không , có sử dụng ngắt hay không…
- Các hàm phục vụ ngắt theo sau bởi 1 chỉ thị tiền xử lý cho biết dùng ngắt nào.
Ví dụ về cấu trúc 1 chương trình trong CCS:
// -khai báo tiền xử lí -
// khai báo them nếu có
// -chương trình chính - Void main()
#use delay (clock = 20000000) int16 tram,chuc,dv,i=0; float phantram=0,value; int8 maled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void ts_ql(int8 value)
{chuc=(value/10)%10; tram=value/100; dv=value%10; output_low(pin_a1); output_d(maled[tram]); delay_ms(5); output_high(pin_a1); output_low(pin_a2); output_d(maled[chuc]); delay_ms(5); output_high(pin_a2); output_low(pin_a3); output_d(maled[dv]); delay_ms(5);
{set_tris_a(0b00000001); set_tris_b(0xff); set_tris_c(0x00); set_tris_d(0x00); output_c(0x00); output_high(pin_a1); output_high(pin_a2); output_high(pin_a3); output_high(pin_a4); setup_adc_ports(AN0); setup_adc(adc_clock_internal); set_adc_channel(0); setup_ccp2(ccp_pwm); setup_timer_2(t2_div_by_1,249,1); while(TRUE)
{while(input(pin_b0)==0); output_high(pin_c6); output_low(pin_c7);
{while(input(pin_b4)==0); output_high(pin_c7); output_low(pin_c6);
{while(input(pin_b4)==0); output_low(pin_c7); output_low(pin_c6);
} i=read_adc(); output_high(pin_c0); value=(float)(i*0.2434017595);