ĐỒ ÁN VXL - ĐO VÀ ĐIỀU KHIỂN NHIỆT ĐỘ SỬ DỤNG CẢM BIẾN NHIỆT DS18B20
Trang 2CHƯƠNG 1: TỔNG QUAN VỀ ĐO NHIỆT ĐỘ
1 CÁC LOẠI CẢM BIẾN NHIỆT ĐỘ:
1.1 Tổng quan:
Cảm biến là thiết bị dùng để đo, đếm, cảm nhận,…các đại lượng vật lýkhông điện thành các tín hiệu điện Ví dụ nhiệt độ là 1 tín hiệu khôngđiện, qua cảm biến nó sẽ trở thành 1 dạng tín hiệu khác (điện áp, điệntrở…) Sau đó các bộ phận xử lí trung tâm sẽ thu nhận dạng tín hiệu điệntrở hay điện áp đó để xử lí
Đối với các loại cảm biến nhiệt thì có 2 yếu tố ảnh hưởng trực tiếp đến
độ chính xác đó là “Nhiệt độ môi trường cần đo” và “Nhiệt độ cảm nhậncủa cảm biến” Điều đó nghĩa là việc truyền nhiệt từ môi trường vào đầu
đo của cảm biến nhiệt tổn thất càng ít thì cảm biến đo càng chính xác.Điều này phụ thuộc lớn vào chất liệu cấu tạo nên phần tử cảm biến (cảmbiến nhiệt đắt hay rẻ cũng do nguyên nhân này quyết định) Đồng thời tacũng rút ra 1 nguyên tắc khi sử dụng cảm biến nhiệt đó là: Phải luôn đảmbảo sự trao đổi nhiệt giữa môi trường cần đo với phần tử cảm biến
Xét về cấu tạo chung thì Cảm biến nhiệt có nhiều dạng Tuy nhiên, chiếccảm biến được ưa chuộng nhất trong các ứng dụng thương mại và côngnghiệp thường được đặt trong khung làm bằng thép không gỉ, được nốivới một bộ phận định vị, có các đầu nối cảm biến với các thiết bị đolường Trong các trường hợp khác, đặc biệt là trong các ứng dụng thựctiễn như trong cặp nhiệt độ, người ta lại hay sử dụng loại cảm biến không
có khung Lợi thế của những chiếc cảm biến này là cho kết quả nhanhvới kích thước nhỏ gọn và chi phí sản xuất thấp
1.2 Các loại cảm biến nhiệt:
1.2.1 Cặp nhiệt điện (Thermocouple)
Trang 3 Cấu tạo: Gồm 2 chất liệu kim loại khác nhau, hàn dính một đầu.
Nguyên lý: Nhiệt độ thay đổi cho ra sức điện động thay đổi ( mV)
Ưu điểm: Bền, đo nhiệt độ cao
Khuyết điểm: Nhiều yếu tố ảnh hưởng làm sai số Độ nhạy không cao
Thường dùng: Lò nhiệt, môi trường khắt nghiệt, đo nhiệt nhớt máy nén,…
Đồng thời khi lắp đặt sử dụng loại Cặp nhiệt điện thì cần chú ý tới những
điểm sau đây
Dây nối từ đầu đo đến bộ điều khiển càng ngắn càng tốt (vì tín hiệu
truyền đi dưới dạng điện áp mV nên nếu dây dài sẽ dẫn đến sai số nhiều)
Thực hiện việc cài đặt giá trị bù nhiệt (Offset) để bù lại tổn thất mất
mát trên đường dây Giá trị Offset lớn hay nhỏ tùy thuộc vào độ dài, chất liệu dây và môi trường lắp đặt
Không để các đầu dây nối của Cặp nhiệt điện tiếp xúc với môi trường cần đo.Đấu nối đúng chiều âm, dương cho Cặp nhiệt điện
1.2.2 Nhiệt điện trở (Resitance temperature detector –RTD).
Trang 4 Cấu tạo của RTD gồm có dây kim loại làm từ: Đồng, Nikel, Platinum,…
được quấn tùy theo hình dáng của đầu đo
Nguyên lí hoạt động: Khi nhiệt độ thay đổi điện trở giữa hai đầu dây kim
loại này sẽ thay đổi, và tùy chất liệu kim loại sẽ có độ tuyến tính trong một
Ứng dụng: Trong các ngành công nghiệp chung, công nghiệp môi trường
hay gia công vật liệu, hóa chất…
Hiện nay phổ biến nhất của RTD là loại cảm biến Pt, được làm từ Platinum Platinum có điện trở suất cao, chống oxy hóa, độ nhạy cao, dải nhiệt đo
được dài Thường có các loại: 100, 200, 500, 1000 ohm (khi ở 0 oC) Điện
trở càng cao thì độ nhạy nhiệt càng cao
RTD thường có loại 2 dây, 3 dây và 4 dây Loại 4 dây cho kết quả đo chính
xác nhất
Trang 51.2.3 Điện trở oxit kim loại (Thermistor)
Cấu tạo: Làm từ hổn hợp các oxid kim loại: mangan, nickel, cobalt,…
Nguyên lý: Thay đổi điện trở khi nhiệt độ thay đổi
Ưu điểm: Bền, rẽ tiền, dễ chế tạo
Khuyết điểm: Dãy tuyến tính hẹp
Dải đo: 50o
Ứng dụng: Làm các chức năng bảo vệ, ép vào cuộn dây động cơ, mạch điệntử
Có hai loại thermistor: Hệ số nhiệt dương PTC- điện trở tăng theo nhiệt độ;
Hệ số nhiệt âm NTC – điện trở giảm theo nhiệt độ Thường dùng nhất là loạiNTC
1.2.4 Cảm biến nhiệt bán dẫn:
Trang 6
Cấu tạo: Làm từ các loại chất bán dẫn
Nguyên lý: Sự phân cực của các chất bán dẫn bị ảnh hưởng bởi nhiệt độ
Ưu điểm: Rẻ tiền, dễ chế tạo, độ nhạy cao, chống nhiễu tốt, mạch xử lý đơngiản
Khuyết điểm: Không chịu nhiệt độ cao, kém bền
1.2.5 Nhiệt kế bức xạ (Hay hỏa kế):
Cấu tạo: Làm từ mạch điện tử, quang học
Nguyên lý: Đo tính chất bức xạ năng lượng của môi trường mang nhiệt
Ưu điểm: Dùng trong môi trường khắc nghiệt, không cần tiếp xúc với môitrường đo
Trang 7 Khuyết điểm: Độ chính xác không cao, đắt tiền.
Ứng dụng: Làm các thiết bị đo cho lò nung
Dải đo: -97 ~ 1800 oC
Hỏa kế gồm có các loại: Hỏa kế bức xạ, hỏa kế cường độ sáng, hỏa kế màusắc Chúng hoạt động dựa trên nguyên tắc các vật mang nhiệt sẽ có hiệntượng bức xạ năng lượng Và năng lượng bức xạ sẽ có một bước sóng nhấtđịnh Hỏa kế sẽ thu nhận bước sóng này và phân tích để cho ra nhiệt độ củavật cần đo
2 ĐẶC ĐIỂM CẢM BIẾN DS18B20
2.1 Đặc điểm:
Cảm biến nhiệt độ DS18B20 là cảm biến (loại digital) đo nhiệt độ với độphân giải cao (12bit) IC sử dụng giao tiếp 1 dây rất gọn gàng, dễ lập trình
IC còn có chức năng cảnh báo nhiệt độ khi vượt ngưỡng và đặc biệt hơn là
có thể cấp nguồn từ chân data (parasite power)
2.2 Thông số kỹ thuật:
Nguồn: 3 – 5.5V
Dải đo nhiệt độ: -55 đến 125 độ C (-67 đến 257 độ F)
Sai số: +- 0.5 độ C khi đo ở dải -10 – 85 độ C
Độ phân giải: người dùng có thể chọn từ 9 – 12 bits
Chuẩn giao tiếp: 1-Wire (1 dây)
Có cảnh báo nhiệt khi vượt ngưỡng cho phép và cấp nguồn từ chân data
Thời gian chuyển đổi nhiệt độ tối đa: 750ms (khi chọn độ phân giải
Chiều dài dây: 1m
2.3 Sơ đồ nối dây:
Trang 8CHƯƠNG 2: TỔNG QUAN VỀ ARDUINO
Trang 9 Giống như nhiều đồng nghiệp của mình, Banzi dựa vào Stamp BASIC, một
vi điều khiển được tạo ra bởi công ty California Parallax mà các kỹ sư đã
sử dụng trong khoảng một thập kỷ Sử dụng ngôn ngữ lập trình BASIC,Stamp giống như một bo mạch nhỏ gọn gàng, gồm các yếu tố cần thiết nhưnguồn cung cấp năng lượng, một vi điều khiển, bộ nhớ và cổng vào-ra đểkết nối với các phần cứng khác Nhưng với Stamp BASIC có hai vấn đề
mà Banzi phát hiện ra: nó không có đủ khả năng xử lý cho một số dự áncủa sinh vin , và nó có giá khoảng 100 USD khá cao so với sinh viên Ôngcũng cần một cái gì đó mà có thể chạy trên các máy tính Macintosh, thứ phổbiến với các sinh viên IDII
Banzi có một đồng nghiệp từ MIT đã phát triển một ngôn ngữ lập trình,thiết kế thân thiện gọi là Processing Processing đã nhanh chóng được phổbiến vì nó cho phép các lập trình viên thiếu kinh nghiệm có thể tạo ra nhữngthiết kết đẹp và phức tạp Một trong những lý do cho sự thành công củaProcessing là giao diện tích hợp cực kỳ dễ sử dụng Banzi tự hỏi liệu họ có
Trang 10thể tạo ra các công cụ phần mềm tương tự để lập trình một vi điều khiểnthay vì đồ họa trên màn hình.
Hình 1.2: Một chương trình Processing
Một sinh viên trong chương trình, Hernando Barragán, đã đi những bướcđầu tiên theo hướng đó, anh đã phát triển một nền tảng mẫu được gọi làWiring, trong đó bao gồm cả IDE thân thiện và một bảng mạch có sẵn để
sử dụng Banzi đã suy nghĩ lớn hơn: Ông muốn tạo ra một nền tảng màthậm chí còn đơn giản hơn, rẻ hơn, và dễ dàng hơn để sử dụng
Mẫu thử nghiệm ban đầu, được thực hiện vào năm 2005, là một thiết kếđơn giản, và chưa được gọi là Arduino Massimo Banzi sử dụng cái tênArduino vào một năm sau đó
Hình 1.3: Những thử nghiệm lần đầu về Arduino
Banzi và các cộng sự của ông đã tin tưởng mạnh mẽ vào phần
mềm mã nguồn mở Vì mục đích là để tạo ra một nền tảng nhanh
Trang 11chóng và dễ dàng truy cập, họ cảm thấy tốt hơn hết là để dự án
“mở” để càng nhiều người tham gia phát triển càng tốt Một
nguyên nhân chính khác nữa là sau khi hoạt động trong năm
năm, IDII đã hết vốn và phải đóng cửa Đội ngũ giảng viên lo
ngại các dự án của họ sẽ không tồn tại hoặc sẽ bị chiếm dụng
“Vì vậy, chúng tôi đã nói: Hãy quên nó đi ” Banzi nhớ lại
“Hãy làm cho nó trở thành mã nguồn mở”.
Mô hình mã nguồn mở từ lâu đã được sử dụng làm năng lượng thúc đẩy
sự đổi mới cho lĩnh vực phần mềm, nhưng không phải là phần cứng Đểlàm việc đó, họ đã phải tìm một giải pháp cấp phép phù hợp có thể ápdụng cho bo Arduino của họ Sau
khi xem xét, họ nhận ra rằng nếu họ chỉ việc đơn giản là nhìn vào dự áncủa họ theo một cách nhìn khác Họ có thể sử dụng một giấy phép củaCreative Commons thường được sử dụng cho các công trình văn hóa như
âm nhạc và văn bản “Bạn có thể nghĩ về phần cứng như phần văn hóa bạn muốn chia sẻ với những người khác ” Banzi nói.
Để làm bo Arduino, nhóm đã đặt ra một giá cụ thể để Arduino trở nên
“thân thiện” với sinh viên và mục tiêu của họ là 30$ “Nó phải tương đương với một bữa ăn Pizza ở ngoài” Banzi nói Họ cũng muốn làm cho
nó có chút kỳ quặc với hy vọng nó sẽ trông nổi bật và mới mẻ Nếunhững bo khác thường màu xanh lá cây, họ sẽ làm cho Arduino có màuxanh da trời Cuối cùng, họ thêm vào một bản đồ nhỏ của Ý trên mặt sau
của bo ” Với một kĩ sư có thể nói trông có vẻ lạ” Banzi nói với một nụ cười “nhưng tôi không phải là một kỹ sư thực sự, vì vậy tôi đã làm nó trông kì khôi như vậy“.
Đối với một trong các kỹ sư “thực sự” trong nhóm, Gianluca Martino, đã
mô tả
Arduino là một “cách suy nghĩ mới về thiết bị điện tử”,ông nói
Arduino được nhóm tạo ra bao gồm các bộ phận giá rẻ mà có thể dễ dàngtìm thấy nếu người dùng muốn tự làm cho riêng mình một thiết bị, chẳnghạn như vi điều khiển ATmega328 Tuy nhiên, một quyết định quantrọng để đảm bảo rằng nó sẽ là một thiết bị “plug-and-play” là có thểcắm vào một máy tính, và sử dụng ngay lập tức Không như Stamp BASIC
Trang 12đòi hỏi người dùng phải mua thêm các phụ kiện khác để kết nối và sửdụng Đối với Arduino, người sử dụng chỉ cần kéo một cáp USB ra khỏi
bo và kết nối nó với máy tính để lập trình
Với mức giá 30$ cho một bo Arduino có khoàng 20 ngõ I/O có thể tươngtác và điều khiển chừng ấy thiết bị, tính chất nguồn mở từ phần cứngtới phần mềm, giao diện lập trình cực kỳ dễ sử dụng, với một ngônngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít amhiểu về điện tử và lập trình Arduino đã thực sự gây sóng gió trên thịtrường người dùng DIY (Do It Yourself) trên toàn thế giới trong vài nămgần đây Thậm chí ngay cả những sinh viên và nhà nghiên cứu tại cáctrường đại học danh tiếng như MIT, Stanford, Carnegie Mellon cũng sửdụng; hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kitArduino Mega ADK dùng để phát triển các ứng dụng Android tương tácvới cảm biến và các thiết bị khác
Về cái tên Arduino, đây là tên được đặt theo tên của quán rượu Bar di ReArduino, nơi mà Bazi và các cộng sự thường lui tới trong quá trình làmnên bo mạch này Đây là một điều thật sự thú vị và bất ngờ
2 LẬP TRÌNH ADC TRONG ARDUINO:
2.1 analogReference();
Hàm analogReference() có nhiệm vụ đặt lại mức (điện áp) tối đa khi
đọc tín hiệu analogRead Ứng dụng như sau, giả sử bạn đọc một tín hiệu
dạng analog có hiệu điện thế từ 0-1,1V Nhưng mà nếu dùng mức điện áp
tối đa mặc định của hệ thống (5V) thì khoảng giá trị sẽ ngắn hơn => độ
chính xác kém hơn => hàm này ra đời để giải quyết việc đó!
tố "A" đứng đầu, sau đó là số hiệu của chân
Trang 13analogRead() luôn trả về 1 số nguyên nằm trong khoảng từ 0 đến 1023tương ứng với thang điện áp (mặc định) từ 0 đến 5V Bạn có thể điều chỉnhthang điện áp này bằng hàm analogReference();
Hàm analogRead() cần 100 micro giây để thực hiện
Khi người ta nói "đọc tín hiệu analog", bạn có thể hiểu đó chính là việc đọcgiá trị điện áp từ các chân vào tương tự
Cú pháp
analogRead([chân đọc điện áp]);
2.3. analogWrite();
Lệnh này sẽ được khảo sát kỹ trong phần tìm hiểu và lập trình PWM
analogWrite() là lệnh xuất ra từ một chân trên mạch Arduino mộtmức tín hiệu analog (phát xung PWM) Người ta thường điều khiển mức sángtối của đèn LED hay hướng quay của động cơ servo bằng cách phát xung PWMnhư thế này
Bạn không cần gọi hàm pinMode() để đặt chế độ OUTPUT cho chân sẽ
dùng để phát xung PWM trên mạch Arduino
Tần số là số lần lặp lại trong 1 đơn vị thời gian Đơn vị tần số là Hz, tức là
số lần lặp lại dao động trong 1 giây
Hàm analogWrite() trong Arduino giúp việc tạo 1 xung dễ dàng hơn Hàmnày truyền vào tham số cho phép thay đổi chu kì xung, bạn có thể tính toán
Trang 14ra được chu kì xung như ở bảng trên Tần số xung được Arduino thiết lậpmặc định.
Đối với board Arduino Uno, xung trên các chân 3,9,10,11 có tần số là490Hz, xung trên chân 5,6 có tần số 980Hz Làm thế nào để tạo ra các xung
có tần số nhanh hơn? Bạn có thể tham khảo thêm các thư viện riêng hỗ trợviệc này Trong mã nguồn Arduino gốc không hỗ trợ phần này
Trang 15CHƯƠNG 3: ĐO VÀ ĐIỀU KHIỂN NHIỆT ĐỘ SỬ DỤNG CẢM BIẾN
NHIỆT DS18B20
1 CHI TIẾT ĐỒ ÁN:
Cho hệ thống điều khiển nhiệt độ gồm: dây MAYSO để làm nóng,
QUẠT để làm mát, sử dụng cảm biến LM35 để đo nhiệt độ thực (T_t), biến
trở để đặt nhiệt độ (T-d)
Với mạch mô phỏng như sau:
Trang 16Nội dung màn hình LCD được gợi ý như sau:
Bảng chân lý điều khiển MAYSO và QUAT như sau:
So sánh giá trị T_d và T_t Trạng thái MAYSO Trạng thái của QUẠT
Trang 17Bắt đầu