/*---------------------------do not debug----------------------------*/ HomeArduino Cách sử dụng cảm biến nhiệt độ LM35, LM335 và LM34 trên Arduino
Cách sử dụng cảm biến nhiệt độ LM35 (LM35DZ), LM335 và LM34 với Arduino.
Hướng dẫn này cho biết cách sử dụng cảm biến nhiệt độ LM35 (LM35DZ), LM335 và LM34 với Arduino. Chúng tôi sẽ chỉ cho bạn cách nối dây các cảm biến và viết mã để có được số đọc nhiệt độ. Cuối cùng, chúng tôi làm một ví dụ để hiển thị số đọc cảm biến trên màn hình OLED. Bạn có thể tham khảo & mua linh kiện tại đây: - Mạch Arduino UNO R3
- Màn hình Oled I2C SSD1360 0.96 inch
- Test board (Breadboard)
- Dây cắm test board
- Điện trở 4.7k ôm
- LM 35
Giới thiệu cảm biến nhiệt độ LM35, LM335 và LM34
LM35, LM335 và LM34 là các cảm biến nhiệt độ tuyến tính tạo ra điện áp tỷ lệ thuận với giá trị nhiệt độ. Cảm biến nhiệt độ | Điện áp đầu ra | Tuyến tính |
LM35 (LM35DZ) | tỷ lệ thuận với nhiệt độ trong Celsius (ºC) | 10mV/ºC |
LM335 | tỷ lệ thuận với nhiệt độ trong Kelvin (ºK) | 10mV/ºK |
LM34 | tỷ lệ thuận với nhiệt độ trong Fahrenheit (ºF) | 10mV/ºF |
Các cảm biến này hoạt động theo cách tương tự, nhưng được hiệu chỉnh khác nhau để tạo ra điện áp tỷ lệ thuận với các đơn vị nhiệt độ khác nhau. LM35 tạo ra nhiệt độ tăng 10 mV mỗi độ C. Theo cách tương tự, LM335 tạo ra nhiệt độ tăng 10 mV mỗi độ Kelvin và LM34 tạo ra nhiệt độ tăng 10 mV mỗi độ Fahrenheit. Ví dụ: nếu LM35 tạo ra điện áp 345 mV, điều đó có nghĩa là chúng ta có giá trị nhiệt độ là 34.5ºC. Để biết thêm thông tin về các cảm biến này, bạn có thể tham khảo datasheet của chúng: - LM35 (LM35DZ) datasheet
- LM335 datasheet
- LM34 datasheet
LM35 (LM35DZ) Pinout
LM35 chỉ có ba chân, VCC, Vout và GND. Tại đây, các kết nối bạn cần thực hiện giữa LM35 và Arduino: LM35 / LM34 | Arduino |
VCC | 5V |
Vout | Any Analog Pin |
GND | GND |
Lưu ý: nếu bạn sử dụng cảm biến nhiệt độ LM34, thì pinout giống với LM35. LM335 Pinout Sơ đồ chân của cảm biến nhiệt độ LM335 hơi khác nhau. LM335 | Arduino |
Adj | Don’t connect |
Vout | Bất kỳ Pin tương tự (kéo lên với điện trở 2k Ohm) |
GND | GND |
Pin adj có thể được sử dụng để hiệu chỉnh cảm biến và thu được số đọc nhiệt độ chính xác hơn. Chúng tôi đã không sử dụng pin đó trong hướng dẫn này, vì vậy nó sẽ không được kết nối. LM335 with Arduino Code – Read Temperature
Đoạn mã sau đọc nhiệt độ từ cảm biến LM35 và hiển thị số đọc trong Serial Monitor. /* * Rui Santos * Complete Project Details https://RandomNerdTutorials.com */ const int sensorPin = A0; float sensorValue; float voltageOut; float temperatureC; float temperatureF; // uncomment if using LM335 //float temperatureK; void setup() { pinMode(sensorPin, INPUT); Serial.begin(9600); } void loop() { sensorValue = analogRead(sensorPin); voltageOut = (sensorValue * 5000) / 1024; // calculate temperature for LM35 (LM35DZ) temperatureC = voltageOut / 10; temperatureF = (temperatureC * 1.8) + 32; // calculate temperature for LM335 //temperatureK = voltageOut / 10; //temperatureC = temperatureK - 273; //temperatureF = (temperatureC * 1.8) + 32; // calculate temperature for LM34 //temperatureF = voltageOut / 10; //temperatureC = (temperatureF - 32.0)*(5.0/9.0); Serial.print("Temperature(ºC): "); Serial.print(temperatureC); Serial.print(" Temperature(ºF): "); Serial.print(temperatureF); Serial.print(" Voltage(mV): "); Serial.println(voltageOut); delay(1000); } View raw code Mã hoạt động như thế nào Bạn bắt đầu bằng cách xác định chân được kết nối với đầu ra cảm biến.Nó phải là một pin tương tự. Chúng tôi sử dụng pinA0, nhưng bạn có thể sử dụng bất kỳ pin tương tự khác. const int sensorPin = A0; Xác định một biến sẽ giữ giá trị tương tự đọc từ cảm biến: float sensorValue; Biến voltageOutsẽ lưu trữ giá trị đầu ra điện áp thực tế đến từ cảm biến. float voltageOut; Sau đó, tạo các biến sẽ lưu trữ giá trị nhiệt độ.Ở đây, chúng tôi tạo ra một biếntemperatureC và một biến temperatureFđể giữ nhiệt độ tương ứng bằng Celsius và Fahrenheit. float temperatureC; float temperatureF; Nếu bạn sử dụng cảm biến LM335, bạn cũng cần một biến để giữ nhiệt độ trong Kelvin. Vì vậy, nếu bạn sử dụng cảm biến đó, bạn cần bỏ dòng sau: //float temperatureK; Trong setup(), khai báo sensorPin làm đầu vào: pinMode(sensorPin, INPUT); Khởi tạo giao tiếp nối tiếp ở tốc độ baud là 9600. Bạn cần khởi tạo giao tiếp nối tiếp để có thể hiển thị các bài đọc trên Màn hình nối tiếp: Serial.begin(9600); Trong hàm loop(), đọc giá trị đến từ cảm biến của bạn và lưu nó vào biếnvoltageOut . Để đọc một giá trị tương tự với Arduino, bạn chỉ cần sử dụng hàmanalogRead() và truyền mã pin bạn muốn đọc làm đối số. voltageOut = analogRead(sensorPin); Như đã đề cập trước đây, các cảm biến này tạo ra một giá trị điện áp tỷ lệ thuận với nhiệt độ. Các giá trị tương tự được đọc từ Arduino có thể có giá trị từ 0 đến 1024, trong đó 0 tương ứng với 0V và 1024 đến 5V. Vì vậy, chúng ta có thể dễ dàng có được điện áp đầu ra của cảm biến trong mV. voltageOut = (sensorValue * 5000) / 1024 Trong trường hợp cảm biến LM35, chúng tôi đã thấy rằng 10mV tương ứng với mức tăng nhiệt độ Celsius. Vì vậy, nhiệt độ tính bằng Celsius tương ứng với điện áp đọc từ cảm biến tính bằng mV chia cho 10mV. temperatureC = voltageOut / 10; Để có được nhiệt độ bằng Fahrenheit, chúng ta chỉ cần sử dụng chuyển đổi Celsius -> Fahrenheit: Serial.print("Temperature(ºC): "); Serial.print(temperatureC); Serial.print(" Temperature(ºF): "); Serial.print(temperatureF); Đối với mục đích gỡ lỗi, chúng tôi cũng in điện áp. Serial.print(" Voltage(mV): "); Serial.println(voltageOut); Hàm loop() iđược lặp mỗi giây delay(1000); Biên dịch và kết quả
Tải mã lên Arduino IDE của bạn. Đừng quên chọn đúng board và cổng COM bên phải trong menu Công cụ. Sau đó, mở Serial Monitor ở tốc độ baud là 9600. Bạn sẽ thấy được giá trị nhiệt độ mới mỗi giây. Bạn có thể che cảm biến bằng ngón tay để xem giá trị nhiệt độ tăng. Chỉ số nhiệt độ trong màn hình OLED Phần này chúng tôi sẽ chỉ cho bạn cách hiển thị số đọc cảm biến của bạn trong màn hình OLED. Để có hướng dẫn chuyên sâu về cách sử dụng màn hình OLED với Arduino, hãy làm theo hướng dẫn tiếp theo: Guide for I2C OLED Display with Arduino Linh kiện và đồ dùng cần thiết Đối với ví dụ này, bạn sẽ cần các phần sau: - Arduino board (read Best Arduino Started Kits)
- LM35 Temperature Sensor (or LM335, LM34)
- 2k Ohm resistor (nếu sử dụng LM335)
- I2C OLED Display
- Jumper Wires
- Breadboard
Sơ đồ Đấu dây tất cả các thành phần như trong sơ đồ tiếp theo: Cài đặt thư viện OLED Để điều khiển màn hình OLED, bạn cần các thư viện adafruit_SSD1306.h và adafruit_GFX.h. Thực hiện theo các hướng dẫn tiếp theo để cài đặt các thư viện. 1. Mở Arduino IDE của bạn và đi đến Sketch > Include Library > Manage Libraries. Trình quản lý thư viện sẽ mở. 2. Nhập vào “SSD1306”, trong hộp tìm kiếm và cài đặt thư viện SSD1306 từ Adafruit. 3. Sau khi cài đặt thư viện SSD1306 từ Adafruit, hãy nhập “GFX” trực tiếp vào hộp tìm kiếm và cài đặt thư viện. 4. Sau khi cài đặt các thư viện, hãy khởi động lại Arduino IDE của bạn. Code – Display Readings on OLED
Sau khi đấu dây mạch và cài đặt các thư viện cần thiết, hãy tải đoạn mã sau lên bảng Arduino của bạn. /* * Rui Santos * Complete Project Details https://RandomNerdTutorials.com */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); const int sensorPin = A0; float sensorValue; float voltageOut; float temperatureC; float temperatureF; // uncomment if using LM335 //float temperatureK; void setup() { pinMode(sensorPin, INPUT); Serial.begin(9600); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for(;;); } delay(2000); display.clearDisplay(); display.setTextColor(WHITE); } void loop() { sensorValue = analogRead(sensorPin); voltageOut = (sensorValue * 5000) / 1024; // calculate temperature for LM35 (LM35DZ) temperatureC = voltageOut / 10; temperatureF = (temperatureC * 1.8) + 32; // calculate temperature for LM335 //temperatureK = voltageOut / 10; //temperatureC = temperatureK - 273; //temperatureF = (temperatureC * 1.8) + 32; // calculate temperature for LM34 //temperatureF = voltageOut / 10; //temperatureC = (temperatureF - 32.0)*(5.0/9.0); Serial.print("Temperature(ºC): "); Serial.print(temperatureC); Serial.print(" Temperature(ºF): "); Serial.print(temperatureF); // clear display display.clearDisplay(); // display temperature Celsius display.setTextSize(1); display.setCursor(0,0); display.print("Temperature: "); display.setTextSize(2); display.setCursor(0,10); display.print(temperatureC); display.print(" "); display.setTextSize(1); display.cp437(true); display.write(167); display.setTextSize(2); display.print("C"); // display temperature Fahrenheit display.setTextSize(1); display.setCursor(0, 35); display.print("Temperature: "); display.setTextSize(2); display.setCursor(0, 45); display.print(temperatureF); display.print(" "); display.setTextSize(1); display.cp437(true); display.write(167); display.setTextSize(2); display.print("F"); display.display(); delay(1000); } View raw code Biên dịch và kết quả Bây giờ, bạn có thể kiểm tra số đọc cảm biến trong màn hình OLED. Chỉ số nhiệt độ mới được cập nhật theo từng giây. Kết luận LM35, LM335 và LM34 là các cảm biến nhiệt độ tuyến tính tạo ra điện áp tỷ lệ thuận với giá trị nhiệt độ. Chúng có thể được cung cấp năng lượng bởi chân Arduino 5V và để đọc điện áp, bạn sử dụng chân analog. Đọc điện áp từ cảm biến cũng dễ như sử dụng chức năng analogRead() trên chân cảm biến. Sau đó, bạn chỉ cần thực hiện một phép tính đơn giản để có được nhiệt độ trong đơn vị mong muốn của bạn. Thanks for reading. Tags Arduino
You might like
Show more
Post a Comment
Previous Post Next Post
Follow Us
BÀI ĐĂNG PHỔ BIẾN
Thư viện mô phỏng Arduino trên Proteus
Cách sử dụng Virtual Terminal trong Proteus
TrollStore - Phần mềm cho phép cài đặt vĩnh viễn bất kỳ ứng dụng iOS nào (hỗ trợ: 14.0 ~ 15.4.1 15.5 beta4)
Hướng dẫn cài đặt Altium 16.1.12 crack full ( Instructions for installing Altium 16.1.12 full crack )
Thư viện cảm biến khí gas, cồn (MQ-2, MQ-3, MQ-5,..) cho Proteus
Cowabunga - Ứng dụng tuỳ chỉnh Iphone mà không cần Jailbreak
Categories
- Arduino
- Atmega 16
- Công nghệ
- Hệ điều hành
- IOS Apps
- Jailbreak
- Linh tinh
- Mạch điện
- Mạch đồng hồ
- MacOS
- Non Jailbreak
- Office2011
- Phần mềm
- Phần mềm điện tử
- Photoshop
- Proteus
- Rom Samsung
- Tài liệu
- Tên miền
- Thư viện
- Thư viện Proteus
- Tiện ích
- Tin công nghệ
- Tin học
- Tools
Biểu mẫu liên hệ