Vì vậy, trong nghiên cứukhoa học, trong công nghiệp và trong đời sống sinh hoạt, thu thập các thông số vàđiều khiển nhiệt độ là điều rất cần thiết.. Yêu cầu và kết cấu đồ án Điều khiển đ
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ ĐIỆN – ĐIỆN TỬ
BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH
ĐỀ TÀI: ĐIỀU KHIỂN NHIỆT ĐỘ HIỂN THỊ TRÊN LED MA TRẬN
NỐI TIẾP
GVHD: NGUYỄN PHÚ CÔNG
TP HỒ CHÍ MINH, 14 tháng 07, năm 2020
TRƯỜNG ĐH CÔNG NGHIỆP THỰC PHẨM TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Trang 2KHOA CÔNG NGHỆ ĐIỆN – ĐIỆN TỬ Độc lập - Tự do - Hạnh phúc
TP HCM, ngày….tháng… năm……
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỒ ÁN: ĐIỀU KHIỂN NHIỆT ĐỘ HIỂN THỊ TRÊN LED MA TRẬN NỐI
TIẾP Giảng viên hướng dẫn: Nguyễn Phú Công
Thời gian thực hiện: Từ ngày 01/05/2020 đến ngày 15/07/2020
Sinh viên thực hiện: Dương Hào Quang
Nội dung đề tài:
- Tìm hiểu tổng quan lý thuyết
- Xây dựng mục tiêu đề tài
- Thiết kế và thi công mô hình hiển thị nhiệt độ trên led ma trận
- Thực nghiệm và đánh giá đề tài
Kế hoạch thực hiện:
- Từ ngày 01/05/2020 đến ngày 31/05/2020: Nhận đề tài
- Từ ngày 01/06/2020 đến ngày 23/06/2020: Nghiên cứu đề tài
- Từ ngày 24/06/2020 đến ngày 30/06/2020: Tiến hành thi công lắp ráp và thử
nghiệm
- Từ ngày 01/07/2020 đến ngày 14/07/2020: Viết báo cáo
Xác nhận của giảng viên hướng dẫn TP HCM, ngày….tháng … năm…
Sinh viên
Trang 3TRƯỜNG ĐH CÔNG NGHIỆP THỰC PHẨM TP HCM
KHOA CÔNG NGHỆ ĐIỆN – ĐIỆN TỬ
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
TP HCM, ngày….tháng… năm……
NHẬN XÉT ĐỒ ÁN CHUYÊN NGÀNH CỦA GIẢNG VIÊN HƯỚNG DẪN Tên đồ án: ĐIỀU KHIỂN NHIỆT ĐỘ HIỂN THỊ TRÊN LED MA TRẬN NỐI TIẾP Sinh viên thực hiện: Giảng viên hướng dẫn: Dương Hào Quang 2032170077 Nguyễn Phú Công Đánh giá Đồ án 1 Về cuốn báo cáo: Số trang _ Số chương _ Số bảng số liệu _ Số hình vẽ _ Số tài liệu tham khảo _ Sản phẩm _ Một số nhận xét về hình thức cuốn báo cáo: ………
………
………
………
………
………
2 Về nội dung đồ án: ………
………
………
………
………
3 Về tính ứng dụng: ………
………
Trang 4………
4 Về thái độ làm việc của sinh viên: ………
………
………
………
Đánh giá chung: ………
………
………
………
………
Điểm sinh viên:
Dương Hào Quang: … /10 Người nhận
(Ký tên và ghi rõ họ tên)
Trang 5LỜI CẢM ƠN
Để hoàn thành chuyên đề báo cáo đồ án chuyên ngành điều khiển – tự động hóatrước hết em xin gửi đến quý thầy, cô giáo trong Khoa Công nghệ Điện-Điện tử,trường Đại học Công nghiệp thực phẩm Thành phố Hồ Chí Minh lời cảm ơn chân
thành Đặc biệt, em xin gửi đến thầy Nguyễn Phú Công, người đã tận tình hướng dẫn,
giúp đỡ em hoàn thành chuyên đề báo cáo đồ án chuyên ngành điều khiển – tự độnghóa này lời cảm ơn sâu sắc nhất
Mặc dù nhóm em đã cố gắng hết sức mình, nhưng do lượng kiến thức eo hẹpnên không tránh khỏi những thiếu sót Do vậy, chúng em rất mong nhận được sự góp ýquý báu của thầy, cô để nhóm có thể hoàn thiện và tốt hơn nữa cũng như tích lũy kinhnghiệm để hoàn thành tốt báo cáo đồ án tốt nghiệp sao ngày
Sau cùng, em kính chúc quý thầy cô thật dồi dào sức khỏe, luôn tràn đầy nhiệthuyết cùng với thành công trong sự nghiệp cao quý
Trang 6LỜI NÓI ĐÀU
Như chúng ta biết, nhiệt độ là một trong những thành phần vật lý rất quantrọng Việc thay đổi nhiệt độ của một vật chất ảnh hưởng rất nhiều đến cấu tạo, tínhchất, và các đại lượng vật lý khác của vật chất Ví dụ, sự thay đổi nhiệt độ của 1 chấtkhí sẽ làm thay đổi thể tích, áp suất của chất khí trong bình Vì vậy, trong nghiên cứukhoa học, trong công nghiệp và trong đời sống sinh hoạt, thu thập các thông số vàđiều khiển nhiệt độ là điều rất cần thiết
Trong các lò nhiệt, máy điều hoà, máy lạnh hay cả trong lò viba, điều khiểnnhiệt độ là tính chất quyết định cho sản phảm ấy Trong ngành luyện kim, cần phảiđạt đến một nhiệt độ nào đó để kim loại nóng chảy, và cũng cần đạt một nhiệt độ nào
đó để ủ kim loại nhằm đạt được tốt các đặc tính cơ học như độ bền, độ dẻo, độ chống
gỉ sét, … Trong ngành thực phẩm, cần duy trì một nhiệt độ nào đó để nướng bánh,
để nấu, để bảo quản, … Việc thay đổi thất thường nhiệt độ, không chỉ gây hư hạiđến chính thiết bị đang hoạt động, còn ảnh hưởng đến quá trình sản xuất, ngay cả trênchính sản phẩm ấy
Sự ra đời của mạch Arduino đã thúc đẩy sự yêu thích, tìm tòi nghiên cứu, ứngdụng thành tựu khoa học kỹ thuật của lĩnh vực tự động hóa vào đời sống và côngnghiệp Với những ưu điểm riêng của mình, Arduino dần khẳng định được vị thế, vaitrò của mình trên trường quốc tế, được giới học sinh, sinh viên và cả giới nghiên cứu
Trang 7Hình 1 1: Điều khiển nhiệt độ máy lạnh
Giúp sinh viên củng cố lý thuyết môn học Vi xử lý trong điều khiển Hiểuthêm về cấu trúc của các dòng vi điều khiển nói chung và ARDUINO nói riêng Biết
về cách lập trình cho vi điều khiển và thực hiện được một số bài toán điều khiển cơbản
Giúp sinh viên có thêm kỹ năng giải quyết một số bài toán điều khiển đơngiản ứng dụng các dòng vi điều khiển Có khả năng phân tích bài toán điều khiển đểtìm biện pháp giải quyết vấn đề, biết lựa chọn giải pháp hợp lý và biết cách chọn lựathiết bị vật tư sử dụng cho công việc
Rèn thêm tư duy thực hiện và cách thức trình bày để sinh viên tiếp cận dễ
Trang 8dàng hơn đối với các đồ án môn học khác và đặc biệt là đồ án tốt nghiệp sau này khisinh viên làm Khóa luận tốt nghiệp.
1.2 Yêu cầu và kết cấu đồ án
Điều khiển được nhiệt độ thông qua cảm biến và vi sử lý hiển thị lên led matrận mắc nối tiếp và thực hiện theo đúng tiến độ đã đặt ra
Kết cấu đồ án được trình bày theo 4 phần chính :
• Chương 1: Tổng quan về đề tài
• Chương 2: Cơ sở lý thuyết
• Chương 3: Thiết kế và thi công
• Chương 4: Đánh giá và kết luận
Trang 9CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về cảm biến nhiệt độ DS18B20
• Sử dụng giao diện một dây nên chỉ cần có một chân ra để truyền thông
• Độ phân giải khi đo nhiệt độ từ 9 bit tới 12bit Dải đo nhiệt độ 55°C đến 125°C, từng bậc 0.5°C, có thể đạt độ chính xác đến 0.1°C
Trang 10-bằng việc hiệu chỉnh qua phần mềm.
• Rất thích hợp với các ứng dụng đo lường đa điểm vì nhiều đầu đo cóthể được nối trên một bus, bus này được gọi là bus một dây (1-wire)
• Không cần thêm linh kiện bên ngoài
• Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 3.0 V đến5.5 V DC và có thể được cấp thông qua đường dẫn dữ liệu
• Dòng tiêu thụ tại chế độ nghỉ cực nhỏ
• Thời gian lấy mẫu và biến đổi ra digital 12 bit không lớn quá 750ms
• Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong
bộ nhớ ROM trên chip (on chip), giá trị nhị phân được khắc bằng tialaze
Sơ đồ khối bên trong của cảm biến:
Hình 2 3: Sơ đồ khối DS18B20.
2.1.3 Giao tiếp với DS18B20
Đầu đo nhiệt độ số DS18B20 đưa ra số liệu để biểu thị nhiệt độ đo được dướidạng mã nhị phân 12 bit Các thông tin được gửi đến và nhận về từ DS18B20 trêngiao diện 1-wire, do đó chỉ cần hai đường dẫn gồm một đường cho tín hiệu vàmột đường làm dây GND là đủ để kết nối vi điều khiển đến điểm đo Nguồn nuôi chocác thao tác ghi/đọc/chuyển đổi có thể được trích từ đường tín hiệu, không cần cóthêm đường dây riêng để cấp điện áp nguồn
Mỗi vi mạch đo nhiệt độ DS18B20 có một mã số định danh duy nhất, đượckhắc bằng laser trong quá trình chế tạo vi mạch nên nhiều vi mạch DS18B20 cóthể cùng kết nối vào một bus 1-wire mà không có sự nhầm lẫn
Đặc điểm này làm cho việc lắp đặt nhiều cảm biến nhiệt độ tại nhiều vị tríkhác nhau trở nên dễ dàng và với chi phí thấp Số lượng các cảm biến nối vào buskhông hạn chế
Mỗi cảm biến nhiệt độ DS18B20 có một dãy mã 64 bit duy nhất được lưutrữ trong bộ nhớ ROM từ khi sản xuất bằng kỹ thuật laze
Cấu trúc vùng nhớ mã ROM 64 bit của DS18B20:
Hình 2 4: Cấu trúc vùng nhớ mã ROM của DS18B20
Như vậy dãy mã được chia ra thành 3 nhóm, trong đó:
Trang 11• Tám bit đầu tiên là mã định danh họ một dây, mã của DS18B20 là 28h.
• 48 bit tiếp theo là mã số xuất xưởng duy nhất, nghĩa là mỗi cảm biếnDS1820 chỉ có một số mã
• Tám bit có ý nghĩa nhất là byte mã kiểm tra CRC (cyclic redundancycheck), byte này được tính toán từ 56 bit đầu tiên của dãy mã trênROM
Để truy cập lên cảm biến một dây DS18B20 ta phải sử dụng hai nhóm lệnh:các lệnh ROM và các lệnh chức năng (function commands) bộ nhớ
Sơ đồ vùng nhớ DS18B20:
Hình 2 5: Cấu trúc vùng nhớ DS18B20
Việc đo nhiệt độ của DS18B20 được thực hiện theo từng lần lấy mẫu Mỗi lầnlấy mẫu được ngăn cách bởi 1 tín hiệu reset và 1 presence pulse Reset được xem nhưquá trình ngăn cách và khởi động lại quá trình đo nhiệt độ mới, presence pulse giốngnhư tín hiệu báo hiệu cho VDK biết là DS18B20 đang có mặt
Các bước của 1 lần lấy mẫu:
• Khởi tạo xung reset và nhận tín hiệu hiện diện từ DS18B20
• Gửi các lệnh ROM
• Gửi các lệnh chức năng bộ nhớ
Lưu đồ lệnh ROM DS18B20 được trình bày bên dưới:
Trang 12Hình 2 6: Lưu đồ lệnh ROM
Lưu đồ lệnh chức năng DS18B20 được trình bày bên dưới:
Trang 13Hình 2 7: Lưu đồ lệnh chức năng DS18B20
Thời gian khởi tạo:
Trang 14Hình 2 8: Khe thời gian khởi tạo
Giản đồ khe thời gian đọc viết:
Hình 2 9: Khe thời gian đọc,viết2.2 Arduino Uno R3
2.2.1 Tổng quan về Arduino
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác vớicác thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểmnổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với mộtngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu vềđiện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp vàtính chất nguồn mở từ phần cứng tới phần mềm
Hình 2 10: Arduino Uno R32.2.2 Một vài thông số của Arduino Uno R3
Trang 15Vi điều khiển ATmega328 họ 8bit
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Điện áp vào khuyên
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi
2.2.3 Nguồn
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấpnguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thìcấp nguồn bằng pin vuông 9V là hợp lí nhất nếu không có sẵn nguồn từ cổng USB.Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng Arduino UNO
Các chân năng lượng
• ND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạndùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chânnày phải được nối với nhau
• 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
Trang 16• 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là50mA.
• Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nốicực dương của nguồn với chân này và cực âm của nguồn với chânGND
• IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thểđược đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn khôngđược lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó khôngphải là cấp nguồn
• RESET: việc nhấn nút Reset trên board để reset vi điều khiển tươngđương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.Lưu ý:
• Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó phải hếtsức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp choArduino UNO Việc làm chập mạch nguồn vào của Arduino UNO sẽbiến nó thành một miếng nhựa chặn giấy Nên dùng nguồn từ cổngUSB nếu có thể
• Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn racho các thiết bị khác, không phải là các chân cấp nguồn vào Việc cấpnguồn sai vị trí có thể làm hỏng board Điều này không được nhà sảnxuất khuyến khích
• Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện ápdưới 6V có thể làm hỏng board
• Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng viđiều khiển ATmega328
• Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog củaArduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
• Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của ArduinoUNO sẽ làm hỏng vi điều khiển
• Cường độ dòng điện qua một chân Digital hoặc Analog bất kì củaArduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếukhông dùng để truyền nhận dữ liệu phải mắc một điện trở hạn dòng
2.2.4 Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
• 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữtrong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KBtrong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khinào cần quá 20KB bộ nhớ này đâu
• 2KB cho SRAM (Static Random Access Memory): giá trị các biến bạnkhai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thìcàng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào
bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi mất điện, dữliệu trên SRAM sẽ bị mất
• 1Kb cho EEPROM( Electrically Eraseble Programmable Read OnlyMemory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc
Trang 17và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điệngiống như dữ liệu trên SRAM.
2.2.5 Các cổng vào ra
Hình 2 12: Các cổng vào ra
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có
2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗichân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328(mặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
• 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận(receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp vớithiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nóinôm na chính là kết nối Serial không dây Nếu không cần giao tiếpSerial, bạn không nên sử dụng 2 chân này nếu không cần thiết
• Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWMvới độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V)bằng hàm analogWrite() Nói một cách đơn giản, bạn có thể điều chỉnhđược điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ởmức 0V và 5V như những chân khác
• Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoàicác chức năng thông thường, 4 chân này còn dùng để truyền phát dữliệu bằng giao thức SPI với các thiết bị khác
• LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khibấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó đượcnối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽsáng
2.2.6 Ngôn ngữ lập trình cho Arduino
Trang 18Arduino IDE là phần mềm dùng để lập trình cho Arduino Môi trường lậptrình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows,Macintosh osx và Linux Do có tính chất nguồn mở nên môi trường lập trình nàyhoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm.
Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và dongôn ngữ lập trình này dựa trên nền tảng ngôn ngữ c của AVR nẽn người dùng hoàntoàn có thể nhúng thêm code viết bằng AVR vào chương trình nếu muốn.Hiện tại,Arduino IDE có thể download từ trang chủ http://arduino.cc/ bao gồm các phiên bảnsau:
2.3.1 Giới thiệu về led ma trận
Led ma trận bao gồm các led đơn được xếp thành hàng và cột Các led đơntrong cùngmột hàng thì được nối chung anot (catot) còn trong cùng một cột thì đượcnối chung catot(anot) Do đó để các led có thể sáng ta phải cấp nguồn cho led nhưsau : cấp mức cao(thấp) cho hàng và mức thấp (cao) cho cột
Trang 19Hình 2 14: Sơ đồ cấu tạo led ma trận2.3.2 Hiển thị với IC MAX7219
Led Matrix 8x8 là một bảng Led gồm 8 hàng và 8 cột (tổng cộng 64 con led).Nếu điều khiển trực tiếp bằng Arduino, đó là một điều không khả thi Thế nên, ICMAX7219 đã ra đời để có thể điều khiển vô vàn con Led chỉ với 5 chân
IC MAX7219 được hãng MAXIM thiết kế và sản xuất, thuận tiện sử dụng đểđiều khiển LED ma trận và LED 7 thanh (1 chip có thể điều khiển LED ma trận 8x8hoặc LED 7 thanh 8 chữ số) và chỉ cần 1 điện trở để hạn dòng cho tất cả các led (sovới các IC khác hầu như phải có 1 điện trở cho mỗi led) Trên mỗi chip đã được tíchhợp bộ giải mã BCD, mạch quét dồn kênh, thanh ghi dịch,
Giống như với 74HC595, để điều khiển LED ma trận ta sử dụng MAX7219hoạt động giống như một thanh ghi dịch khi bạn cần nhập dữ liệu vào nối tiếp theotừng bit Tổng cộng có 16 bit được nhập vào tại một thời điểm MAX7219 chỉ cần 3chân từ Arduino để kết nối với các chân DIN, LOAD và CLK của IC
Sơ đồ chân của MAX7219 được mô tả như hình dưới:
Hình 2 15: MAX7219
Chân LOAD được kéo xuống LOW và bit đầu tiên của dữ liệu được đưa vàochân DIN, trên sườn lên của xung CLK, các bit tại chân DIN được đưa vào thanh ghibên trong chip Sau đó xung CLK xuống LOW và các bit tiếp theo được thiết lập tạichân DIN trước khi lặp lại quá trình Sau khi 16 bit được đưa vào thanh ghi, chân