Mục lục:

Nhiệt kế kỹ thuật số với Arduino & DS18B20: 7 bước
Nhiệt kế kỹ thuật số với Arduino & DS18B20: 7 bước

Video: Nhiệt kế kỹ thuật số với Arduino & DS18B20: 7 bước

Video: Nhiệt kế kỹ thuật số với Arduino & DS18B20: 7 bước
Video: ĐỌC CẢM BIẾN NHIỆT ĐỘ DS18B20 - ARDUINO 2024, Tháng bảy
Anonim
Nhiệt kế kỹ thuật số với Arduino & DS18B20
Nhiệt kế kỹ thuật số với Arduino & DS18B20
Nhiệt kế kỹ thuật số với Arduino & DS18B20
Nhiệt kế kỹ thuật số với Arduino & DS18B20

Đơn giản chỉ cần tạo một nhiệt kế kỹ thuật số có thể cho bạn biết nhiệt độ phòng hiện tại trên màn hình LCD. Đây là một dự án mới bắt đầu. Thiết bị mà bạn cần: 1. Arduino UNO R3 2. Cảm biến nhiệt độ DS18B20. 3. Màn hình LCD 16X2. 4. Kết nối dây. 5. Ban dự án. Bây giờ chúng ta hãy tạo nhiệt kế kỹ thuật số….. Đây là sơ đồ chân của Atmega168 cho arduino. Chỉ cần bỏ qua điều này nếu bạn muốn làm nhiệt kế này với arduino của mình.

Bước 1: Tạo Arduino trên Breadboard

Tạo Arduino trên Breadboard
Tạo Arduino trên Breadboard

Tạo arduino trên bảng điều khiển rất dễ dàng. Bây giờ quy trình đấu dây từng bước được đưa ra dưới đây: 1. Pin 7 -> + 5V 2. Pin8 -> GND 3. Pin9 -> Crystal -> tụ 22pF -> GND 4. Pin10-> Crystal -> tụ 22pF -> GND 5. pin 22 -> GND 6. Pin21 & Pin20 -> + 5V 7. Pin1-> 10K thanh ghi vào GND + Nút ấn đến + 5V Bây giờ bạn đã sẵn sàng ……………..

Bước 2: Kết nối LCD

Kết nối LCD
Kết nối LCD

Bước 3: Kết nối cảm biến nhiệt độ DS18B20

Kết nối cảm biến nhiệt độ DS18B20
Kết nối cảm biến nhiệt độ DS18B20

Bước 4: Chuẩn bị mạch

Chuẩn bị mạch
Chuẩn bị mạch

Kết nối màn hình LCD với atmega hoặc arduino theo ví dụ màn hình LCD mặc định trên arduino IDE. Bây giờ kết nối bus DATA DS1307 với mã PIN KỸ THUẬT SỐ 7 (chân 13 của Atmega)

Bước 5: MÃ Arduino

#include #include #include int DS18S20_Pin = 7; // Chân tín hiệu DS18S20 trên digital 7 bằng rahulmitra LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Chip nhiệt độ i / o OneWire ds (DS18S20_Pin); // trên chân số 7 của rahulmitra void setup (void) {Serial.begin (9600); lcd.begin (16, 2); // In thông báo ra màn hình LCD. lcd.print ("Rahul Mitra"); } void loop (void) {float heat = getTemp (); Serial.println (nhiệt độ); lcd.setCursor (0, 1); lcd.print ("Nhiệt độ:"); lcd.print (nhiệt độ); lcd.print ("* C"); chậm trễ (100); // chỉ ở đây để làm chậm đầu ra để dễ đọc hơn} float getTemp () {// trả về nhiệt độ từ một DS18S20 trong dữ liệu byte DEG Celsius [12]; byte addr [8]; if (! ds.search (addr)) {// không còn cảm biến trên chuỗi, hãy đặt lại tìm kiếm ds.reset_search (); trả về -1000; } if (OneWire:: crc8 (addr, 7)! = addr [7]) {Serial.println ("CRC không hợp lệ!"); trả về -1000; } if (addr [0]! = 0x10 && addr [0]! = 0x28) {Serial.print ("Không nhận dạng được thiết bị"); trả về -1000; } ds.reset (); ds.select (addr); ds.write (0x44, 1); // bắt đầu chuyển đổi, với nguồn ký sinh được bật ở byte cuối present = ds.reset (); ds.select (addr); ds.write (0xBE); // Đọc Scratchpad for (int i = 0; i <9; i ++) {// chúng ta cần dữ liệu 9 byte = ds.read (); } ds.reset_search (); byte MSB = data [1]; byte LSB = data [0]; float tempRead = ((MSB << 8) | LSB); // bằng cách sử dụng float khen ngợi của hai người TemperatureSum = tempRead / 16; trở lại Nhiệt độSum; }

Bước 6: Cuối cùng thì bạn đã hoàn thành

Cuối cùng thì bạn đã hoàn thành
Cuối cùng thì bạn đã hoàn thành
Cuối cùng thì bạn đã hoàn thành
Cuối cùng thì bạn đã hoàn thành

Bước 7: Xem TRỰC TIẾP

www.youtube.com/watch?v=7718FODdtio&list=UUY916I6z4Y3QQhzjHsIhR8w

Đề xuất: