BỘ GIÁO DỤC VÀ ĐẠO TẠO ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA CƠ KHÍ CHẾ TẠO MÁY MÔN HỌC VI XỬ LÝ BÁO CÁO ĐỀ TÀI ĐO ĐỘ ẨM NHIỆT ĐỘ VÀ CẢM BIẾN ÁNH SÁNG HIỂN THỊ LÊN LCD, ĐIỀU KHIỂN BẬT TẮT MOTOR, ĐÈN Giáo viên hướng dẫn THẦY NGUYỄN THANH NGHĨA Sinh viên thực hiện Nguyễn Hảo Anh 19146151 Lê Nguyễn Quốc Trung 19146288 Đỗ Xuân Phương 15146086 MỤC LỤC PHẦN 1 MỞ ĐẦU 2 1 1 Lý do chọn đề tài 2 1 2 Mục tiêu 2 1 3 Giới hạn đề tài 2 PHẦN 2 CƠ SỞ 3 2 1 PIC16F887 3 2 1 1 Tổng quát về cấu trúc c.
BỘ GIÁO DỤC VÀ ĐẠO TẠO ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA CƠ KHÍ CHẾ TẠO MÁY MÔN HỌC: VI XỬ LÝ BÁO CÁO ĐỀ TÀI ĐO ĐỘ ẨM NHIỆT ĐỘ VÀ CẢM BIẾN ÁNH SÁNG HIỂN THỊ LÊN LCD, ĐIỀU KHIỂN BẬT TẮT MOTOR, ĐÈN Giáo viên hướng dẫn: THẦY NGUYỄN THANH NGHĨA Sinh viên thực hiện: Nguyễn Hảo Anh 19146151 Lê Nguyễn Quốc Trung 19146288 Đỗ Xuân Phương 15146086 MỤC LỤC PHẦN 1: MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục tiêu 1.3 Giới hạn đề tài PHẦN 2: CƠ SỞ .3 2.1 PIC16F887 2.1.1 Tổng quát cấu trúc PIC16F887 2.1.2 Sơ đồ chân PIC16F887 2.1.3 Một số phần mềm lập trình cho vi điều khiển PIC 2.2 LCD 16x2 2.2.1 Thông số kỹ thuật 2.2.2 Sơ đồ khối .7 2.2.3 Sơ đồ chân 2.3 Cảm biến nhiệt độ độ ẩm DHT22 2.3.1 Giới thiệu 2.3.2 Thông số kỹ thuật 2.3.3 Kích thước sơ đồ chân 10 2.3.4 Mô tả cách thức hoạt động 10 2.4 Quang trở 13 2.4.1 Giới thiệu 13 2.4.2 Cấu tạo 13 2.4.3 Nguyên lý hoạt động 14 2.5 Module điều khiển động L298N 15 2.5.1 Giới thiệu 15 2.5.2 Nguyên lý hoạt động .16 2.5.3 Thông số kỹ thuật 17 2.5.4 Sơ đồ nguyên lý 18 2.5.5 Đấu nối mạch điều khiển động DC L298N 19 PHẦN 3: THIẾT KẾ MẠCH 20 3.1 Sơ đồ khối 20 3.2 Lưu đồ giải thuật 21 3.3 Thiết kế proteus 22 3.4 Chương trình 23 PHẦN 4: TÀI LIỆU THAM KHẢO 31 PHẦN 1: MỞ ĐẦU 1.1 Lý chọn đề tài Với phát triển vượt bậc ngành khoa học kỹ thuật điều khiển tự động kéo theo phát triển ngành công nghiệp đặc biêt ngành công nghiệp Robot Sự phát triển giúp thay hệ thống điều khiển khí thô sơ hệ thống tự động giúp an tồn, xác độ hiệu cao giúp giảm bớt chi phí nhân cơng Giúp cho xã hội ngày phát triển văn minh Vì nhóm em lựa chọn đề tài “Đo nhiệt độ ẩm, tín hiệu ánh sáng” 1.2 Mục tiêu Các thành viên nhóm thảo luận thống nghiên cứu, thiết kế mạch mô Các vấn đề nghiên cứu: Cảm biến nhiệt độ độ ẩm DHT22, vi điều khiển PIC 16F887, quang trở, cấu tạo nguyên lý hoạt động Thiết kế mạch: Mạch mơ phỏng, chương trình, sơ đồ khối lưu đồ giải thuật 1.3 Giới hạn đề tài Vì tình hình dịch bệnh phức tạp nên điều kiện kinh tế chưa ổn định, phải học online trình học gặp nhiều khó khăn Nên nhóm nghiên cứu thực đề tài cách mô chưa thể thực mơ hình thực tiễn Cũng kiến thức bị giới hạn nên có phần thiếu sót, mong thầy thơng cảm PHẦN 2: CƠ SỞ 2.1 PIC16F887 2.1.1 Tổng quát cấu trúc PIC16F887 PIC16F877A Vi điều khiển PIC 40 chân sử dụng hầu hết dự án ứng dụng nhúng Nó có ba định thời có định thời 8bit định thời 16 Bit Nó hỗ trợ nhiều giao thức giao tiếp giao thức nối tiếp, giao thức song song, giao thức I2C PIC16F877A hỗ trợ ngắt chân phần cứng ngắt định thời 8K x 14 bits/word Flash ROM 368 x Bytes RAM 256 x Bytes EEPROM Port xuất/nhập (A, B, C, D, E) tương ứng 33 chân Bộ định thời 8bit Timer Timer Bộ định thời 16bit Timer 1, hoạt động chế độ tiết kiệm lượng (SLEEP MODE) với nguồn xung clock Bộ Capture/ Compare/ PWM (Bắt Giữ/ So Sánh/ Điều Biến Xung) Bộ biến đổi Analog to Digital 10 bit, ngõ vào Bộ so sánh tương tự (Compartor) Bộ định thời giám sát (Watch Dog Timer) Cổng giao tiếp song song 8bit Port nối tiếp 15 Nguồn ngắt (Interrupt) Chế độ tiết kiệm lượng (Sleep Mode) Nạp trương trình cổng nối tiếp (ICSP™) (In-Circuit Serial Programming™ -) Tập lệnh gồm 35 lệnh có độ dài 14 bit Tần số hoạt động tối đa 20 MHz 2.1.2 Sơ đồ chân PIC16F887 2.1.3 Một số phần mềm lập trình cho vi điều khiển PIC Hiện có nhiều phần mềm lập trình cho vi điều khiển PIC, có tên bật biết đến rộng rãi như: CCS C Compiler, Mikro C Pro for PIC, MPLAB X IDE, HITECH 2.2 LCD 16x2 Thiết bị hiển thị LCD (Liquid Crystal Display) sử dụng nhiều ứng dụng VĐK LCD có nhiều ưu điểm so với dạng hiển thị khác: Nó có khả hiển thị kí tự đa dạng, trực quan (chữ, số kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn tài nguyên hệ thống giá thành rẻ 2.2.1 Thơng số kỹ thuật LCD 16×2 sử dụng để hiển thị trạng thái thông s ã LCD 16ì2 cú 16 chõn ú chân liệu (D0 – D7) chân điều khiển (RS, RW, EN) • chân cịn lại dùng cp ngun v ốn nn cho LCD 16ì2 ã Các chân điều khiển giúp ta dễ dàng cấu hình LCD chế độ lệnh chế độ liệu • Chúng cịn giúp ta cấu hình chế độ đọc ghi LCD 16×2 sử dụng chế độ 4bit 8bit tùy theo ứng dụng ta làm 2.2.2 Sơ đồ khối 2.2.3 Sơ đồ chân Trong 16 chân LCD chia làm dạng tín hiệu sau: Các chân cấp nguồn: Chân số chân nối mass (0V), chân thứ Vdd nối với nguồn +5V Chân thứ dùng để chỉnh contrast thường nối với biến trở Các chân điều khiển: Chân số chân RS dùng để điều khiển lựa chọn ghi Chân R/W dùng để điều khiển trình đọc ghi Chân E chân cho phép dạng xung chốt Các chân liệu D7÷D0: Chân số đến chân số 14 chân dùng để trao đổi liệu thiết bị điều khiển LCD • • • chân INPUT: IN1, IN2, IN3, IN4 nối với chân 5, 7, 10, 12 L298 Đây chân nhận tín hiệu điều khiển chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với chân INPUT) nối với chân 2, 3, 13, 14 L298 Các chân nối với động Hai chân ENA ENB dùng để điều khiển mạch cầu H L298 Nếu mức logic “1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, mức logic “0” mạch cầu H không hoạt động 2.5.3 Thông số kỹ thuật • Driver: L298N tích hợp hai mạch cầu H • Điện áp điều khiển: +5V ~ +12 V • Dịng tối đa cho cầu H là: 2A • Điện áp tín hiệu điều khiển: +5 V ~ +7 V • Dịng tín hiệu điều khiển: ~ 36Ma • Cơng suất hao phí: 20W (khi nhiệt độ T = 75 °C) • • Nhiệt độ bảo quản: -25°C ~ +130 Kích thước: 43x43x27mm • Cơng suất tối đa: 25W cầu (lưu ý công suất = dòng điện x điện áp nên áp cấp vào cao, dịng nhỏ, cơng suất có định 25W) 17 2.5.4 Sơ đồ nguyên lý 18 2.5.5 Đấu nối mạch điều khiển động DC L298N Điều khiển chiều quay với L298: • Khi ENA = 0: Động khơng quay với đầu vào • Khi ENA = 1: - INT1 = 1; INT2 = 0: động quay thuận - INT1 = 0; INT2 = 1: động quay nghịch - INT1 = INT2: động dừng tức (tương tự với chân ENB, INT3, INT4) 19 PHẦN 3: THIẾT KẾ MẠCH 3.1 Sơ đồ khối 20 3.2 Lưu đồ giải thuật 21 3.3 Thiết kế proteus 22 3.4 Chương trình //LCD module connections #define LCD_RS_PIN PIN_E0 #define LCD_RW_PIN PIN_E1 #define LCD_ENABLE_PIN PIN_E2 #DEFINE LCD_DATA0 PIN_D0 #DEFINE LCD_DATA1 PIN_D1 #DEFINE LCD_DATA2 PIN_D2 #DEFINE LCD_DATA3 PIN_D3 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 //End LCD module connections //MOTOR connection #DEFINE IN1 PIN_A2 #DEFINE IN2 PIN_A3 #DEFINE IN3 PIN_A4 #DEFINE IN4 PIN_A5 //end MOTOR connection //ANH SANG #DEFINE IND #DEFINE OUTD PIN_B0 PIN_A0 //END 23 #include #fuses NOMCLR NOBROWNOUT NOLVP INTRC_IO #use delay(clock = 8MHz) #include #use fast_io(B) #use fast_io(D) #define DHT22_PIN PIN_A1 // DHT22 Data pin is connected to RA1 char message1[] = "Temp = 00.0 C "; char message2[] = "RH = 00.0 % "; short Time_out = 0; unsigned int8 T_byte1, T_byte2, RH_byte1, RH_byte2, CheckSum ; unsigned int16 Temp, RH; void start_signal(){ output_drive(DHT22_PIN); // Configure connection pin as output output_low(DHT22_PIN); // Connection pin output low delay_ms(25); output_high(DHT22_PIN); // Connection pin output high delay_us(25); output_float(DHT22_PIN); // Configure connection pin as input } short check_response(){ set_timer1(0); // Set Timer1 value to 24 setup_timer_1(T1_INTERNAL | T1_DIV_BY_2); // Start Timer1 with internal clock source + prescaler while(!input(DHT22_PIN) && get_timer1() < 100); // Wait until DHT22_PIN becomes high (cheking of 80µs low time response) if(get_timer1() > 99) // If response time > 99µS ==> Response error return 0; // Return (Device has a problem with response) else{ set_timer1(0); // Set Timer1 value to while(input(DHT22_PIN) && get_timer1() < 100); // Wait until DHT22_PIN becomes low (cheking of 80µs high time response) if(get_timer1() > 99) // If response time > 99µS ==> Response error return 0; // Return (Device has a problem with response) else return 1; // Return (response OK) } } unsigned int8 Read_Data() { unsigned int8 i, _data = 0; if(Time_out) break; for(i = 0; i < 8; i++) { 25 set_timer1(0); while(!input(DHT22_PIN)) // Set Timer1 value to // Wait until DHT22_PIN becomes high if(get_timer1() > 100) { // If low time > 100 ==> Time out error (Normally it takes 50µs) Time_out = 1; break; } set_timer1(0); while(input(DHT22_PIN)) // Set Timer1 value to // Wait until DHT22_PIN becomes low if(get_timer1() > 100) { // If high time > 100 ==> Time out error (Normally it takes 26-28µs for and 70µs for 1) Time_out = 1; break; } if(get_timer1() > 50) // If high time > 50 ==> Sensor sent bit_set(_data, (7 - i)); // Set bit (7 - i) } return _data; } void main() { 26 setup_oscillator(OSC_8MHZ); // Set the internal oscillator to 8MHz setup_timer_1(T1_DISABLED); lcd_init(); // Disable Timer1 // Initialize LCD module lcd_putc('\f'); // Clear LCD while(TRUE) //for(int i = 0; i= 30 C { output_high(IN1); output_low(IN2); } if(Temp < 300) { output_low(IN1); 29 output_low(IN2); } if(RH < 300) // DO AM < 30% { output_high(IN4); output_low(IN3); } if(RH >= 300) // DO AM < 30% { output_low(IN4); output_low(IN3); } if(INPUT(IND)) { OUTPUT_HIGH(OUTD); //ÐEN ON } else { OUTPUT_LOW(OUTD); //DEN OFF } } } 30 PHẦN 4: TÀI LIỆU THAM KHẢO https://dientu360.com/module-dieu-khien-motor-l298n https://banlinhkiendientu.vn/mach-dieu-khien-dong-co-dc-l298n/ http://chipn24.com/modul-l298-dieu-khien-dong-co-cau-h-id256.html 31 ... Nguyên lý hoạt động .16 2.5.3 Thông số kỹ thuật 17 2.5.4 Sơ đồ nguyên lý 18 2.5.5 Đấu nối mạch điều khiển động DC L298N 19 PHẦN 3: THIẾT KẾ MẠCH 20 3.1 Sơ đồ. .. kế mạch: Mạch mơ phỏng, chương trình, sơ đồ khối lưu đồ giải thuật 1.3 Giới hạn đề tài Vì tình hình dịch bệnh phức tạp nên điều kiện kinh tế chưa ổn định, phải học online trình học gặp nhiều khó... 2.1.3 Một số phần mềm lập trình cho vi điều khiển PIC 2.2 LCD 16x2 2.2.1 Thông số kỹ thuật 2.2.2 Sơ đồ khối .7 2.2.3 Sơ đồ chân 2.3 Cảm biến nhiệt