Thiết kế bộ đo và hiển thị nhiệt độ trên LCD và máy tính

34 3.5K 5
Thiết kế bộ đo và hiển thị  nhiệt độ trên LCD và máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC DANH SÁCH HÌNH ẢNH .................................................................................................. 3 BẢNG KÝ HIỆU.................................................................................................................. 4 Mở đầu .................................................................................................................................. 5 CHƢƠNG I: GIỚI THIỆU BỘ ĐO VÀ HIỂN THỊ NHIỆT ĐỘ TRÊN LCD VÀ MÁY TÍNH ..................................................................................................................................... 6 I. Khối điều khiển ( Vi điều khiển AVR) ........................................................................ 6 1. Giới thiệu chung ........................................................................................................ 6 2. Cấu trúc Atmega16 .................................................................................................... 7 II. Cảm biến đo nhiệt độ LM35 ........................................................................................ 8 III. TEXT LCD 16x2 ......................................................................................................... 9 IV.Ngôn ngữ lập trình và trình biên dịch ........................................................................ 12 V. Nạp chƣơng trình ....................................................................................................... 13 VI.Chƣơng trình ứng dụng hiển thị nhiệt độ trên máy tính ............................................ 14 1. Cơ bản về giao tiếp RS232 ...................................................................................... 14 2. Giao diện phần mềm viết chƣơng trình ứng dụng hiển thị trên máy tính ............... 15 CHƢƠNG II: THIẾT KẾ BỘ ĐO VÀ HIỂN THỊ NHIỆT ĐỘ TRÊN LCD VÀ MÁY TÍNH ................................................................................................................................... 16 I. Đo nhiệt độ sử dụng cảm biến nhiệt độ LM35 .......................................................... 16 1. Bộ ADC (Analog to digital Converter) ................................................................... 16 2. Sử dụng ADC cho cảm biến nhiệt độ LM35: .......................................................... 18 II. Hiển thị nhiệt độ trên LCD ........................................................................................ 19 III. Hiển thị nhiệt độ trên máy tính .................................................................................. 20 1. Thiết kế giao diện phần mềm .................................................................................. 20 2. Viết chƣơng trình ..................................................................................................... 22 IV.Thiết kế mạch mô phỏng trên Proteus ....................................................................... 23 V. Thiết kế phần cứng bằng Altium design .................................................................... 24 1. Thiết kế mạch nguyên lý ......................................................................................... 24 1 2. Thiết kế mạch in: ..................................................................................................... 25 VI.Giải thuật và điều khiển ............................................................................................. 27 1. Giải thuật ................................................................................................................. 27 2. Lập trình điều khiển ................................................................................................. 28 CHƢƠNG III: KẾT QUẢ, KIỂM THỬ VÀ ĐÁNH GIÁ HỆ THỐNG............................ 29 I. Kết quả ....................................................................................................................... 29 1. Cài đặt hệ thống ....................................................................................................... 29 2. Kết quả ..................................................................................................................... 30 II. Kiểm thử hệ thống ..................................................................................................... 31 III. Đánh giá hệ thống ...................................................................................................... 31 1. Ƣu điểm ................................................................................................................... 31 2. Nhƣợc điểm ............................................................................................................. 32 CHƢƠNG IV: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .......................................... 33 TÀI LIỆU THAM KHẢO .................................................................................................. 34 2 DANH SÁCH HÌNH ẢNH Hình 1.1. Sơ đồ khối bộ đo và hiển thị nhiệt độ trên LCD và PC ........................................ 6 Hình 1.2. Vi điều khiển Atmega16 ....................................................................................... 7 Hình 1.3. Chân cảm biến nhiệt độ LM35 ............................................................................. 8 Hình 1.4. Sơ đồ nguyên lí LCD 16x2 ................................................................................... 9 Hình 1.5. Hình dạng thực 1 LCD 16x2 (16 cột, 2 hàng) ...................................................... 9 Hình 1.6. Kết nối LCD ....................................................................................................... 11 Hình 1.7. Giao diện CodeVisionAVR V2.05.0. ................................................................. 12 Hình 1.8. Mạch nạp AVRISP ............................................................................................. 13 Hình 1.9. Mạch nạp AVR910C .......................................................................................... 13 Hình 1.10. Phần mềm nạp chƣơng trình Kazama Programmer ......................................... 13 Hình 1.11. Khung truyền UART ........................................................................................ 14 Hình 1.12. Giao diện Visual Basic 2010 ............................................................................ 15 Hình 2.1. Kết nối nguồn ADC ............................................................................................ 17 Hình 2.2. Sử dụng ADC kênh 0 cho cảm biến LM35 ........................................................ 18 Hình 2.3. Kết nối LCD với AVR........................................................................................ 19 Hình 2.4. Tạo New Project ................................................................................................. 20 Hình 2.5. Toolbox............................................................................................................... 21 Hình 2.6. Phần mềm hiển thị nhiệt độ trên PC ................................................................... 21 Hình 2.7. Mô phỏng trên Proteus ....................................................................................... 23 Hình 2.8. Mạch nguyên lí phần cứng ................................................................................. 24 Hình 2.9. Bản vẽ mạch in ................................................................................................... 25 Hình 2.10. Thiết lập thông số đƣờng mạch in .................................................................... 25 Hình 2.11. Sắp xếp linh kiện .............................................................................................. 26 Hình 2.12. Mạch in ............................................................................................................. 26 Hình 3.1. Nạp chƣơng trình vào vi điều khiển ................................................................... 29 Hình 3.2. Cài đặt phần mềm Temperature measurement Ver1.00.1 .................................. 29 Hình 3.3. Bộ đo và hiển thị nhiệt độ trên LCD .................................................................. 30 Hình 3.4. Hiển thị nhiệt độ trên máy tính ........................................................................... 30 Hình 3.5. Kết quả mô phỏng hệ thống bằng Proteus .......................................................... 31 Hình 3.6. So sánh giá trị nhiệt độ với nhiệt kế ................................................................... 31 3 BẢNG KÝ HIỆU KÝ HIỆU ĐƠN VỊ Vout V Vref V adc_data[0] ĐỊNH NGHĨA Điện áp ngõ ra LM35 Điện áp tham chiếu bộ ADC Giá trị bộ ADC kênh 0 của Atmega16 4 Mở đầu Ngày nay, đo lƣờng là một yếu tố quan trọng trong nền công nghiệp. Nếu thiếu đo lƣờng, những ngƣời kĩ sƣ không thể có đƣợc cái nhìn chính xác đối với các hiện tƣợng, đồng thời gây ra sự sai lệch và những kết quả không nhƣ mong đợi trong nghiên cứu. Trong hệ đơn vị SI (International System Unit), có sáu đại lƣợng vật lý cơ bản và nhiệt độ là một trong số đó. Sự thay đổi của nhiệt độ chỉ ra một cách khá rõ ràng những gì thực sự xảy ra bên trong hiện tƣợng, hoặc những chi tiết cơ học chúng ta quan sát đƣợc. Việc đo nhiệt độ cũng ngày càng trở nên dễ dàng và đa dạng, từ một chiếc nhiệt kế đơn giản đến những hệ thống điện tử thông minh. Qua quá trình học tập môn học phân tích và thiết kế hệ thống nhúng, chúng em đã tiếp thu những kiến thức cơ bản để đƣa ra ý tƣởng thiết kế một mạch đo nhiệt độ với những tính năng đặc biệt nhằm ứng dụng trong các môi trƣờng mang tính tự động hóa. Tiểu luận “Thiết kế bộ đo và hiển thị nhiệt độ trên LCD và máy tính” dƣới sự hƣớng dẫn của PGS.TS. Huỳnh Quyết Thắng đƣợc thực hiện bởi nhóm học viên cao học: - Dƣơng Văn Đức - Nguyễn Chí Thanh - Hồ Văn Thái Lớp CB13CĐT – Đại Học Bách Khoa Hà Nội. Chúng em xin trân thành cảm ơn sự chỉ bảo tận tình của thầy giáo trong quá trình hình thành và hoàn thiện tiểu luận! 5 CHƢƠNG I: GIỚI THIỆU BỘ ĐO VÀ HIỂN THỊ NHIỆT ĐỘ TRÊN LCD VÀ MÁY TÍNH Yêu cầu cần thực hiện:     Mạch điện tử đƣợc thiết kế trên máy tính bằng phần mềm chuyên dụng. Nhiệt độ đo đƣợc hiển thị trên LCD và máy tính. Sai số cho phép +/- 10C Thao tác khống chế đƣợc mô phỏng bằng Led và trên LCD. Sơ đồ khối của bộ đo và hiển thị nhiệt độ trên LCD và máy tính: Cảm biến nhiệt LM35 LCD AVR (atmega16) Máy tính keypad WARNING Hình 1.1. Sơ đồ khối bộ đo và hiển thị nhiệt độ trên LCD và PC I. Khối điều khiển ( Vi điều khiển AVR) 1. Giới thiệu chung Vi điều khiển AVR là họ điều khiển do hãng Atmel phát triển, với cấu trúc tập lệnh đơn giản hóa – RISC (Reduced Instruction Set Computer), một kiểu cấu trúc đang thể hiện ƣu thế trong các bộ xử lí. So với các chip vi điều khiển 8 bits khác, AVR có nhiều tính năng vƣợt trội:  Sử dụng đơn giản. Gần nhƣ chúng ta không cần mắc thêm bất kỳ linh kiện phụ nào khi sử dụng AVR, thậm chí không cần nguồn tạo xung clock cho chip (thƣờng là các khối thạch anh).  Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản, có loại mạch nạp chỉ cần vài điện trở là có thể làm đƣợc. Một số AVR còn hỗ trợ lập trình on – chip bằng bootloader không cần mạch nạp…  Ngoài lập trình bằng asembly nhƣ thông thƣờng, AVR còn hỗ trợ lập trình C với cấu trúc lệnh đơn giản. 6  AVR có thể sử dụng xung clock lên tới 16MHz (với xung ngoài) hoặc có thể sử dụng xung clock bên trong chip ( tối đa 8MHz)  Tích hợp bộ nhớ Flash dung lƣợng lớn, có khả năng lập trình nhiều lần, có SRAM lớn, đồng thời tích hợp bộ nhớ lƣu trữ lập trình đƣợc EEPROM.  Số cổng giao tiếp nhiều (I/O port) và 2 chiều (bi-directional).  Tích hợp nhiều tính năng: chuyển đổi số - tƣơng tự (Analog – Gigital), nhiều chuẩn giao tiếp (RS-232, I2C, SPI…), có bộ đếm timer/counter tích hợp tạo xung PWM… Bản thân họ AVR có rất nhiều loại vi điều khiển khác nhau về dung lƣợng bộ nhớ, số cổng giao tiếp… (Atmega8, Atmega16, Attiny88…). Tuy nhiên về cấu trúc cơ bản và cách lập trình là hoàn toàn tƣơng tự nhau. Mặc dù các ứng dụng trong bài tiểu luận này đƣợc viết trên Atmega 16 nhƣng đều có thể áp dụng trên các vi điều khiển AVR khác. Chƣơng trình đƣợc viết trên máy tính bằng phần mềm CodeVisionAVR, đƣợc mô phỏng thử nghiệm trên phầm mềm Proteus, đƣa vào AVR bằng mạch nạp AVR 910 USB Programer, phần mạch in đƣợc thiết kế bằng phần mềm Altium design. 2. Cấu trúc Atmega16 Hình 1.2. Vi điều khiển Atmega16 ATmega16 có 40 chân giao tiếp, trong đó có 4 PORT giao tiếp 8 bit (PORTA, PORTB, PORTC, và PORTD). Các PORT này có thể nhập - xuất dữ liệu hay điều khiển theo 2 chiều (bi-directional). Với 4 cổng này, ATmega16 có thể điều khiển các thiết bị đầu ra (đèn led, LCD, động cơ, v.v) cũng nhƣ nhận các tín hiệu đầu vào (sensor, keypad, camera, v.v) 7 ATmega16 tích hợp bộ nhớ Flash với dung lƣợng 16 Kb dùng để lập trình, 512 bytes EEPROM có khả năng lƣu trữ và lập trình đƣợc, 1Kb SRAM. Ngoài ra ATmega16 hỗ trợ khả năng sử dụng bộ nhớ ngoài, do đó có thể làm tăng khả năng lƣu trữ và xử lý của nó. ATmega16 có 2 bộ timer/counter 8 bit và 1 bộ timer/counter 16 bit (chân T0,T1) có khả năng xuất xung PWM (thƣờng dùng trong điều khiển động cơ), đếm sự kiện xảy ra, hay xác định thời gian cho vi điều khiển. ATmega16 còn tích hợp các bộ chuyển đổi tƣơng tự - số (Analog Digital Convert ADC), có tác dụng chuyển đổi tín hiệu tƣơng tự sang tín hiệu số, áp dụng cho việc xử lý tín hiệu vào từ sensor (Từ chân 33 đến chân 40). Để tích hợp với các vi điều khiển khác hay với hệ thống máy tính, ATmega16 hỗ trợ các chuẩn giao tiếp RS232, TWI-I2C, SPI. II. Cảm biến đo nhiệt độ LM35 LM35 là loại cảm biến nhiệt độ đƣợc sử dụng rộng dãi trong công nghiệp bởi giá thành thấp và cách vận hành đơn giản. LM35 có mức điện áp thay đổ trực tiếp theo độ C (10mV/ 0C). Hình 1.3. Chân cảm biến nhiệt độ LM35 Chân +Vs là chân cung cấp điện áp cho LM35 hoạt động. Chân Vout là chân điện áp ngõ ra của LM35, đƣợc đƣa vào chân Analog của bộ ADC. Chân GND là chân mass của LM35.      Có thể đảm bảo độ chính xác 0.50C ( tại +250C) Dải đo từ -550C đến +1500C. Điện áp sử dụng từ 4V đến 30V. Dòng điện nhỏ hơn 60µA. Tự tỏa nhiệt thấp, 0.080C trong không khí. 8 III. TEXT LCD 16x2 Text LCD là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị các dòng chữ hoặc số trong bảng mã ASCII. Text LCD đƣợc chia sẵn thành từng ô và ứng với mỗi ô chỉ có thể hiển thị một ký tự ASCII. Mỗi ô của Text LCD bao gồm các “chấm” tinh thể lỏng, việc kết hợp “ẩn” và “hiện” các chấm này sẽ tạo thành một ký tự cần hiển thị. Trong các Text LCD, các mẫu ký tự đƣợc định nghĩa sẵn. Kích thƣớc của Text LCD đƣợc định nghĩa bằng số ký tự có thể hiển thị trên 1 dòng và tổng số dòng mà LCD có. Text LCD 16x2 là loại có 2 dòng và mỗi dòng có thể hiển thị tối đa 16 ký tự. Hình 1.4. Sơ đồ nguyên lí LCD 16x2 Text LCD có 2 cách giao tiếp cơ bản là nối tiếp (nhƣ I2C) và song song. Loại đƣợc sử dụng trong bài báo cáo này là loại giao tiếp song song. Hình 1.5. Hình dạng thực 1 LCD 16x2 (16 cột, 2 hàng) 9 Chức năng các chân LCD Chức năng Ground Nguồn cho LCD Tƣơng phản Điều khiển LCD Dữ liệu/lệnh Số thứ tự chân 1 2 Tên Vss (Gnd) Vdd(Vcc) 3 4 Vee RS 5 R/W 6 EN 7 8 9 10 11 12 13 14 D0 D1 D2 D3 D4 D5 D6 D7 Trạng thái Logic - Mô tả 0 1 0 1 0 1 Từ 1 xuống 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0-Vdd D0-D7: Lệnh D0-D7: Dữ liệu Ghi Đọc Vô hiệu hóa LCD LCD hoạt động Bắt đầu ghi/đọc LCD 0V +5V Bit 0 LSB Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 MSB Bảng 1. Chức năng các chân LCD Trong một số LCD 2 chân LED nền đƣợc đánh số 15 và 16 nhƣng trong một số trƣờng hợp 2 chân này đƣợc ghi là A (Anode) và K (Cathode). Hình 1.6 mô tả cách kết nối LCD với nguồn và mạch điều khiển. 10 Hình 1.6. Kết nối LCD Các chân Vcc, Vss và Vee Chân Vcc cấp dƣơng nguồn 5V, chân Vss nối đất, chân Vee đƣợc dùng để điều khiển độ tƣơng phản của màn hình LCD. RS (Register select) Khi ở mức thấp, chỉ thị đƣợc truyền đến LCD nhƣ xoá màn hình, vị trí con trỏ….Khi ở mức cao, kí tự đƣợc truyền đến LCD. R/W (Read/Write) Dùng để xác định hƣớng của dữ liệu đƣợc truyền giữa LCD và vi điều khiển. Khi nó ở mức thấp dữ liệu đƣợc ghi đến LCD và khi ở mức cao, dữ liệu đƣợc đọc từ LCD. Nếu chúng ta chỉ cần ghi dữ liệu lên LCD thì chúng ta có thể nối chân này xuống GND để tiết kiệm chân. E (Enable) Cho phép ta truy cập/xuất đến LCD thông qua chân RS và R/W. Khi chân E ở mức cao (1) LCD sẽ kiểm tra trạng thái của 2 chân RS và R/W và đáp ứng cho phù hợp. Khi dữ liệu đƣợc cấp đến chân dữ liệu thì một xung mức cao xuống thấp phải đƣợc áp đến chân này để LCD chốt dữ liệu trên các chân dữ liêu. Xung này phải rộng tối thiểu là 450ns. Còn khi chân E ở mức thấp (0), LCD sẽ bị vô hiệu hoá hoặc bỏ qua tín hiệu của 2 chân RS và R/W. Các chân D0 - D7 Đây là 8 chân dữ liệu 8 bít, đƣợc dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD. Các kí tự đƣợc truyền theo mã tƣơng ứng trong bảng mã ascii. Cũng có các mã lệnh mà có thể đƣợc gửi đến LCD để xoá màn hình hoặc đƣa con trỏ về đầu dòng hoặc nhấp nháy con trỏ. LCD có 2 chế độ giao tiếp, chế độ 4 bit (chỉdùng 4 chân D4 đến D7 để truyền dữ liệu) và chế độ 8 bit (dùng cả 8 chân dữ liệu từ D0 đến D7), ở chế độ 4 bit, khi truyền 1 byte, chúng ta sẽ truyền nửa cao của byte trƣớc, sau đó mới truyền nửa thấp của byte. 11 IV. Ngôn ngữ lập trình và trình biên dịch AVR nói chung cũng nhƣ ATmega16 nói riêng hỗ trợ 2 ngôn ngữ lập trình thông dụng là assembly và C. Việc lập trình bằng assembly giúp cho chƣơng trình nhỏ gọn nhƣng khá rắc rối do gần với ngôn ngữ máy. Lập trình bằng C tuy cho chƣơng trình có dung lƣợng lớn hơn so với khi lập trình bằng assembly, nhƣng lại dễ dàng hơn trong việc viết code và dễ debug. Để lập trình cho AVR, có khá nhiều trình biên dịch, ví dụ nhƣ AVR studio, WinAVR, CodevisionAVR… Trong bài tiểu luận, em dùng ngôn ngữ C đƣợc viết trên CodeVisionAVR V2.05.0. Hình 1.7. Giao diện CodeVisionAVR V2.05.0. 12 V. Nạp chƣơng trình Chƣơng trình sau khi đƣợc biên dịch bởi trình biên dịch sẽ đƣợc nạp vào AVR bằng 2 cách: Nạp qua một thiết bị trung gian gọi là mạch nạp hoặc nạp trực tiếp thông qua giao tiếp RS232 với máy tính nhờ sử dụng chức năng bootloader của vi điều khiển. Có khá nhiều loại mạch nạp khác nhau cho AVR, từ đơn giản đến phức tạp, hỗ trợ các loại AVR khác nhau, với các chuẩn giao tiếp khác nhau. Dƣới đây là một số loại mạch nạp hay dùng: Hình 1.8. Mạch nạp AVRISP Hình 1.9. Mạch nạp AVR910C Vi điều khiển AVR đƣợc đặt trên các mạch nạp. Các mạch nạp, thông qua cáp nối với máy tính, sẽ nạp chƣơng trình từ máy tính vào vi điều khiển. Trong bài tiểu luận chúng em sử dụng mạch nạp AVRISP với phần mềm nạp chƣơng trình Kazama Programmer. Hình 1.10. Phần mềm nạp chương trình Kazama Programmer 13 VI. Chƣơng trình ứng dụng hiển thị nhiệt độ trên máy tính Nhiệt độ đo đƣợc từ cảm biến đƣợc vi điều khiển truyền lên máy tính qua cổng giao tiếp RS232. 1. Cơ bản về giao tiếp RS232 RS232 là một dạng giao thức, dùng để truyền dữ liệu giữa các thiết bị điện tử có hỗ trợ giao thức này. RS232 là một trong những giao thức ra đời sớm nhất và có thể nói là đơn giản nhất. Cho đến nay, RS232 vẫn còn đƣợc ứng dụng rất nhiều do giao thức đơn giản, độ tin cậy cao, và khoảng cách truyền khá xa, tuy nhiên tốc độ truyền vẫn ở mức khá khiêm tốn so với các giao thức ra đời sau này nhƣ USB, SPI, I2C… Để sử dụng đƣợc giao tiếp RS232, chúng ta sử dụng module UART có sẵn trong Atmega16. UART là viết tắt của Universal Asynchronous Receiver Transmitter, là giao tiếp truyền nhận dị bộ, dị bộ ở đây có nghĩa là thiết bị truyền và thiết bị nhận không cùng chung xung nhịp clock. Trong giao thức RS232, chúng ta quan tâm đến những thông số sau:  Tốc độ baud: Là số bit truyền trên 1s, điển hình là 9600 bit/s  Parity: có 2 loại parity là parity chẵn và parity lẻ, dùng để tăng tính kiểm soát lỗi trong 1 lần truyền, giả sử ta cấu hình parity là chẵn thì mỗi lần truyền, nếu số bit có mức logic 1 là lẻ thì module tự thêm 1 bit 1 vào cuối khung truyền, còn nếu số bit có mức logic 1 là chẵn thì không thêm bit 1 vào cuối khung truyền. Parity lẻ cũng tƣơng tự nhƣ vậy.  Số bit trên mỗi lần truyền: Là số bit dữ liệu (data) trên mỗi khung truyền, thƣờng là 8 bit. Một khung truyền UART có cấu trúc nhƣ sau: Hình 1.11. Khung truyền UART 14 2. Giao diện phần mềm viết chƣơng trình ứng dụng hiển thị trên máy tính Chúng em đã viết một phần mềm ứng dụng nhỏ để hiển thị và điều khiển dải nhiệt độ đo bằng việc sử dụng ngôn ngữ VB.Net. Hình 1.12. Giao diện Visual Basic 2010 15 CHƢƠNG II: THIẾT KẾ BỘ ĐO VÀ HIỂN THỊ NHIỆT ĐỘ TRÊN LCD VÀ MÁY TÍNH I. Đo nhiệt độ sử dụng cảm biến nhiệt độ LM35 1. Bộ ADC (Analog to digital Converter) Trong các ứng dụng đo lƣờng và điều khiển bằng vi điều khiển bộ chuyển đổi tƣơng tự-số (ADC) là một thành phần rất quan trọng. Dữ liệu trong thế giới của chúng ta là các dữ liệu tƣơng tự (analog). Ví dụ nhiệt độ không khí buổi sáng là 250C và buổi trƣa là 320C, giữa hai mức giá trị này có vô số các giá trị liên tục mà nhiệt độ phải “đi qua” để có thể đạt mức 320C từ 250C, đại lƣợng nhiệt độ nhƣ thế gọi là một đại lƣợng analog. Trong khi đó, vi điều khiển là một thiết bị số (digital), các giá trị mà một vi điều khiển có thể thao tác là các con số rời rạc vì thực chất chúng đƣợc tạo thành từ sự kết hợp của hai mức 0 và 1. Ví dụ chúng ta muốn dùng một thanh ghi 8 bit trong vi điều khiển để lƣu lại các giá trị nhiệt độ từ 0oC đến 255 0C, nhƣ chúng ta đã biết, một thanh ghi 8 bit có thể chứa tối đa 256 (28) giá trị nguyên từ 0 đến 255, nhƣ thế các mức nhiệt độ không nguyên nhƣ 28.123 0C sẽ không đƣợc ghi lại. Nói cách khác, chúng ta đã “số hóa” (digitalize) một dữ liệu analog, thành một dữ liệu digital. Quá trình “số hóa” này thƣờng đƣợc thực hiện bởi một thiết bị gọi là “bộ chuyển đổi tƣơng tự - số hay đơn giản là ADC (Analog to Digital Converter). Độ phân giải (resolution): Khái niệm độ phân giải đƣợc dùng để chỉ số bit cần thiết để chứa hết các mức giá trị digital ngõ ra. Nếu một mạch chuyển đổi ADC có độ phân giải n bit thì sẽ có 2n mức giá trị có thể có ở ngõ ra digital. Độ phân giải liên quan mật thiết đến chất lƣợng chuyển đổi ADC, việc lựa chọn độ phân giải phải phù hợp với độ chính xác yêu cầu và khả năng xử lý của bô điều khiển. Điện áp tham chiếu (reference voltage): Trong các bộ ADC, Vref thƣờng là thông số đƣợc đặt bởi ngƣời dùng, nó là điện áp lớn nhất mà thiết bị có thể chuyển đổi. Ví dụ, một bộ ADC 10 bit (độ phân giải) có Vref = 3V, nếu điện áp ở ngõ vào là 1V thì giá trị số thu đƣợc sau khi chuyển đổi sẽ là: 1023 x (1/3) = 314. Trong đó 1023 là giá trị lớn nhất mà một bộ ADC 10 bit có thể tạo ra. Vì điện áp tham chiếu ảnh hƣởng đến độ chính xác của quá trình chuyển đổi, chúng ta cần tính toán để chọn 1 điện áp tham chiếu phù hợp, không đƣợc nhỏ hơn giá trị lớn nhất của input nhƣng cũng đừng quá lớn. Chuyển đổi ADC trên AVR: Chip AVR ATmega16 của Atmel có tích hợp sẵn các bộ chuyển đổi ADC với độ phân giải 10 bit. Có tất cả 8 kênh đơn (các chân ADC0 đến ADC7), 16 tổ hợp chuyển đổi dạng so sánh, trong đó có 2 kênh so sánh có thể khuyếch đại. 16 ADC trên AVR cần đƣợc “nuôi” bằng nguồn điện áp riêng ở chân AVCC, giá trị điện áp cấp cho AVCC không đƣợc khác nguồn nuôi chip (VCC) quá +/-0.3V. Nhiễu (noise) là vấn đề rất quan trọng khi sử dụng các bộ ADC, để giảm thiểu sai số chuyển đổi do nhiễu, nguồn cấp cho ADC cần phải đƣợc “lọc” (filter) kỹ càng. Một cách đơn giản để tạo nguồn AVCC là dùng một mạch LC kết nối từ nguồn VCC của chip nhƣ hình 2.1, đây là cách đƣợc gợi ý bởi nhà sản xuất AVR. Hình 2.1. Kết nối nguồn ADC Có 4 thanh ghi trong bộ ADC trên AVR trong đó có 2 thanh ghi data chứa dữ liệu sau khi chuyển đổi, 2 thanh ghi điều khiển và chứa trạng thái của ADC.  ADMUX (ADC Multiplexer Selection Register): là 1 thanh ghi 8 bit điều khiển việc chọn điện áp tham chiếu, kênh và chế độ hoạt động của ADC.  ADCSRA (ADC Control and Status RegisterA): là thanh ghi chính điều khiển hoạt động và chứa trạng thái của module ADC.  ADCL và ADCH (ADC Data Register): 2 thanh ghi chứa giá trị của quá trình chuyển đổi. 17 2. Sử dụng ADC cho cảm biến nhiệt độ LM35: Vout của LM35 đƣợc nối với kênh ADC 0 của AVR. Điện áp tham chiếu là Vref = 5V. Hình 2.2. Sử dụng ADC kênh 0 cho cảm biến LM35 Điện áp Vout của LM35 thay đổi tuyến tính theo nhiệt độ với tỉ lệ 10mV trên 1oC. Độ phân giải của bộ ADC trên AVR là 10 bit và điện áp tham chiếu là 5V Nếu ta nối đầu ra của LM35 vào kênh 0 của bộ ADC thì giá trị bộ ADC đọc đƣợc là: adc_data[0] = (Vout*1024)/ Vref = (Vout*1024)/ 5000 Giá trị của adc_data[0] trong khoảng từ 0 đến 1023. Chúng ta lại có: Nhiệt độ (oC) = Vout (mV)/10 Vì vậy, giá trị của nhiệt độ đƣợc tính theo công thức: Nhiệt độ (oC) = adc_data[0] *( )/10 18 II. Hiển thị nhiệt độ trên LCD  Sơ đồ mạch kết nối AVR với LCD nhƣ hình 2.3 Hình 2.3. Kết nối LCD với AVR  Sơ đồ khối thuật toán hiển thị nhiệt độ trên LCD Giao tiếp AVR với LCD theo sơ đồ sau: START Khởi động LCD (init_lcd) Xóa LCD (lcd_clear()) Ghi ra LCD Di chuyển con trỏ Tiếp tục ? END 19  Lập trình cho LCD: Trong phần mềm lập trình Codevision, chúng em sử dụng thƣ viện lcd.h có sẵn các hàm giúp việc lập trình hiển thị trên LCD trở lên dễ dàng. Một số hàm sử dụng để lập trình: void lcd_init(unsigned char lcd_columns); khỏi tạo điều khiển LCD void lcd_gotoxy(unsigned char x, unsigned char y); đặt con trỏ LCD tới vị trí x, y void lcd_clear (void); xóa LCD void lcd_putchar(char c); ghi kí tự c ra LCD void lcd_puts(char *str); ghi chuỗi str đặt trong SRAM ra LCD void lcd_putsf(char flash *str); ghi chuỗi str đặt trong FLASH ra LCD void lcd_putse (char eeprom *str); ghi chuỗi str đặt trong EEPROM ra LCD void itoa(int n, char *str) đổi số integer n sang kí tự trong chuỗi str. III. Hiển thị nhiệt độ trên máy tính 1. Thiết kế giao diện phần mềm Phần mềm ứng dụng trên Desktop máy tính đƣợc viết trên nền VB.NET 2010. Trong Visual Basic 2010 có các Toolbox giúp cho việc thiết kế giao diện trở nên dễ dàng. Trƣớc tiên, chúng ta tạo một project và đặt tên nhƣ hình 2.4 Hình 2.4. Tạo New Project 20 Sử dụng các Items trong Toolbox để thiết kế giao diện. Hình 2.5. Toolbox Sau khi hoàn thiện việc thiết kế ta tiến hành viết code để chạy chƣơng trình. Hình 2.6. Phần mềm hiển thị nhiệt độ trên PC 21 2. Viết chƣơng trình  Thanh công cụ Menustrip Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click MessageBox.Show("Bộ đo và hiển thị nhiệt độ Ver 1.0 Copyright@by Duc Posj") End Sub Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click Me.Dispose() End Sub  Cấu hình cổng COM Các thông số của giao thức RS232 nhƣ tốc độ baud, Parity, số bit trên mỗi lần truyền, bit stop đƣợc cấu hình nhƣ dƣới đây. SerialPort1.ReadTimeout = 3000 SerialPort1.WriteTimeout = 3000 SerialPort1.ReadBufferSize = 1024 SerialPort1.WriteBufferSize = 1024 SerialPort1.BaudRate = 9600 SerialPort1.DataBits = 8 SerialPort1.Parity = System.IO.Ports.Parity.None SerialPort1.StopBits = System.IO.Ports.StopBits.One SerialPort1.PortName = "COM1" If SerialPort1.IsOpen = False Then SerialPort1.Open() End If  Nhận dữ liệu từ Vi điều khiển qua cổng giao tiếp RS232 Việc nhận dữ liệu từ vi điều khiển đƣợc thực hiện trong thủ tục serialPort_DataReceived dƣới đây: Private Sub serialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived buffRev = SerialPort1.ReadExisting() End Sub Hàm SerialPort1.ReadExisting () thực hiện việc đọc dữ liệu hiện có trên bộ nhớ đệm của cổng nối tiếp, sau đó dữ liệu đƣợc lƣu vào biến buffRev. 22 Hiển thị nhiệt độ: Timer1 có tác dụng nhƣ một đồng hồ, cứ mỗi giây, giá trị nhiệt độ nhận đƣợc từ vi điều khiển sẽ đƣợc hiển thị ra nhãn do_Celcius, do_Fahrenheit và đồ thị nhiệt độ theo thời gian. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick conv_true = Integer.TryParse(buffRev, 32) If conv_true = True Then c = Integer.Parse(buffRev) End If Chart1.Series("Nhiệt độ").Points.AddY(c) do_Celcius.Text = c f = 1.8 * c + 32 do_Fahrenheit.Text = f thoigian.Text = TimeOfDay End Sub IV. Thiết kế mạch mô phỏng trên Proteus Trƣớc khi tiến hành làm mạch in, ta có thể sử dụng phần mềm proteus để thiết kế mạch, mô phỏng tính chính xác của chƣơng trình. Hình 2.7. Mô phỏng trên Proteus 23 V. Thiết kế phần cứng bằng Altium design 1. Thiết kế mạch nguyên lý Hình 2.8. Mạch nguyên lí phần cứng  Phần cứng gồm có các khối chính sau: - Khối nguồn cung cấp nguồn điện cho mạch. - Khối cảm biến: cảm biến nhiệt độ LM35 đo nhiệt độ của môi trƣờng rồi chuyển thành tín hiệu điện ở đầu ra, truyền tới bộ chuyển đổi tƣơng tự - số của vi điều khiển. - Khối hiển thị: màn hình LCD 16x2 hiển thị giá trị nhiệt độ đo đƣợc và hiển thị cảnh báo nếu có. - Khối R232: Thay đổi mức điện áp cho phù hợp giữa RS232 và UART. - Khối điều khiển: nhận tín hiệu tƣơng tự từ cảm biến nhiệt độ LM35, chuyển đổi tín hiệu tƣơng tự - số nhờ kênh 0 của bộ ADC; điều khiển hiển thị LCD và truyền tín hiệu lên PC. 24 2. Thiết kế mạch in: Sau khi thiết kế xong mạch nguyên lí, ta chuyển sang giai đoạn thiết kế mạch in. Đầu tiên ta tạo và thiết lập các thông số của bo mạch nhƣ kích thƣớc bo mạch, độ rộng nhỏ nhất của đƣờng mạch in, đuờng kính nhỏ nhất của lỗ cắm ngoài linh kiện, đƣờng kính nhỏ nhất lỗ cắm trong linh kiện. Cuối cùng ta đƣợc một bo mạch nhƣ hình 2.6. Hình 2.9. Bản vẽ mạch in Tiếp theo thiết lập độ dày đƣờng mạch in và các thiết lập khác. Hình 2.10. Thiết lập thông số đường mạch in 25 Bây giờ ta kéo tất cả các linh kiện này vào bo mạch màu đen, và tiến hành sắp xếp. Hình 2.11. Sắp xếp linh kiện Cuối cùng tiến hành cho mạch tự động chạy thành mạch in. Hình 2.12. Mạch in 26 VI. Giải thuật và điều khiển 1. Giải thuật Sơ đồ giải thuật chung cho hệ thống: Khởi tạo: - IO port - Ngắt ngoài: INT0, INT1 - LCD - Giá trị khống chế nhiệt độ MAX Điều chỉnh MAX từ Keypad - Đọc giá trị ADC kênh 0 Tính nhiệt độ t - Hiển thị lên LCD Truyền giá trị nhiệt độ cho PC Sai t > MAX Đúng Cảnh báo vượt quá nhiệt độ cho phép END 27 2. Lập trình điều khiển Dựa vào sơ đồ giải thuật chúng em viết code lập trình và dịch chƣơng trình cho vi điều khiển Atmega16 trên phần mềm CodevisionAVR. Dƣới đây là các chƣơng trình con:  Chƣơng trình con tính nhiệt độ dựa vào giá trị lấy đƣợc từ bộ ADC trong Atmega16 unsigned char cal_temperature (void) { temperature = 100*(float)(adc_data[0]*5)/1024; return temperature; }  Chƣơng trình con hiển thị nhiệt độ lên LCD void display_temperature (unsigned char x, unsigned char y) { itoa(temperature,lcd_data); // temperature in oC lcd_clear(); lcd_gotoxy(x,y); lcd_putsf("Temperature : "); lcd_gotoxy(x+11,y+1); lcd_puts(lcd_data); lcd_putsf(" "); lcd_putchar (0xdf); lcd_putsf("C"); }  Chƣơng trình con truyền giá trị nhiệt độ lên máy tính qua giao tiếp UART void send_temperature (void) { itoa(temperature,lcd_data); puts(lcd_data); }  Ngoài ra còn chƣơng trình con scan_key ( ) dùng để điều chỉnh giá trị lớn nhất của nhiệt độ có thể đo đƣợc, warning ( ) để đƣa ra cảnh báo khi nhiệt độ vƣợt quá giá trị lớn nhất. 28 CHƢƠNG III: KẾT QUẢ, KIỂM THỬ VÀ ĐÁNH GIÁ HỆ THỐNG I. Kết quả 1. Cài đặt hệ thống  Nạp chƣơng trình cho vi điều khiển Atmega16 Sau khi viết code và dịch chƣơng trình, chúng em nạp file hex vào vi điều khiển bằng phần mềm Kazama Programmer. Hình 3.1. Nạp chương trình vào vi điều khiển  Cài đặt phần mềm hiển thị nhiệt độ trên máy tính. Hình 3.2. Cài đặt phần mềm Temperature measurement Ver1.00.1 29 2. Kết quả Hệ thống đạt đƣợc những yêu cầu:  Đo đƣợc nhiệt độ từ 0oC đến 150 oC với độ chính xác ±1 oC  Hiển thị giá trị nhiệt độ lên LCD Hình 3.3. Bộ đo và hiển thị nhiệt độ trên LCD Hiển thị nhiệt độ trên máy tính Hình 3.4. Hiển thị nhiệt độ trên máy tính  Cài đặt giá trị lớn nhất của nhiệt độ từ phím bấm, hệ thống đƣa ra cảnh báo khi nhiệt độ vƣợt quá giá trị lớn nhất đó. 30 II. Kiểm thử hệ thống Chúng em đã tiến hành kiểm thử hệ thống khi viết chƣơng trình trên CodevisionAVR và mô phỏng bằng Proteus nhiều lần để hệ thống hoạt động chính xác và ổn định. Hình 3.5. Kết quả mô phỏng hệ thống bằng Proteus III. Đánh giá hệ thống Bộ đo và hiển thị nhiệt độ trên LCD và máy tính của chúng em đạt đƣợc những ƣu điểm sau: 1. Ƣu điểm  Đo nhiệt độ tƣơng đối chính xác: sai số +1 oC so sánh với nhiệt kế. Hình 3.6. So sánh giá trị nhiệt độ với nhiệt kế 31  Điện năng tiêu thụ nhỏ: Sử dụng pin 9V nên điện áp tiêu thụ V = 9V, dòng điện toàn mạch I = 33.8mA (từ việc đo thực nghiệm) Công suất: P = V.I = 9x0.0338 = 0.30 (Watt)  Hiển thị rõ ràng nhiệt độ trên LCD và máy tính, đồng thời có thể theo dõi nhiệt độ trong một thời gian dài trên đồ thị, và có cảnh báo vƣợt quá giới hạn cho phép có thể ứng dụng trong các thiết bị khống chế nhiệt độ hoặc điều chỉnh nhiệt độ. 2. Nhƣợc điểm  Chi phí cho hệ thống còn khá cao do chƣa tối ƣu hóa các linh kiện sử dụng. 32 CHƢƠNG IV: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Qua tiểu luận này, chúng em đã có cơ hội trực tiếp thực hiện việc thiết kế một hệ thống nhúng: từ việc thiết kế, gia công phần cứng cho tới viết phần mềm ứng dụng. Mặc dù đây còn là một sản phẩm đơn giản nhƣng do thời gian có hạn, kiến thức còn hạn chế nên sản phẩm không thể tránh khỏi nhiều thiếu sót. Tuy nhiên, nhóm chúng em cũng đã rất cố gắng để hoàn thânh đề tài đƣợc giao. Trong thời gian tới, chúng em dự định phát triển sản phẩm “ Bộ đo và hiển thị nhiệt độ trên LCD và máy tính” thành sản phẩm có tính ứng dụng nhƣ: - Điều khiển quạt gió ứng dụng cho các hệ thống tản nhiệt. Đo độ ẩm không khí. Làm bộ cảm biến và điều khiển trong hệ thống giàn phơi thông minh. Chúng em xin chân thành cảm ơn PGS. TS Huỳnh Quyết Thắng đã giúp đỡ để chúng em có thể hoàn thành môn học “ Phân tích thiết kế hệ thống nhúng”. 33 TÀI LIỆU THAM KHẢO 1. “Giáo trình vi điều khiển AVR” 2. “Hướng dẫn Altium Designer”, Đỗ Tiến Đạt - Đại Học Công Nghiệp Hà Nội, 2008. 3. Datasheet Atmega16 4. Datasheet LM35 5. hocavr.com 34 [...]... Ver1.00.1 29 2 Kết quả Hệ thống đạt đƣợc những yêu cầu:  Đo đƣợc nhiệt độ từ 0oC đến 150 oC với độ chính xác ±1 oC  Hiển thị giá trị nhiệt độ lên LCD Hình 3.3 Bộ đo và hiển thị nhiệt độ trên LCD Hiển thị nhiệt độ trên máy tính Hình 3.4 Hiển thị nhiệt độ trên máy tính  Cài đặt giá trị lớn nhất của nhiệt độ từ phím bấm, hệ thống đƣa ra cảnh báo khi nhiệt độ vƣợt quá giá trị lớn nhất đó 30 II Kiểm thử hệ thống... đã viết một phần mềm ứng dụng nhỏ để hiển thị và điều khiển dải nhiệt độ đo bằng việc sử dụng ngôn ngữ VB.Net Hình 1.12 Giao diện Visual Basic 2010 15 CHƢƠNG II: THIẾT KẾ BỘ ĐO VÀ HIỂN THỊ NHIỆT ĐỘ TRÊN LCD VÀ MÁY TÍNH I Đo nhiệt độ sử dụng cảm biến nhiệt độ LM35 1 Bộ ADC (Analog to digital Converter) Trong các ứng dụng đo lƣờng và điều khiển bằng vi điều khiển bộ chuyển đổi tƣơng tự-số (ADC) là một... chƣơng trình trên CodevisionAVR và mô phỏng bằng Proteus nhiều lần để hệ thống hoạt động chính xác và ổn định Hình 3.5 Kết quả mô phỏng hệ thống bằng Proteus III Đánh giá hệ thống Bộ đo và hiển thị nhiệt độ trên LCD và máy tính của chúng em đạt đƣợc những ƣu điểm sau: 1 Ƣu điểm  Đo nhiệt độ tƣơng đối chính xác: sai số +1 oC so sánh với nhiệt kế Hình 3.6 So sánh giá trị nhiệt độ với nhiệt kế 31  Điện... Khối cảm biến: cảm biến nhiệt độ LM35 đo nhiệt độ của môi trƣờng rồi chuyển thành tín hiệu điện ở đầu ra, truyền tới bộ chuyển đổi tƣơng tự - số của vi điều khiển - Khối hiển thị: màn hình LCD 16x2 hiển thị giá trị nhiệt độ đo đƣợc và hiển thị cảnh báo nếu có - Khối R232: Thay đổi mức điện áp cho phù hợp giữa RS232 và UART - Khối điều khiển: nhận tín hiệu tƣơng tự từ cảm biến nhiệt độ LM35, chuyển đổi... định phát triển sản phẩm “ Bộ đo và hiển thị nhiệt độ trên LCD và máy tính thành sản phẩm có tính ứng dụng nhƣ: - Điều khiển quạt gió ứng dụng cho các hệ thống tản nhiệt Đo độ ẩm không khí Làm bộ cảm biến và điều khiển trong hệ thống giàn phơi thông minh Chúng em xin chân thành cảm ơn PGS TS Huỳnh Quyết Thắng đã giúp đỡ để chúng em có thể hoàn thành môn học “ Phân tích thiết kế hệ thống nhúng” 33 TÀI... thuật toán hiển thị nhiệt độ trên LCD Giao tiếp AVR với LCD theo sơ đồ sau: START Khởi động LCD (init _lcd) Xóa LCD (lcd_ clear()) Ghi ra LCD Di chuyển con trỏ Tiếp tục ? END 19  Lập trình cho LCD: Trong phần mềm lập trình Codevision, chúng em sử dụng thƣ viện lcd. h có sẵn các hàm giúp việc lập trình hiển thị trên LCD trở lên dễ dàng Một số hàm sử dụng để lập trình: void lcd_ init(unsigned char lcd_ columns);... thụ V = 9V, dòng điện toàn mạch I = 33.8mA (từ việc đo thực nghiệm) Công suất: P = V.I = 9x0.0338 = 0.30 (Watt)  Hiển thị rõ ràng nhiệt độ trên LCD và máy tính, đồng thời có thể theo dõi nhiệt độ trong một thời gian dài trên đồ thị, và có cảnh báo vƣợt quá giới hạn cho phép có thể ứng dụng trong các thiết bị khống chế nhiệt độ hoặc điều chỉnh nhiệt độ 2 Nhƣợc điểm  Chi phí cho hệ thống còn khá cao... LM35 vào kênh 0 của bộ ADC thì giá trị bộ ADC đọc đƣợc là: adc_data[0] = (Vout*1024)/ Vref = (Vout*1024)/ 5000 Giá trị của adc_data[0] trong khoảng từ 0 đến 1023 Chúng ta lại có: Nhiệt độ (oC) = Vout (mV)/10 Vì vậy, giá trị của nhiệt độ đƣợc tính theo công thức: Nhiệt độ (oC) = adc_data[0] *( )/10 18 II Hiển thị nhiệt độ trên LCD  Sơ đồ mạch kết nối AVR với LCD nhƣ hình 2.3 Hình 2.3 Kết nối LCD với... điều khiển AVR đƣợc đặt trên các mạch nạp Các mạch nạp, thông qua cáp nối với máy tính, sẽ nạp chƣơng trình từ máy tính vào vi điều khiển Trong bài tiểu luận chúng em sử dụng mạch nạp AVRISP với phần mềm nạp chƣơng trình Kazama Programmer Hình 1.10 Phần mềm nạp chương trình Kazama Programmer 13 VI Chƣơng trình ứng dụng hiển thị nhiệt độ trên máy tính Nhiệt độ đo đƣợc từ cảm biến đƣợc vi điều khiển truyền... kí tự trong chuỗi str III Hiển thị nhiệt độ trên máy tính 1 Thiết kế giao diện phần mềm Phần mềm ứng dụng trên Desktop máy tính đƣợc viết trên nền VB.NET 2010 Trong Visual Basic 2010 có các Toolbox giúp cho việc thiết kế giao diện trở nên dễ dàng Trƣớc tiên, chúng ta tạo một project và đặt tên nhƣ hình 2.4 Hình 2.4 Tạo New Project 20 Sử dụng các Items trong Toolbox để thiết kế giao diện Hình 2.5 Toolbox ... oC với độ xác ±1 oC  Hiển thị giá trị nhiệt độ lên LCD Hình 3.3 Bộ đo hiển thị nhiệt độ LCD Hiển thị nhiệt độ máy tính Hình 3.4 Hiển thị nhiệt độ máy tính  Cài đặt giá trị lớn nhiệt độ từ phím... GIỚI THIỆU BỘ ĐO VÀ HIỂN THỊ NHIỆT ĐỘ TRÊN LCD VÀ MÁY TÍNH Yêu cầu cần thực hiện:     Mạch điện tử đƣợc thiết kế máy tính phần mềm chuyên dụng Nhiệt độ đo đƣợc hiển thị LCD máy tính Sai số... LCD Sơ đồ khối đo hiển thị nhiệt độ LCD máy tính: Cảm biến nhiệt LM35 LCD AVR (atmega16) Máy tính keypad WARNING Hình 1.1 Sơ đồ khối đo hiển thị nhiệt độ LCD PC I Khối điều khiển ( Vi điều khiển

Ngày đăng: 06/10/2015, 15:58

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan