Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,09 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA KỸ THUẬT ĐIỆN TỬ II BÁO CÁO MÔN HỌC THỰC HÀNH CƠ SỞ NIÊN KHÓA: 2018 – 2023 ĐỀ TÀI: ADC CẢM BIẾN NHIỆT ĐỘ DÙNG ATMEGA16 VÀ LM35 Sinh viên thực : Dương Vĩ Khang- N18DCDDT026 Nguyễn Đức Tâm - N18DCDT046 Lớp : D18CQDT01-N Giáo viên hướng dẫn : ThS Ngô Đình Phong TP.HCM – Tháng 08 năm 2021 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN TĨM TẮT ĐỀ TÀI Mục tiêu đề tài thiết mạch đo nhiệt độ sử dụng ATMEGA16 cảm biến LM35 Cảm biến nhiệt độ ngày sử dụng rộng rãi lĩnh vực khác đời sống, khoa học, công nghệ Dùng cảm biến nhiệt độ để xác định nhiệt độ chất rắn, chất lỏng khí Trong ứng dụng đo nhiệt độ ATMEGA16 LM35 áp dụng rộng rãi giới nước phát triển Ở Việt Nam phát triển mạnh mẽ đưa vào sử dụng thực tế LỜI CẢM ƠN Để hoàn thành đề tài này, em xin gửi đến thầy Ngơ Đình Phong lời cảm ơn chân thành Vì hướng dẫn tận tình giúp đỡ em hồn thành đề tài Qua báo cáo này, tạo cho em có nhiều hội tiếp xúc với nhiều kiến thức mới, nhiều điều bên ngồi sống Vì kiến thức thân cịn hạn chế, q trình làm, hồn thiện báo cáo em khơng tránh khỏi sai sót, kính mong nhận ý kiến đóng góp từ thầy để hồn thiện lần làm báo cáo Cuối cùng, lần em xin chân thành cảm ơn thầy LỜI CAM ĐOAN Chúng em xin cam đoan đồ án thiết kế mạch điện tử “ADC cảm biến nhiệt độ dùng atmega16 LM35” cơng trình nghiên cứu nhóm Những phần sử dụng tài liệu tham khảo đồ án nêu rõ phần tài liệu tham khảo Các số liệu, kết trình bày đồ án hồn tồn trung thực, sai chúng em xin chịu hoàn toàn trách nhiệm chịu kỷ luật môn nhà trường đề TP.HCM, ngày 01 tháng 08 năm 2021 MỤC LỤC TÓM TẮT ĐỀ TÀI LỜI CẢM ƠN LỜI CAM ĐOAN CHƯƠNG I: CƠ SỞ LÝ THUYẾT I SƠ LƯỢC VỀ ATMEGA16 ATMEGA LÀ GÌ? ATMEGA16 Hình 1: Atmega16 II Thành phần ATMEGA16: .6 III Sơ đồ chân ATMEGA16: .6 Hình 2: sơ đồ chân Atmega 16 IV LẬP TRÌNH ADC: 1.1 ADC 1.2 THIẾT KẾ NGUỒN CHO BỘ ADC .7 1.3 CƠNG THỨC TÍNH GIÁ TRỊ ĐIỆN ÁP CHUYỂN ĐỔI ADC 1.4 CÁC THANH GHI THAM GIA ĐIỀU KHIỂN ADC V CẢM BIẾN NHIỆT ĐỘ LM35 Hình 3: cảm biến nhiệt độ LM35 Hình 4: chân LM35 CHƯƠNG II: THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 10 I SƠ ĐỒ KHỐI: 10 Hình 5: Sơ đồ khối 10 II THIẾT KẾ SƠ ĐỒ MẠCH: 11 SƠ ĐỒ NGUYÊN LÝ: 11 Hình 6: Sơ đồ nguyên lý 11 SƠ ĐỒ MẠCH IN 11 Hình 7: Sơ đồ mạch in 11 Hình 8: Mặt trước mơ mạch 3d .13 Hình : Mặt sau mô mạch 3d 14 Hình 10: Mạch in 15 CHƯƠNG III: THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 16 I LƯU ĐỒ GIẢI THUẬT LẬP TRÌNH TỔNG QUÁT 16 II PHẦN MỀM CODE 17 THIẾT KẾ VÀ THI CÔNG SAU KHI HỒN THÀNH: 18 Hình 11: Mặt sau mạch thật 19 Hình 12: Phía trước mạch thật 20 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21 CHƯƠNG I: CƠ SỞ LÝ THUYẾT I SƠ LƯỢC VỀ ATMEGA16 ATMEGA LÀ GÌ? AVR họ vi điều khiển hãng Atmel sản xuất (Atmel nhà sản xuất dịng vi điều khiển 89C51 mà bạn nghe đến) AVR chip vi điều khiển bits với cấu trúc tập lệnh đơn giản hóa-RISC(Reduced Instruction Set Computer), kiểu cấu trúc thể ưu xử lí ATMEGA16 Hình 1: Atmega16 - Vi điều khiển ATMEGA16 hiệu suất cao, công suất thấp Atmel 8-bit AVR RISC dựa kết hợp 16KB nhớ flash lập trình, 1KB SRAM, 512B EEPROM, 10-bit A / D chuyển đổi 8-kênh, giao diện JTAG cho on-chip gỡ lỗi. Thiết bị hỗ trợ thông lượng 16 MIPS 16 MHz hoạt động 4,5-5,5 volt - Vi điều khiển ATMEGA16 thực hướng dẫn chu kỳ đồng hồ nhất, thiết bị đạt thông lượng gần MIPS MHz, cân điện tiêu thụ tốc độ xử lý II Thành phần ATMEGA16: CPU, ROM, RAM, EEPROM, Ngắt, Module I/O, Bộ định thời, Watchdog time, Giao tiếp nối tiếp III Sơ đồ chân ATMEGA16: Hình 2: sơ đồ chân Atmega 16 Atmega16 ưa thích vi điều khiển khác Atmel 8051 có khả thực thi lệnh nhanh nhiều bao gồm xử lý RISC sửa đổi Nó có flash tích hợp kèm với tính nạp khởi động Nó có ADC, SPI, PWM EEPROM 10-bit tích hợp sẵn Mơ tả chân Atmega16 Atmega16 có 40 chân, chân sử dụng để thực nhiệm vụ cụ thể, có tổng cộng 32 chân I / O bốn cổng, cổng bao gồm chân I / O PORTA = chân (Chân 33-40) PORTB = chân (Chân 1-8) PORTC = chân (Chân 22-29) PORTD = chân (Chân 14-21) PORTC = chân (Chân 22-29) PORTD = chân (Chân 14-21) IV LẬP TRÌNH ADC: 1.1 ADC ADC chuyển đổi tín hiệu tương tự sang kỹ thuật số Trên AVR tích hợp kênh ADC với độ phân giải 10 bit, tức điện áp chuyển đổi thành 1024 mức level dạng bậc thang ADC ứng dụng nhiều đo nhiệt độ, đọc giá trị điện áp, tính dịng điện, đọc phím nhấn theo thang điện trở, biến đổi tín hiệu âm sang kỹ thuật số để lưu trữ, ADC có độ phân giải cao khó chế tạo từ giá thành tỉ lệ thuận, với AVR bạn khỏi phải lo chuyện giá thành chip ADC, tích hợp bên tất chip AVR kể dòng nhỏ gọn ATtiny 1.2 THIẾT KẾ NGUỒN CHO BỘ ADC Chân AVCC chân cấp nguồn cho ADC AVR, riêng không chung với VCC chip Chân AREF chân chọn điện áp tham chiếu ngồi ADC( AREF Max=5V) so sánh áp tham chiếu mức logic tương ứng kiểu tir lệ % VD:AREF=5V, ADC input= 2.5V tức 50% AREF giá trị ADC 1024/2=512 Thiết kế nguồn ý tưởng cho ADC AVR, thực tế nhằm giảm đơj cồng kềnh có mạch nguồn ổn định ta cần tụ lọc 104 đủ 1.3 CƠNG THỨC TÍNH GIÁ TRỊ ĐIỆN ÁP CHUYỂN ĐỔI ADC ADC 10bit: Vin=(Vref*ADC)/1024 ADC 8bit: Vin=(Vref*ADC)/256 Trong đó: Vref điện áp tham chiếu (Đơn vị: V) ADC giá trị sau chuyển đổi 1.4 CÁC THANH GHI THAM GIA ĐIỀU KHIỂN ADC - ADMUX ghi chọn điện áp tham chiếu chọn kênh ADC REFS1 REFS0 ADLA R - MUX3 MUX2 MUX1 MUX0 Trong đó: REFS1 REFS0 2but chọn tham chiếu để so sánh, ta có bảng sau: REFS REFS Gia trị điện áp 0 Bằng AREF đưa vào, mã HEX 0x00 Bằng AVCC đưa vào, mã HEX 0x40 Dự trữ- Không sử dụng 1 2.56V onchip, mã HEX 0xC0 ARLAR bit xếp ghi ADCH ADCL, chuyển đổi ADC 10bit nên ta phải có ghi 8bit để lưu giá trị chuyển đổi, việc xếp tùy vào sở thích lập trình viên ADMUX3:0 bit chọn kênh ADC có giá trị thập phân từ 0-7 tương ứng với kênhADC0ADC7 MUX3:0=1110: VBG=1.3V, MUX3:0=1111: 0V GND ADCSRA ghi điều khiển ADC: ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0 Trong đó: ADEN: Là bit cho phép ADC hoạt động, ta khơng set bit lên ADC không hoạt động ADSC bit cho phép ADC chuyển đổi, q trình chuyển đổi hồn tất bit tự động xóa ta muốn ADC chuyển đổi tiếp ta bắt buộc phải set lại bit ADFR bit cho chế độ liên tục chuyển đổi Nếu set bit ADC liên tục chuyển đổi ADIF bit cờ ngắt, q trình chuyển đổi hồn tất bit tự động set lên , ta kiểm tra bit để đảm bảo q trình đọc ADC khơng bị lỗi ADIE bit cho phép ngắt ADC Khi chuyển đổi hồn tất có ngắt xảy cho phép ngắt ADC ADPS2:0 3bit chọn xung nhịp cho ADC, tốc độ chuyển đổi phụ thuộc vào 3bit Chú ý chế độ 10bit chuyển đổi chậm chế độ 8bit Ta có bảng sau: ADPS2 ADPS1 ADPS0 XUNG NHỊP 0 Fosc/2 0 Fosc/2 Fosc/4 1 Fosc/8 0 Fosc/16 1 Fosc/32 1 Fosc/64 1 Fosc/128 V CẢM BIẾN NHIỆT ĐỘ LM35 Hình 3: cảm biến nhiệt độ LM35 LM35 cảm biến nhiệt độ analog Nhiệt độ xác định cách đo hiệu điện ngõ LM35 - Đơn vị nhiệt độ: độ C - Nhiệt độ thay đổi tuyến tính: 10mV/ độ C LM35 không cần phải canh chỉnh nhiệt độ sử dụng Độ xác thực tế: 1/4 độ C nhiệt độ phịng 3/4 độ C ngồi khoảng độ C tới 150 độ C LM35 có hiệu cao, công suất tiêu thụ 60 miroA LM35 thay đổi nhiệt độ nhanh xác Cảm biến LM35 hoạt động cách cho giá trị hiệu điện định chân Vout( chân giữa) ứng với mức nhiệt độ Như cách đưa vào chân bên trái cảm biến LM35 hiệu điện 5V, chân phải nối đất, đo hiệu điện chân pin A0 ATMEGA, chuyển đổi ADC để thu kết Với LM35, tạp mạch cảm biến nhiệt độ sử dụng LM35 tự động ngắt điện nhiệt độ vượt ngưỡng tối đa, đóng điện nhiệt độ thấp ngưỡng tối thiểu thơng qua module rơ le, Hình 4: chân LM35 CHƯƠNG II: THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG I SƠ ĐỒ KHỐI: Hình 5: Sơ đồ khối I KHỐI TÍN HIỆU II KHỐI XỬ LÝ III KHỐI HIỂN THỊ IV KHỐI NGUỒN GIẢI THÍCH: - Khối nguồn: cung cấp điện cho toàn bo mạch - Khối tính hiệu: dùng cảm biến nhiệt độ LM35 chuyển tính hiệu nhiệt thành tính hiệu điện cho vi xử lý phân tích - Khối xử lý: Dùng vi xử lý atmega 16 xử lý tính hiệu vào xuất tính hiệu vào màng hình lcd - Khối hiển thị: dùng màng hình lcd hiển thị nhiệt độ dòng chữ cảnh báo, led đơn tượng chưng cho cách thiết bị điện cần thiết để điều khiển thiết bị bật tắt cần thiết II THIẾT KẾ SƠ ĐỒ MẠCH: SƠ ĐỒ NGUYÊN LÝ: Hình 6: Sơ đồ nguyên lý SƠ ĐỒ MẠCH IN Hình 7: Sơ đồ mạch in Hình 8: Mặt trước mơ mạch 3d Hình : Mặt sau mơ mạch 3d Hình 10: Mạch in CHƯƠNG III: THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM I LƯU ĐỒ GIẢI THUẬT LẬP TRÌNH TỔNG QUÁT V Begin Nhiệt độ > 35 độ C? SAI Hiển thị LCD ĐÚNG Led đơn sáng II PHẦN MỀM CODE //Clock frequency : 8.000000 MHz #include // Khai bao giao tiep LCD #asm equ lcd_port=0x12 ;PORTC #endasm #define up PINB.0 #define down PINB.1 #define loa PORTC.0 unsigned char cd=35; #include #include #include #include #define ADC_VREF_TYPE 0x00 //khai bao bien int temp,adc; // Ham doc nhiet unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input|ADC_VREF_TYPE; // bat dau doc ADCSRA|=0x40; // cho doc xong while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } void main(void) { PORTA=0x00; DDRA=0xF0; PORTB=0x00; DDRB=0xF0; PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0xFF; // khoi tao ADC ADMUX=ADC_VREF_TYPE; ADCSRA=0x83; // cho phap ngat #asm("sei") loa=1; lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("Do Nhiet Do LCD "); lcd_gotoxy(0,1); lcd_putsf("Bao Nhiet Do Cao"); delay_ms(1000); while (1) { //lcd_gotoxy(0,0); lcd_putsf("Muc cai dat: "); // lcd_putchar(cd/10+0x30); lcd_putchar(cd%10+0x30);lcd_putsf("C "); adc = read_adc(PORTA.0); temp = adc/2.046; lcd_gotoxy(0,1); lcd_putsf("Nhiet do: "); lcd_putchar(temp/10+0x30); lcd_putchar(temp%10+0x30); lcd_putsf(" C "); if(temp>=cd){ loa = 0; lcd_gotoxy(0,0); lcd_putsf("Da Qua Nhiet Do "); } if(temp