Trong đó, chân 11 và chân 32 được nối vớinguồn DC 5V, chân 12 và chân 31 được nối đất, chân 13 cà chân 14nhận xung clock từ mạch dao động thạch anh hay mạch dao độngRC, tín hiệu reset sẽ
Trang 1TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM
TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA ĐIỆN – ĐIỆN TỬ
MÔN: KỸ THUẬT VI ĐIỀU KHIỂN
Nhóm: 11
Đề tài: Điều khiển tốc độ động cơ DC
dựa vào nhiệt độ
Giảng viên hướng dẫn: TS Nguyễn Kiều Tam Sinh viên thực hiện: Nguyễn Đức Trọng_42100908
Nguyễn Gia Huy_42101393
Trang 2Chúng em cảm kích những kiến thức và kỹ năng mà Thầy đãtruyền đạt Thầy không chỉ giúp chúng em nắm vững lý thuyết màcòn hướng dẫn chúng em cách áp dụng kiến thức vào thực tế Nhờvào sự chỉ bảo và hỗ trợ của Thầy, chúng em đã trở nên tự tin hơntrong việc tiến hành hoàn thành đề tài.
Cuối cùng, chúng em xin chân thành cảm ơn Thầy, TS NguyễnKiều Tam vì những gì Thầy đã mang lại chúng em trong môn họcnày
TP Hồ Chí Minh, ngày 11 tháng 10 năm 2023 Tác giả
Nguyễn Đức Trọng Nguyễn Gia Huy
Trang 31.2.1 Sơ đồ chân pic16F877A 4
1.2.2 Các thông số của PIC 16F877A 5
1.3 Màn hình LCD 16x2 8
1.4 Cảm biến nhiệt độ LM35 11
1.5 Bộ điều khiển động cơ L298N 12
Phần 2: Thực hiện mô phỏng kết quả trên phần mềm 14
2.1 Mô phỏng trên Proteus 14
2.2 Thực hiện Code 15
Trang 41.1.2 Phạm vi biểu diễn của số nhị phân
Trong 16F877A, chủ yếu là các thanh ghi 8 bit và một số thanh ghicon trỏ 16 bit Hiểu được phạm vi biểu diễn sẽ giúp người lập trìnhtính toán đúng giá trị và không bị tràn
Trang 51.2 PIC 16F877A
Hình 2.1: Vi điều khiển PIC 16F877A
Hình 2.2: Sơ đồ chân PIC 16F877A
Trang 6Sơ đồ chân của vi điều khiển PIC 16F877A (Hình 2.1) được thểhiện trên hình 2.2 Trong đó, chân 11 và chân 32 được nối vớinguồn DC 5V, chân 12 và chân 31 được nối đất, chân 13 cà chân 14nhận xung clock từ mạch dao động thạch anh hay mạch dao động
RC, tín hiệu reset sẽ được truyền đến PIC 16F877A qua chân số 1
và 33 chân còn lại dùng để kết nối vơi scacs module của vi điềukhiển, tùy theo yêu cầu sử dụng mà chúng ta sẽ đảm nhiệm nhữngchức năng khác nhau
Đây là vi điều khiển thuộc họ PIC 16Fxxx với tập lệnh RISCgồm 35 lệnh có độ dài 14 bit Mỗi lệnh đều được thực thi trong môtchu kì xung clock Tốc độ hoạt động tối đa cho phép là 20Mhz vớichu kì lệnh là 200ns Bộ nhớ chương trình 8k x 14 bits, bộ nhớ dữliệu 368 bytes RAM và bộ nhớ dữ liệu EEPROM với dung lượng
256 bytes Số PORT I/O là 5 với 33 chân I/O Có 8 kênh chuyển đổiA/D
Chức năng các PORT
Port A: gồm 6 chân I/O Đây là các chân 2 chiều, vừa có thểxuất vừa có thể nhập Chức năng I/O này được điều khiển bởi thanhghi TRISA(địa chỉ 85h) Port A còn là ngõ ra bộ ADC, bộ so sánh,ngõ vào xung clock của timer0
Port B: gồm 8 chân I/O Thanh ghi điều khiển xuất nhập tươngứng là TRISB(địa chỉ 86h) Bên cạnh đó 2 chân của port B còn đượcdùng cho quá trình nạp chương trình Port B còn liên quan đến ngắtngoại vi và bộ timer0
Trang 7Port C: gồm 8 chân I/O Thanh ghi điều khiển xuất nhập tươngứng là TRISC(địa chỉ 87h) Port C còn chứa các chân chức năng của
bộ so sánh, bộ timer1, bộ PWM, đếm sự kiện của timer1 và cácchuẩn giao tiếp
Port D: gồm 8 chân I/O, thanh ghi điều khiển xuất nhập
là TRISD(địa chỉ 88h) Port D còn là cổng xuất dữ liệu của chuẩngiao tiếp PSP
Port E: gồm 3 chân I/O Thanh ghi điều khiển xuất nhập
là TRISE(địa chỉ 89h) Các chân port E là ngõ vào analog, ngoài racòn là các chân điều khiển của chuẩn giao tiếp PSP
Các đặc tính nổi bậc của vi điều khiển PIC 16F877A
Điện áp hoạt động.
1 Công nghệ CMOS FLASH/ EEPROM nguồn mức
thấp, tốc độ cao
2 Dải điện thế hoạt động rộng: 2,0V đến 5,5V
3 Nguồn sử dụng hiện tại 25mA
4 Công suất tiêu thụ thấp
Bộ nhớ chương trình và bộ nhớ dữ liệu.
1 Bộ nhơ FLASH với khả năng ghi xóa được 100.000
lần
2 Bộ nhớ EEPROM với khả năng ghi xóa được
1.000.000 lần, dữ liệu lưu trữ trên 40 năm
3 Bộ nhớ dữ liệu 368 bytes, 4 banks
4 Tất cả các câu lệnh thực hiện trong một chu kì lệnh
ngoại trừ một số câu lệnh rẽ nhánh thực hiện trong 2
chu kì lệnh
5 Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp
6 Khả năng tự nạp chương trình với sự điều khiển của
Trang 8phần mền.
7 Nạp chương trình ngay trên mạch điện ICSP (In Circuit
Serial Programming) thông qua 2 chân
8 Chức năng bảo mật mã chương trình
Bộ định thời và CCP.
1 Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit
2 Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực
hiện chức năng đếm dựa vào xung clock ngoại vi ngay
khi vi điều khiển hoạt động ở chế độ sleep
3 Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler
4 Watchdog timer với bộ dao động trong
5 Hai bộ Capture/so sánh/ điều chế độ rộng xung
Analog
1 8 kênh chuyển dổi ADC 10 bit
Chuẩn giao tiếp.
1 Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial
Port), SPI và I2C
2 Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ
3 Cổng giao tiếp song song PSP (Parallel Slave Port) với
các chân điều khiển RD, WR, CS ở bên ngoài
1.3 Màn hình LCD 16x2
Trang 9Nguyên lý hoạt động của màn hình LCD
Trang 10STT MÃ HEX LỆNH ĐẾN THANH GHI LCD
Các chân 1, 2, 3 ứng với các chân VSS, VDD, VEE trong đóVSS chân nối đất, VEE chân chọn độ tương phản, chân này đượcđiều chỉnh qua một biến trở, chân VDD nối dương nguồn
Chân chọn thanh ghi RS(Register Select): có hai thanh ghitrong LCD, chân RS được dùng để chọn thanh ghi như sau:
+ RS=0: LCD ở chế độ ghi lệnh như xóa màn hình, bật tắt contrỏ
Trang 11+ RS=1: LCD ở chế độ ghi dữ liệu như hiển thị ký tự, chữ số lênmàn hình.
Chân đọc/ghi (R/W): đầu vào đọc/ghi cho phép người dùngghi thông tin lên LCD khi R/W=0 hoặc đọc thông tin LCD khoR/W=1
Chân cho phép E(Enable): chân cho phép E được sử dụng bởiLCD để chốt dữ liệu của nó Khi dữ liệu được đến chân dữ liệu thìcần có 1 xung từ mức cao xuống mức thấp ở chân này để LCD chốt
dữ liệu, xung này phải có độ rộng tối thiểu 450ns
Chân D0-D7: đây là 8 chân dữ liệu 8 bit, được dùng để gửithông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD
Để hiển thị các chữ cái và các con số chúng ta gửi ,ã ASCII của cácchữ cái và con số tương ứng đến các chân này khi bật RS=1
1.4 Cảm biến nhiệt độ LM35
Trang 121 V CC hay +V S Chân cấp nguồn với điện áp từ 4V đến 30V
2 V OUT Chân lấy điện áp ra, điện áp ở chân này
thay đổi 10mV/ C o
3 GND Chân nối đất
LM35 có thể đo nhiệt độ trong phạm vi từ -55oC đến 150oC
Độ chính xác thực tế của cảm biến: ±1/4°C ở nhiệt độ phòng và
±3/4°C trong phạm vi nhiệt độ từ -55°C đến 150°C Việc chuyển đổiđiện áp đầu ra sang oC cũng dễ dàng và trực tiếp
Trở kháng đầu ra nhỏ, đầu ra tuyến tính và hiệu chuẩn chínhxác là những đặc tính vốn có của LM35, giúp tạo giao tiếp để đọchoặc điều khiển mạch rất dễ dàng
Điện áp cung cấp cho cảm biến LM35 hoạt động có thể từ +4
V đến 30 V Nó tiêu thụ dòng điện khoảng 60μA
* Nguyên lý hoạt động của cảm biến nhiệt độ LM35*
Cảm biến LM35 hoạt động bằng cách cho ra một giá trị điện
áp nhất định tại chân VOUT (chân giữa) ứng với mỗi mức nhiệt độ.Như vậy, bằng cách đưa vào chân bên trái của cảm biến LM35 điện
áp 5V, chân phải nối đất, đo hiệu điện thế ở chân giữa, bạn sẽ cóđược nhiệt độ (0-100ºC) tương ứng với điện áp đo được
Trang 13Vì điện áp ngõ ra của cảm biến tương đối nhỏ nên thôngthường trong các mạch ứng dụng thực tế, chúng ta thường dùng Op-Amp để khuếch đại điện áp ngõ ra này.
1.5 Bộ điều khiển động cơ L298N
IN1 & IN2 Các chân đầu vào điều khiển hướng quay động cơ A
IN3 & IN4 Các chân đầu vào điều khiển hướng quay của Động cơ B
ENA Kích hoạt tín hiệu PWM cho Động cơ A
ENB Kích hoạt tín hiệu PWM cho Động cơ B
OUT1 & OUT2 Chân đầu ra cho động cơ A
OUT3 & OUT4 Chân đầu ra cho Động cơ B
12V Đầu vào cấp nguồn 12
Trang 145V Cấp nguồn cho mạch logic bên trong IC L298N
GND Chân nối đất
Module điều khiển động cơ L298N có IC điều khiển động cơL298, Bộ điều chỉnh điện áp 78M05, điện trở, tụ điện, LED nguồn,jumper 5V tích hợp
Bộ điều chỉnh điện áp 78M05 chỉ được bật khi đặt jumper Khinguồn điện nhỏ hơn hoặc bằng 12V thì mạch bên trong sẽ được cấpnguồn bởi bộ điều chỉnh điện áp và chân 5V có thể sử dụng như mộtchân đầu ra để cấp nguồn cho vi điều khiển Không nên đặt jumperkhi nguồn điện lớn hơn 12V và chân 5V phải được cấp riêng bằngnguồn 5V cho mạch bên trong
Chân ENA & ENB là chân điều khiển tốc độ cho Động cơ A
và Động cơ B trong khi IN1 & IN2 và IN3 & IN4 là chân điềukhiển hướng quay cho Động cơ A và Động cơ B
Sơ đồ mạch bên trong của module điều khiển động cơ L298Nđược đưa ra dưới đây:
Trang 15Phần 2: Thực hiện mô phỏng kết quả trên phần mềm
2.1 Mô phỏng trên phần mềm Proteus.
Trang 16Chênh lệch giữa 2 thông số:
Vậy phép toán để hiển thị nhiệt độ đo được là:
Điều chỉnh độ rộng xung
Ta cần sử dụng 4 cấp tốc độ để cấp cho động cơ DC: OFF, SLOW, NORMAL, FAST
Tương đương như sau:
Ta sử dụng biến duty = y*333.33 để đưa vào làm giá trị của độ rộng xung như sau:
set_pwm1_duty(duty);
2.2.2 Source Code
Trang 17-#define LCD_ENABLE_PIN PIN_D0
#define LCD_RW_PIN PIN_D2
#define LCD_RS_PIN PIN_D1
#define LCD_DATA4_PIN PIN_D4
#define LCD_DATA5_PIN PIN_D5
#define LCD_DATA6_PIN PIN_D6
#define LCD_DATA7_PIN PIN_D7
Trang 18Hiển thị 2 kênh khác nhau của LCD
Chương trình tính toán cấp độ quay của động cơ dựa vào nhiệt độvoid inverse()
//Hien thi 2 che do khac nhau tren man hinh LCD
else if(temp <40 && temp>18) y=1;
else if(temp>=40 && temp<=70) y=2;
else y=3;
return y;
}
Trang 20else if(y==1) lcd_putc("SLOW");
else if(y==2) lcd_putc("NORMAL");