PHÒNG học THÔNG MINH (có code và mạch nguyên lý) ............................. PHÒNG học THÔNG MINH (có code và mạch nguyên lý) ............................. PHÒNG học THÔNG MINH (có code và mạch nguyên lý) ............................. PHÒNG học THÔNG MINH (có code và mạch nguyên lý) .............................
PHỊNG HỌC THƠNG MINH DANH MỤC CÁC TỪ VIẾT TẮT BJT MISO MOSI LDR AVR Bipolar junction transistor MỤC LỤC Table of Contents CHƯƠNG 1: ĐẶT VẤN ĐỀ 10 1.1 Lý chọn đề tài: 10 1.2 Mục tiêu đề tài: .10 1.3 Vấn đề cần giải quyết: 10 CHƯƠNG 2: NỘI DUNG CỦA ĐỀ TÀI .11 2.1 Cơ sở lý thuyết: .11 2.1.1 Tổng quan họ vi điều khiển Atmega 328: 11 2.1.2 Tổ chức nhớ Atmega328: .12 2.1.3 Thanh ghi trạng thái: .14 2.1.4 Giới thiệu chung cấu trúc bên trong: 15 2.2 Mạch nguyên lý: 16 2.3 Nguyên lý hoạt động mạch: 18 2.3.1 Sơ đồ khối chức năng: 18 2.3.2 Giới thiệu sơ lược nguyên lý hoạt động: 18 2.3.3 Các linh kiện sử dụng mạch: 19 2.2.4 Phân tích nguyên lý hoạt động phần: .19 CHƯƠNG 3: KẾT QUẢ MÔ PHỎNG 21 3.1 Mơ hình mơ proteus: 21 3.2 Code mạch: .21 CHƯƠNG 4: NHẬN XÉT 24 4.1 Ưu điểm: 24 4.2 Khuyết điểm: 24 CHƯƠNG 5: KẾT LUẬN 25 CHƯƠNG 1: ĐẶT VẤN ĐỀ 1.1 Lý chọn đề tài: Ngày việc nghiên cứu ứng dụng vi điều khiển vào lĩnh vực sống ngày phổ biến Trong môi trường làm việc văn phòng hay phòng học việc đếm số lượng nhân viên, số học sinh vào để bật tắt đèn giúp quan nơi làm việc tiết kiệm điện thời gian ngồi giúp sống đơn giản hơn, thông minh Được gợi ý giáo viên hướng dẫn qua tìm hiểu em chọn đề tài nghiên cứu cho đồ án phòng học thơng minh với ứng dụng họ vi điều khiển avr atmega328 Đây hội tốt để ứng dụng kiến thức mơn vi xử lí vào thực tế 1.2 Mục tiêu đề tài: Đề tài nhằm mục đích thiết kế chế tạo mạch đếm số người vào phòng, bật đèn có người phòng trời tối, tắt đèn phòng đủ sáng sử dụng vi điều khiển họ AVR Atmega 328 số lượng người đếm nhờ diode quang, hiển thị kết đếm thông qua hệ thống led đoạn, bật tắt đèn nhờ LDR báo hiệu tín hiệu đèn led 1.3 Vấn đề cần giải quyết: + Tìm hiểu tài liệu liên quan đến đề tài cần nghiên cứu, đưa phương pháp tối ưu cho việc thiết kế chế tạo sản phẩm thực tế + Thiết kế chế tạo board mạch gồm khối: khối nguồn, khối xử lý trung tâm, khối cảm biến, khối hiển thị + Tiến hành viết chương trình phối hợp hoạt động khối điều khiển khối mạch chứa Atmega 328 CHƯƠNG 2: NỘI DUNG CỦA ĐỀ TÀI 2.1 Cơ sở lý thuyết: 2.1.1 Tổng quan họ vi điều khiển Atmega 328: Giới thiệu chung cấu trúc phần cứng: Atmega328 chíp vi điều khiển sản xuất bời hãng Atmel thuộc họ MegaAVR có sức mạnh hẳn Atmega8 Atmega 328 vi điều khiển bít dựa kiến trúc RISC nhớ chương trình 32KB ISP flash ghi xóa hàng nghìn lần, 1KB EEPROM, nhớ RAM vơ lớn giới vi xử lý bít (2KB SRAM) Với 23 chân sử dụng cho kết nối vào i/O, 32 ghi, timer/counter lập trình, có gắt nội ngoại (2 lệnh vector ngắt), giao thức truyền thơng nối tiếp USART, SPI, I2C Ngồi sử dụng biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới kênh, khả lập trình watchdog timer, hoạt động với chế độ nguồn, sử dụng tới kênh điều chế độ rộng xung (PWM), hỗ trợ bootloader Hình Sơ đồ chân Atmega 328 +At mega328 gồm có port :port A, port B, port C port D có bit có trở kéo lên vừa lmf đầu vừa làm đầu vào +Vcc GND :2 chân cấp nguồn cho vi điều khiển hoạt động +Reset chân reset cứng khởi động lại hoạt động hệ thống +2 chân XTAL1, XTAL2 chân tạo dao động cho vi điều khiển, chân nối với thạch anh (hay sử dụng loại 4M), tụ gốm (22pF) +Chân Avcc thường nối lên Vcc sử dụng ADC chân nối qua cuộn cảm lên Vcc với mục đích ổn định điện áp cho biến đổi * Port B gồm có chân từ chân số 14 đến 19 ( PB0 đến PB5) chân 9, 10 ( PB6, PB7) Với chân có chức đặt biệt chân 16 đến 18 tương ứng với SS, MISO, MOSI ba chân nạp chương trình cho vi điều khiển * Port C gồm có từ chân 23 đến 28 chân số ( PC0 đến PC6) với chân số có chức đặc biệt RESET * Port D gồm có chân từ chân số đến từ 11 đến 13 ( PD0 đến PD7 ) với chân chân 10 chân gắn dao động thạch anh -Timer bit: - Timer 16 bit: - ADC: kênh, 10 bit - Giao tiếp: TWI (I2C), UART, SPI * Điện áp hoạt động: Atmega8L: 2.7V – 5.5V Atmega328: 4.5V – 5.5V… * Atmega8 có cách RESET: - Reset cấp nguồn - Reset ngồi (thơng qua chân RESET) - Watchdog RESET - Reset nguồn bị sụt áp 2.1.2 Tổ chức nhớ Atmega328: * Bộ nhớ chương trình ( Program memory ) : Là nhớ Flash lập trình xóa Bộ nhớ chương trình gồm phần: vector ngắt ( interrupts vectors ) mã lệnh chương trình ( instruction ) Các interrupts vectors nằm phần đầu nhớ chương trình độ dài tùy vào loại chip Tiếp sau interrupts vectors instruction, mã lệnh để chip thực thi, chương trình viết cho chip load vào phần * Bộ nhớ liệu (Data memory): Đây nhớ quan trọng chip, lập trình chủ yếu truy cập nhớ Data memory gồm có phần: Các ghi chức (Register file): tất chip AVR có 32 ghi(từ 0x00 -> 0x1F) ghi bit Các Register file đặt tên theo thứ tự R0-R31 Các ghi dùng để truy cập trực tiếp instruction, dùng để thực phép toán, Các ghi xuất nhập (I/O Register): I/O Register gồm 60 ghi, ngõ giao tiếp vi điều khiển với thiết bị ngoại vi, tất ghi trạng thái, điều khiển, thiết bị ngoại vi nằm Ví dụ ghi DDRB,DDRC,DDRD dùng để khai báo trạng thái I/O cho Port B,C,D Ram tĩnh (Internal SRAM ): khơng gian chứa biến q trình thực thi chương trình Ram ngoại (External SRAM): chip AVR gắn thêm nhớ để sử dụng thêm biến, phần nhớ tồn chip sử dụng thêm nhớ EEPROM (Electrically Ereasable Programmable ROM) : nhớ quan trọng vi điều khiển AVR, nhớ ROM nên khơng bị xóa điện nên dùng để lưu trữ liệu Bộ nhớ EEPROM tách riêng với phần địa bắt đầu 0x00 * Vùng nhớ I/O cửa ngõ giao tiếp CPU thiết bị ngoại vi Tất ghi điều khiển, trạng thái…của thiết bị ngoại vi nằm Về việc điều khiển PORT AVR, PORT liên quan đến ghi DDRx, PORTx PINx, tất ghi nằm vùng nhớ I/O Xa hơn, muốn truy xuất thiết bị ngoại vi khác Timer, chuyển đổi Analog/Digital, giao tiếp USART…đều thực thông qua việc điều khiển ghi vùng nhớ Vùng nhớ I/O truy cập SRAM hay ghi I/O Nếu sử dụng instruction truy xuất SRAM để truy xuất vùng nhớ địa chúng tính từ 0x0020 đến 0x005F Nhưng truy xuất ghi I/O địa chúng đựơc tính từ 0x0000 đến 0x003F Instruction OUT dùng xuất giá trị ghi I/O, lệnh sử dụng địa kiểu ghi, cấu trúc lệnh sau: OUT A, Rr, A địa ghi vùng nhớ I/O, Rr ghi RF, lệnh OUT xuất giá trị từ ghi Rr ghi I/O có địa A Vì ghi vùng I/O không hiểu theo tên gọi Register file, lập trình cho ghi này, người lập trình cần nhớ địa ghi, việc tương đối khó khăn Tuy nhiên, hầu hết phần mềm lập trình cho AVR, địa tất ghi vùng I/O định nghĩa trước file Definition, cần đính kèm file vào chương trình bạn truy xuất ghi với tên gọi chúng 2.1.3 Thanh ghi trạng thái: Nằm vùng nhớ I/O, ghi SREG có địa I/O 0x003F địa nhớ 0x005F (thường vị trí cuối vùng nhớ I/O) số ghi quan trọng AVR, mà tơi dành phần để giới thiệu ghi Thanh ghi SREG chứa bit cờ (flag) trạng thái xử lí, tất bit bị xóa sau reset, bit đọc ghi chương trình Chức bit mô tả sau: Bit – C (Carry Flag: Cờ nhớ): bit nhớ phép đại số logic Bit – Z (Zero Flag: Cờ 0): cờ set kết phép toán đại số hay phép Logic Bit – N (Negative Flag: Cờ âm): cờ set kết phép toán đại số hay phép Logic số âm Bit – V (Two’s complement Overflow Flag: Cờ tràn bù 2): hoạt động cờ khó hiểu cho bạn liên quan đến kiến thức số nhị phân (phần bù), đề cập đến thấy cần thiết Bit – S (Sign Bit: Bit dấu): Bit S kết phép XOR cờ N V, S=N xor V Bit – H (Half Carry Flag: Cờ nhờ nữa): cờ H cờ nhớ vài phép toán đại số phép Logic, cờ hiệu phép toán với số BCD Bit – T (Bit Copy Storage): sử dụng Instruction BLD (Bit LoaD) BST (Bit STorage) Tơi giải thích chức Bit T phần giới thiệu BLD BST Bit – I (Global Interrupt Enable) : Cho phép ngắt toàn bộ): Bit phải set lên chương trình có sử dụng ngắt Sau set bit này, bạn muốn kích hoạt loại ngắt cần set bit ngắt riêng ngắt Hai instruction dùng riêng để Set Clear bit I SEI CLI 2.1.4 Giới thiệu chung cấu trúc bên trong: *Sơ đồ cấu trúc bên Atmega 328: 2.2 Mạch nguyên lý: 4.7k PB0 K A R11 Q3 10k R51 220 PD1 R52 220 PD2 R53 220 PD3 R54 220 PD4 R55 220 PD5 C1815 A B D F R57 220 LED2 F A A G B B P C DP CA1 C D D DP CA1 CA2 E E CA2 A F F B B C C D D E E E R56 220 PD6 LED1 A F G G G P THU PHAT PD0 C 10k 10k G R1 R12 R2 Q16 A1015 PC4 Q4 R9 4K7 A1015 R50 4K7 PB1 K PC0/ADC0/PCINT8 PC1/ADC1/PCINT9 PC2/ADC2/PCINT10 PC3/ADC3/PCINT11 PC4/ADC4/SDA/PCINT12 PC5/ADC5/SCL/PCINT13 PC6/RESET/PCINT14 Q5 C1815 10k THU1 PHAT1 AREF AVCC 23 24 25 26 27 28 PB0 PB1 PB2 MOSI MISO SCK C6 R10 10k 33p X1 16M PC0 C5 RES 14 15 16 17 18 19 10 PB0/ICP1/CLKO/PCINT0 PB1/OC1A/PCINT1 PB2/SS/OC1B/PCINT2 PB3/MOSI/OC2A/PCINT3 PB4/MISO/PCINT4 PB5/SCK/PCINT5 PB6/TOSC1/XTAL1/PCINT6 PB7/TOSC2/XTAL2/PCINT7 C4 K_RES 33p PC4 PC5 10uF A R15 21 20 PD0/RXD/PCINT16 PD1/TXD/PCINT17 PD2/INT0/PCINT18 PD3/INT1/OC2B/PCINT19 PD4/T0/XCK/PCINT20 PD5/T1/OC0B/PCINT21 PD6/AIN0/OC0A/PCINT22 PD7/AIN1/PCINT23 10k 4.7k 10k U3 11 12 13 R13 R16 R14 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PC5 2 A K 7SEG-A8 A K ATMEGA328P U55 A 10K R4 10K Q1 C1815 LM358 JACK-DC- 1N4007 C22 C1 104 470uF VI VO D111 C2 LED-RED 104 R222 330 RV1 10K R3 PB2 K A U1:A A K LDR 7805 D1 + GND J2 4K7 K R5 BURN_E 10k K RL1 A D9 MISO SCK MOSI RES A 1N4148 K D8 OUT1 R6 R7 PC0 Q2 C1815-H 10k 2.3 Nguyên lý hoạt động mạch: 2.3.1 Sơ đồ khối chức năng: 2.3.2 Giới thiệu sơ lược nguyên lý hoạt động: Nguyên lý hoạt động mạch dựa nguyên tắc phát thu sóng hồng ngoại từ led phát led thu tạo tín hiệu xung với hai mức thấp (0v), mức cao (5v) khơng có người qua hai led thu phát led thu nhận ánh sáng hồng ngoại làm cho điện trở led thu giảm mạnh, lúc điện áp rơi điện trở ngõ vào nối với transtor gần với điện áp nguồn Vcc nên transtor Q1, Q2 ta code cho vi điều khiển xuất giá trị led bảy đoạn Khi có người lướt qua lượt cặp led thu phát đến cập thu phát code cho vi điều khiển xuất giá trị tương ứng led bảy đoạn, ngược lại vi điều khiển xuất giá trị trừ đến dừng lại, song song có người phòng mà trời tối LDR có nhiệm vụ bật tắt đèn tương ứng 2.3.3 Các linh kiện sử dụng mạch: a Điện trở: b Tụ điện: c Led thu phát hồng ngoại d Vi diều khiển Atmega328 e Transtor f Led Đoạn g Ic ổn áp 7805 h LDR 2.2.4 Phân tích nguyên lý hoạt động phần: a Mạch thu phát hồng ngoại: R1 10k R12 R2 10k 4.7k PB0 Q3 C1815 A THU PHAT K 10k K A R11 Khi led thu nhận ánh sáng hồng ngoại làm cho điện trở led thu giảm mạnh lúc xuất điện áp phân cực chân B transtor làm cho transtor dẫn lúc mức điện áp chân PB0 mức ngược lại gặp vật cản mức b Mạch điều khiển đèn tự động: K R5 4K7 LDR A U1:A Q1 C1815 LM358 RV1 R4 10K 10K 10K R3 1 PB2 Khi ánh sáng phòng lớn làm giảm điện trở bên LDR dẫn đến có dòng chạy qua cấp cho opamp, opamp có nhiệm vụ khuếch đại tín hiệu điện áp ngõ để phân cực cho BJT làm cho BJT dẫn xuất mức điện áp ngõ cho vi điều khiển CHƯƠNG 3: KẾT QUẢ MƠ PHỎNG 3.1 Mơ hình mơ proteus: 3.2 Code mạch: #include #include #define rl PORTC.0 // khai báo chân điều khiển role #define l1 PORTC.5 // khai báo chân điều khiển led #define l2 PORTC.4 // khai báo chân điều khiển led #define cb1 PINB.0 // khai báo chân nhận tín hiệu ngõ vào cảm biến #define cb2 PINB.1 // khai báo chân nhận tín hiệu ngõ vào cảm biến #define LDR PINB.2 unsigned char so[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; // ma doan unsigned char soNguoi = 0,chuc = 0,dv = ; void hienthi7doan() { int i; chuc = soNguoi/10; dv = soNguoi%10; PORTD = so[chuc]; l1 = ; for (i = 0;i 0)rl = 1;else rl = 0; } } } CHƯƠNG 4: NHẬN XÉT 4.1 Ưu điểm: Mạch phòng học thơng minh có ưu điểm gọn nhẹ hoạt động ổn định xác dễ lắp đặt sửa chữa, mạch có giá trị thiết thực sống đếm số người vào phòng bắt tắt đèn cách dễ dàng, giúp tiết kiệm điện thời gian, mạch hoat động dòng điện chiều 5v nên hao tốn lượng 4.2 Khuyết điểm: Bên cạnh ưu điểm mạch tồn số khuyết điểm sau: tín hiệu hồng ngoại led phát không đủ mạnh để truyền xa khơng gian nên để led thu nhận duocdj tín hiệu mạnh ổn định led thu led phát phải đặt khơng q xa mà cửa lớn không khả thi CHƯƠNG 5: KẾT LUẬN Đồ án tập lớn, thử thách sinh viên nhiên với đồ án giúp cho sinh viên vận dụng cách cụ thể kiến thức học cách sáng tạo làm quen dần với liên kiện thực tế hiểu nguyên lý hoạt động chức chúng Qua giúp sinh viên làm quen dần phương pháp nghiên cứu làm việc nhóm để hồn thành nhiệm vụ cách tốt giúp sinh viên khỏi bỡ ngỡ với đồ án tốt nghiệp sau ... CHƯƠNG 4: NHẬN XÉT 4.1 Ưu điểm: Mạch phòng học thơng minh có ưu điểm gọn nhẹ hoạt động ổn định xác dễ lắp đặt sửa chữa, mạch có giá trị thiết thực sống đếm số người vào phòng bắt tắt đèn cách dễ dàng,... dụng kiến thức mơn vi xử lí vào thực tế 1.2 Mục tiêu đề tài: Đề tài nhằm mục đích thiết kế chế tạo mạch đếm số người vào phòng, bật đèn có người phòng trời tối, tắt đèn phòng đủ sáng sử dụng vi... OUT1 R6 R7 PC0 Q2 C1815-H 10k 2.3 Nguyên lý hoạt động mạch: 2.3.1 Sơ đồ khối chức năng: 2.3.2 Giới thiệu sơ lược nguyên lý hoạt động: Nguyên lý hoạt động mạch dựa nguyên tắc phát thu sóng hồng ngoại