Components Required for the Arduino LM35 Temperature Sensor with LCD Project
Arduino Uno | × 1 | Amazon |
LM35 temperature sensor | × 1 | Amazon |
LCD 16×2 | × 1 | Amazon |
Breadboard | × 1 | Amazon |
Jumper wires | × 2 | Amazon |
USB cable type A/B | × 1 | Amazon |
Software
Arduino IDE |
Arduino Temperature Sensor LM35 LCD Code
/*** www.arduinopoint.com ***/ /*** Arduino LM35 Temperature Sensor Project with LCD ***/ // Define to which pin of the Arduino the output of the LM35 is connected: #define sensorPin A0 #include
//To include a library to write data on the 16*2 lcd device LiquidCrystal lcd(8,9,10,11,12,13); //we have connected LCD pins to these pins on Arduino byte degree[8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; // These lines are to create a custom Degree sign void setup()// this will run only on either on start-up or when arduino is reset { lcd.begin(16,2); lcd.createChar(1, degree); //we assign a number 1 to the degree sign created above lcd.setCursor(2,0); lcd.print(“Arduino Point”); lcd.setCursor(3,1); lcd.print(“Thermometer”); delay(2000); // Keep the words on screen for two seconds lcd.clear(); // clear the screen for writing anything else // Begin serial communication at a baud rate of 9600: Serial.begin(9600); } void loop()// this function will keep on running { // Get a reading from the temperature sensor: int reading = analogRead(sensorPin); // analogRead will read the incoming data from the LM35 sensor /*———Temperature——-*/ // Convert the reading into voltage: //This formula converts the ADC number 0-1023 to 0-5000mV (= 5V). float voltage = reading * (5000 / 1024.0); // Convert the voltage into the temperature in degree Celsius: float temperatureC = voltage / 10; float temperatureF=(temperatureC*1.8)+32; // Converting to Fahrenheit delay(10); /*——Display Result in Serial Monitor——*/ // Print the temperature in Celsius into the Serial Monitor: Serial.print(“Temperature in Celsius = “); Serial.print(temperatureC); Serial.print(” \xC2\xB0″); // shows degree symbol Serial.println(“C”); // Print the temperature in Celsius into the Serial Monitor: Serial.print(“Temperature in Fahrenheit = “); Serial.print(temperatureF); Serial.print(” \xC2\xB0″); // shows degree symbol Serial.println(“F”); Serial.print(“\n”); /*——Display Result in LCD——*/ lcd.clear(); lcd.setCursor(2,0); // Setting Curser on First character of first line lcd.print(“Temperature”); // printing the word Temperature on the display lcd.setCursor(0,1); // setting curser on First character on 2nd line lcd.print(temperatureC); // printing temperatureC value we got from the Sensor on the LCD lcd.write(1); // Write the custom charecter we created (degree sign) lcd.print(“C”); lcd.setCursor(8,1); // setting curser on Second First character on 2nd line lcd.print(temperatureF); // printing temperatureF value we got from the Sensor on the LCD lcd.write(1); // Write the custom charecter we created (degree sign) lcd.print(“F”); delay(1000); // refresh every one second }
Result
You should see your display constantly monitors temperature surrounding the LM35 and shows it on the LCD module display in degree Celsius and Fahrenheit. If you cannot see the desired output, ensure the circuit has been properly assembled, and verified and uploaded the code to your board.
- Make Arduino thermometer using LM35.
-
You can make a Mini weather station using Arduino and LM35.
Applications
- Temperature measurement in industrial processes.
- Monitoring temperature in agriculture, greenhouses, and livestock farms.
- Temperature control in ovens and kilns.
- Temperature measurement in automobiles and other vehicles.
- Environmental monitoring and control.
- Monitoring temperature in refrigeration systems.
- Temperature measurement in medical equipment and devices.
Features of LM35
- Calibrated Directly in Celsius (Centigrade)
- Output proportional to °C
- Linear + 10-mV/°C Scale Factor
- Operates From 4 V to 30 V
- Less Than 60 μA Current Drain
- Low-Impedance Output, 0.1 Ω for 1 mA Load
- Low-Cost Due to Wafer-Level Trimming
- Accuracy 0.5°C (at 25°C)
- LM35 range temperature −55°C to 150°C
- Low Self-Heating, 0.08°C in Still Air
- Non-Linearity Only ±¼°C Typical
- Suitable for Remote Applications
Bài tập
Bài tập 1: Thiết kế mạch gồm 1 đèn led và 1 LM35. Nếu nhiệt độ môi trường >30 °C thì cho phép đèn sáng lên.
Bài tập 2: Thiết kế mạch gồm 1 LCD và 1 LM35. Viết chương trình hiển thị nhiệt độ lên LCD (hiển thị theo °C).
Bài tập 3: Thiết kế mạch gồm 1 LCD và 1 LM35, 2 nút nhấn. Viết chương trình tương tự như bài 2 nhưng có thêm phần xử lý nút nhấn, một nút nhấn cho phép hiển thị theo °C, một nút nhấn cho phép hiển thị độ F.
Bài tập 4: Làm tương tự như bài tập 3 với một nút nhấn. Nhấn lần 1 thì hiển thị °C, nhấn lần 2 thì hiển thị °F.
Bài tập 5: Thiết kế mạch gồm 1 LCD, 1 LM35, 1 nút nhấn, 1 đèn xanh, 1 đèn đỏ, 1 đèn vàng. Các thiết bị có các chức năng sau:
– LCD hiển thị nhiệt độ cho LM35.
– Nút nhấn cho phép chuyển chế độ hiển thị độ đo (độ F sang °C và ngược lại).
– Đèn xanh sáng khi nhiệt độ dưới 17 °C, đèn vàng sáng khi nhiệt độ từ 17 °C – 30 °C và đèn đỏ sáng khi nhiệt độ lớn hơn 30 °C.
Trong bài viết này, tôi sẽ hướng dẫn cho các bạn chế tạo một nhiệt kế số dựa trên Arduino để hiển thị nhiệt độ môi trường xung quanh và sự thay đổi của nhiệt độ được hiển thị trên LCD trong thời gian thực. Nó có thể được triển khai trong nhà, văn phòng, các ngành công nghiệp v.v.. để đo nhiệt độ. Dự án này dựa trên Arduino giao tiếp với cảm biến nhiệt độ LM35 và màn hình hiển thị LCD 16×2. Chúng ta có thể phân chia nhiệt kế dựa trên arduino thành ba phần – Đầu tiên cảm nhận nhiệt độ bằng cách sử dụng cảm biến LM35, phần thứ hai chuyển đổi giá trị nhiệt độ thành một số thích hợp trong thang đo độ C được thực hiện bởi Arduino, và phần cuối của hệ thống hiển thị nhiệt độ trên LCD. Sơ đồ khối của nhiệt kế số được thể hiện trong hình bên dưới.
Trong giao tiếp giữa Arduino và LM35 cảm biến nhiệt độ này, Arduino Uno được sử dụng để kiểm soát toàn bộ quá trình. Cảm biến nhiệt độ LM35 được sử dụng để đo nhiệt độ môi trường, đầu ra của cảm biến là tín hiệu điện áp biến đổi theo nhiệt độ, cứ 10mV tương ứng với 1 độ C. Ví dụ, nếu điện áp đầu ra của cảm biến LM35 là 250mV, điều đó có nghĩa là nhiệt độ là khoảng 25 độ C.
Arduino đọc điện áp đầu ra của cảm biến nhiệt độ bằng cách sử dụng chân Analog A0 và thực hiện phép tính để chuyển đổi giá trị Analog này thành giá trị số của nhiệt độ hiện tại. Sau khi tính toán Arduino gửi các tính toán hoặc nhiệt độ này đến màn hình LCD 16×2 bằng cách sử dụng các lệnh thích hợp.
Chuẩn bị
Phần cứng
Tên linh kiện | Số lượng |
Arduino Uno | |
Cảm biến LM35 | |
LCD 16×2 | |
Breadboard | |
Dây cắm breadboard |
Phần mềm: Arduino IDE
Giới thiệu cảm biến LM35
LM35 là loại cảm biến tương tự, hoạt động chính xác, sai số nhỏ, kích thước gọn nhẹ, có giá thành hợp lý nên được ứng dụng nhiều trong đo nhiệt độ ở thời gian thực rất phổ biến. Loại cảm biến nhiệt độ tương tự này cũng rất dễ dàng đọc thông số, giá trị đo bằng các hàm đơn giản.
Cảm biến nhiệt độ LM35 hoạt động bằng cách cho ra một giá trị hiệu điện thế nhất định tại chân Vout (chân giữa) ứng với mỗi mức nhiệt độ. Như vậy, bằng cách đưa vào chân bên trái của cảm biến LM35 hiệu điện thế 5V, chân phải nối đất, đo hiệu điện thế ở chân giữa bằng các pin A0 trên Arduino, bạn sẽ có được nhiệt độ (0-100ºC).
Sơ đồ chân
Số chân | Tên | Chức năng |
Vs | Điện áp nguồn; 5V (+4V đến 30V) | |
Vout | Điện áp ra (-1V đến 6V) | |
GND | Chân nối đất |
Thông số kỹ thuật
- Điện áp đầu vào từ 4V đến 30V
- Điện áp ra: -1V đến 6V
- Công suất tiêu thụ là 60uA
- Độ phân giải điện áp đầu ra là 10mV/oC
- Độ chính xác cao ở 25 C là 0.5 C
- Trở kháng đầu ra thấp 0.1 cho 1mA tải
- Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng -55°C tới 150°C
Tính toán nhiệt độ đầu ra của LM35
Việc đo nhiệt độ sử dụng LM35 thông thường chúng ta thực hiện bằng cách
Như vậy ta có:
VOUT = t*k
Trong đó:
- VOUT là điện áp đầu ra của cảm biến LM35
- t là nhiệt độ môi trường (oC)
- k là hệ số theo nhiệt độ của LM35 (10mV/oC)
VOUT = t*10mV/oC
Giả sử điện áp cấp cho LM35 là 5V. Bộ chuyển đổi ADC gồm 10 bit tức là 1024 (210) mức.
Vậy mỗi bước thay đổi của LM35 sẽ là n = 5/(210) = 5/1024
Giá trị ADC đo được từ điện áp đầu vào của LM35 là
Giá trị ADC = VOUT/n = (t* 10-2*1024) / 5
Vậy nhiệt độ ta đo được t (oC) = Giá trị ADC/2,048
Tương tự với ADC 11 bit và VCC khác ta cũng tính như trên để được công thức lấy nhiệt độ
Sơ đồ mạch và giải thích
Sơ đồ mạch cho nhiệt kế số sử dụng cảm biến nhiệt độ Arduino LM35, được thể hiện trong hình trên. Ở đây màn hình LCD 16×2 được kết nối trực tiếp với Arduino trong chế độ 4-bit. Chân dữ liệu của LCD là RS, EN, D4, D5, D6, D7 được kết nối với số các chân 7, 6, 5, 4, 3, 2 của arduino. Cảm biến nhiệt độ LM35 cũng được kết nối với chân Analog A0 của Arduino, tạo ra nhiệt độ 1 độ C trên mỗi thay đổi đầu ra 10mV tại chân đầu ra của nó.
Chương trình
/*———–Arduino LM35 Code————-*/
/*———–Do nhiet do dung Arduino————-*/
#include
#define sensor A0
byte degree[8] ={0b00011,0b00011,0b00000,0b00000,0b00000,0b00000,0b00000,0b00000};
void setup(){lcd.begin(16,2);lcd.createChar(1,degree);lcd.setCursor(0,0);lcd.print(“Do nhiet do dung”);lcd.setCursor(0,1);lcd.print(“Cam bien LM35”);delay(500);lcd.clear();lcd.print(“dientuviet.com”);delay(500);lcd.clear();}
void loop(){/*———Đo nhiet do——-*/float reading=analogRead(sensor);float nhietdo=reading*(5.0/1024.0)*100;delay(10);
/*——Hien thi ket qua——*/lcd.clear();lcd.setCursor(2,0);lcd.print(“Nhiet do”);lcd.setCursor(4,1);lcd.print(nhietdo);lcd.write(1);lcd.print(“C”);delay(1000);}
Giải thích
Để viết chương trình cho nhiệt kế số, chúng ta cần phải viết code để giao tiếp cho Arduino, cảm biến nhiệt độ LM35 và mô-đun LCD 16×2. Đầu tiên chúng ta include thư viện cho màn hình LCD và sau đó chúng ta định nghĩa dữ liệu và chân điều khiển cho màn hình LCD và cảm biến nhiệt độ.
#include
#define sensor A0
Sau khi nhận được giá trị tương tự (analog) tại chân A0, Arduino sẽ đọc giá trị đó bằng cách sử dụng hàm đọc Analog và lưu trữ giá trị đó trong một biến. Và sau đó bằng cách áp dụng công thức đã cho để chuyển đổi nó sang nhiệt độ.
float analog_value=analogRead(analog_pin);
float nhietdo=analog_value*factor*100
Trong đó
factor=5/1024
analog_value= giá trị ngõ ra của cảm biến nhiệt độ
float reading=analogRead(sensor);float nhietdo=reading*(5.0/1023.0)*100;delay(10);
Ký hiệu độ (o) ở đây được tạo bằng cách sử dụng phương pháp ký tự tùy chỉnh
byte degree[8] ={0b00011,0b00011,0b00000,0b00000,0b00000,0b00000,0b00000,0b00000};
Table of Contents
Introduction
Interfacing an LM35 temperature sensor with a 16×2 Arduino LCD module using an Arduino UNO microcontroller involves connecting the LM35 temperature sensor to an analog input pin on the Arduino UNO and reading the analog voltage output of the LM35 which is proportional to the temperature. This voltage is then converted to a temperature value in centigrade and Fahrenheit. Finally, the temperature value is displayed on the 16×2 LCD module. The communication between the microcontroller and the LCD module is done through an interface such as I2C or a parallel interface. This setup is used to measure and display the ambient temperature in real time.
The LM35 is a linear temperature sensor that provides a voltage output proportional to the temperature in Celsius. It has a sensitivity of 10mV/°C, meaning that for every 1°C increase in temperature, the output voltage will increase by 10mV. The sensor can measure temperatures ranging from -55°C to 150°C, with an accuracy of ±1°C.
Đặc điểm của cảm biến LM35
Cảm biến LM35 là một cảm biến đo nhiệt độ của môi trường. Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra (Vout) của LM35. Nhiệt độ lấy ra từ cảm biến LM35 thay đổi theo hiệu điến thế, khoảng 10mV/°C. Cảm biến LM35 có thể lấy ra nhiệt độ ở đơn vị °C hoặc đổi sang °F.
Nhiệt độ nhận được từ LM35 có thể chênh lệch với thực tế 0.25°C ở nhiệt độ phòng và 0.75°C ngoài trời. LM35 có thể đo nhiệt độ trong khoảng -55°C tới 150°C.
Ưu điểm của LM35 là có hiệu năng cao, công suất tiêu thụ là 60µA. LM35 có khả năng nhận được sự thay đổi nhiệt độ nhanh và tương đối chính xác.
Arduino Code – LM35 Temperature Sensor – LCD I2C
Quick Steps
- Open Arduino IDE on your PC.
- Navigate to the Libraries icon on the left bar of the Arduino IDE.
- Search “LiquidCrystal I2C”, then find the LiquidCrystal_I2C library by Frank de Brabander
- Click Install button to install LiquidCrystal_I2C library.
- Copy the above code and open with Arduino IDE
- Click Upload button on Arduino IDE to upload code to Arduino
- Put the sensor on hot and cold water, or grasp the sensor by your hand
- See the result on LCD and Serial Monitor
※ NOTE THAT:
The I2C address of LCD can vary according to the manufacturers. In the code, we used 0x27 that is specified by DIYables manufacturer
What is LM35 Temperature Sensor?
LM35 sensor is a precision integrated-circuit temperature sensor, with an output voltage linearly proportional to the Centigrade temperature. The LM35 device has an advantage over linear temperature sensors calibrated in Kelvin, as the user is not required to subtract a large constant voltage from the output to obtain convenient Centigrade scaling. The LM35 device does not require any external calibration or trimming to provide typical accuracies of ± ¼ °C at room temperature and ± ¾ °C over a full −55°C to 150°C temperature range. Lower cost is assured by trimming and calibration at the wafer level.
The low output impedance, linear output, and precise inherent calibration of the LM35 device make interfacing to readout or control circuitry especially easy. The device is used with single power supplies, or with plus and minus supplies. As the LM35 device draws only 60 μA from the supply, it has very low self-heating of less than 0.1°C in still air. The LM35 device is rated to operate over a −55°C to 150°C temperature range, while the LM35C device is rated for a −40°C to 110°C range (−10° with improved accuracy).
Code mẫu
int sensorPin = A0; void setup() { Serial.begin(9600); } void loop() { int reading = analogRead(sensorPin); float voltage = reading * 5.0 / 1024.0; float temp = voltage * 100.0; Serial.println(temp); delay(1000); }
Giải thích Code
reading = analogRead(sensorPin);
Hàm
analogRead()
có nhiệm vụ đọc giá trị điện áp từ một chân Analog (ADC), hàm này luôn trả về 1 số nguyên nằm trong khoảng từ 0 đến 1023 tương ứng với thang điện áp (mặc định) từ 0 đến 5V. Hàm
analogRead()
cần 100 micro giây để thực hiện.
- Xem bài viết kiểu số nguyên int để hiểu thêm.
Vậy
reading = analogRead(sensorPin)
có nghĩa là đọc giá trị điện áp từ cảm biến nhiệt độ LM35.
float voltage = reading * 5.0 / 1024.0;
Công thức tính ra giá trị hiệu điện thế từ giá trị cảm biến (đơn vị Volt) Voltage = giá trị điện áp từ cảm biến chia cho mức analog cao nhất (1024) rồi nhân với mức điện áp 5V.
Như ở trên ta thấy nhiệt độ thay đổi tuyến tính 10mV/°C nên đổi từ Vol sang °C thì ta chỉ cần nhân giá trị điện thế với 100 là ra nhiệt độ.
float temp = voltage * 100.0;
Arduino – Display Temperature from LM35 Sensor on LCD
In this tutorial, we are going to learn how to read the temperature from LM35 sensor and display it on an LCD 16×2 I2C.
Cảm biến nhiệt độ LM35
- LM35 là một cảm biến nhiệt độ Analog (A0 đến A5 trên board Arduino Uno).
- LM35 không cần phải canh chỉnh nhiệt độ khi sử dụng.
- LM35 thay đổi nhiệt độ nhanh và chính xác.
Cảm biến nhiệt độ LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius.
Thông số kỹ thuật của cảm biến:
- Điện áp hoạt động: 4-20V DC.
- Công suất tiêu thụ: 60uA.
- Khoảng đo nhiệt độ: -55°C đến 150°C.
- Nhiệt độ thay đổi tuyến tính: 10mV/°C.
- Độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng 2°C tới 150°C.
Cảm biến LM35 hoạt động bằng cách cho ra một giá trị hiệu điện thế nhất định tại chân Vout (chân giữa) ứng với mỗi mức nhiệt độ.
Cụ thể hoạt động của mạch Arduino Uno R3 các bạn xem video:
Ngoài ra còn nhiều Phần và các môn khác
Đồ án điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 1 Mạch điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 2 Thiết kế mạch điện tử, Lập trình vi điều khiển tổng hợp File đồ án – Phần 3 Vi xử lý, Lập trình vi điều khiển Pic – 8051 – Avr – Phần 4 Tổng hợp File ĐỒ ÁN Điện tử cơ bản Tổng hợp File ĐỒ ÁN Viễn thông Tổng hợp File ĐỒ ÁN PLC Tổng hợp File ĐỒ ÁN Cung cấp điện
Hardware Components
You will require the following hardware for LM35 Temperature Sensor Display on LCD with Arduino.
S.no | Component | Value | Qty |
1. | Arduino UNO | ||
2. | USB Cable Type A to B | ||
3. | LED | I2C | |
4. | Temperature Sensor | LM35 | |
5. | Power Adapter for Arduino | 9V | |
6. | Breadboard | ||
7. | Jumper Wires |
Sẽ còn các phần khác nữa nhé.
Chúc các bạn thành công…!!!
Đo nhiệt độ bằng Cảm biến LM35 sử dụng Arduino Uno
Hôm nay chúng ta sẽ cùng nhau tìm hiểu về cách sử dụng cảm biến nhiệt độ LM35.
Cảm biến có ưu điểm hoạt động khá chính xác và ít sai số đồng thời kích thước nhỏ, giá thành thấp nên được sử dụng rất nhiều trong các ứng dụng đo nhiệt độ thời gian thực.
Qua bài viết này, các bạn sẽ tìm hiểu thêm một hàm mới là analogRead().
- Đọc bài viết về hàm analogRead(pin).
Hướng dẫn đồ án nhiệt độ LM35 giao tiếp Atmega hiển thị LCD1602
Phần cứng
Phần mềm
#include
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //(RS, E, D4, D5, D6, D7) int ar = 0, v = 0, t = 0; char y = 223; void setup() { lcd.begin(16, 2); } void loop() { ar = analogRead(A0); delay(100); // how to convert analog to digital see here: https://pijaeducation.com/adc-in-arduino/ v = ar * 4.887; t = v / 10; lcd.setCursor(0, 0); lcd.print(“AR:”); lcd.println(ar); lcd.setCursor(8, 0); lcd.print(“mV:”); lcd.println(v); lcd.setCursor(0, 1); lcd.print(“Temperature:”); lcd.print(t); lcd.print(y); delay(1000); lcd.clear(); }
Linh kiện cần thiết làm mạch Arduino Uno R3
1.1 Vi điều khiển Arduino Uno R
Giới thiệu
Arduino Uno R3 (Dip) 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ỗi châ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). Arduino Uno R3 là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển Microchip ATmega328 được phát triển bởi Arduino.cc. Bảng mạch được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thể giao tiếp với các bảng mạch mở rộng khác nhau. Mạch Arduino Uno thích hợp cho những bạn mới tiếp cận và đam mê về điện tử, lập trình…Dựa trên nền tảng mở do Arduino.cc cung cấp các bạn dễ dàng xây dựng cho mình một dự án nhanh nhất ( lập trình Robot, xe tự hành, điều khiển bật tắt led…).
Chức năng của Arduino R3:
- 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ới thiết bị khác thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không cần giao tiếp Serial, 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 PWM vớ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ài cá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). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này được người dùng sử dụng, LED sẽ sáng.
- Arduino Uno R3 có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit. Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
c.Thông số kỹ thuật Arduino Uno R3 (Dip)
Datasheets | Atmega328 |
Standard Package | 27 |
Category | Integrated Circuits (ICs) |
Family | Embedded – Atmel |
Series | Atmega |
Packaging | Tube |
Core Processor | AVR |
Core Size | 8-Bit |
Speed | 16MHz |
Connectivity | I²C, SPI, UART / USART, USB |
Peripherals | Brown-out Detec t/ Reset, HLVD, POR, PWM, WDT |
Number of I /O | 14 |
Program Memory Size | 32KB |
Program Memory Type | FLASH |
EEPROM Size | 1KB |
RAM Size | 2K |
Voltage – Supply (Vcc/Vdd) | 4.2 V ~ 5.5 V |
Data Converters | A/D 6 x 10bit |
Oscillator Type | Internal |
Operating Temperature | -40°C ~ 85°C |
Package / Case | 28-SOIC (0.295″, 7.50mm Width) |
Other Names | Atmega328 |
Power
- LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW).
- VIN: Chân này dùng để cấp nguồn ngoài (điện áp cấp từ 7-12VDC).
- 5V: Điện áp ra 5V (dòng điện trên mỗi chân này tối đa là 500mA).
- 3V3: Điện áp ra 3.3V (dòng điện trên mỗi chân này tối đa là 50mA).
- GND: Là chân mang điện cực âm trên board.
- IOREF: Điệp áp hoạt động của vi điều khiển trên Arduino UNO và có thể đọc điện áp trên chân IOREF. Chân IOREF không dùng để làm chân cấp nguồn.
e.Bộ nhớ
Vi điều khiển ATmega328:
- 32 KB bộ nhớ Plash: trong đó bootloader chiếm 0.5KB.
- 2 KB cho SRAM: (Static Random Access Menory): giá trị các biến khai báo sẽ được lưu ở đây. Khai báo càng nhiều biến thì càng tốn nhiều bộ nhớ RAM. Khi mất nguồn dữ liệu trên SRAM sẽ bị mất.
- 1 KB cho EEPROM: (Electrically Eraseble Programmable Read Only Memory): Là nơi có thể đọc và ghi dữ liệu vào đây và không bị mất dữ liệu khi mất nguồn.
Các chân đầu vào và đầu ra
Trên Board Arduino Uno có 14 chân Digital được sử dụng để làm chân đầu vào và đầu ra và chúng sử dụng các hàm pinMode(), digitalWrite(), digitalRead(). Giá trị điện áp trên mỗi chân là 5V, dòng trên mỗi chân là 20mA và bên trong có điện trở kéo lên là 20-50 ohm. Dòng tối đa trên mỗi chân I/O không vượt quá 40mA để tránh trường hợp gây hỏng board mạch. Ngoài ra, một số chân Digital có chức năng đặt biệt:
- Serial: 0 (RX) và 1 (TX): Được sử dụng để nhận dữ liệu (RX) và truyền dữ liệu (TX) TTL.
- Ngắt ngoài: Chân 2 và 3.
- PWM: 3, 5, 6, 9 và 11 Cung cấp đầu ra xung PWM với độ phân giải 8 bit bằng hàm analogWrite ().
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Các chân này hỗ trợ giao tiếp SPI bằng thư viện SPI.
- LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13. Khi chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW).
- TWI/I2C: A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
1.2 Cảm biến Nhiệt độ LM35
Giới thiệu
LM35 có dải đo từ 0 Độ đến 150 độ C. LM35 là cảm biến tiêu hao điện năng thấp sử dụng điện áp 5V. Cảm biến gồm có 3 chân, 2 chân nguồn, 1 chân tín hiệu ra dạng Analog. Chân dữ liệu của IC cảm biến LM35 là chân ngõ ra điện áp dạng tuyến tính. Chân số 2 cảm biến xuất ra cứ 1mV = 0.1°C (10mV = 1°C). Để lấy dữ liệu ở dạng °C chỉ cần lấy điện áp trên chân OUT đem chia cho 10. Chân 1 cấp điện áp 5V, chân 3 cấp GND, chân 2 là chân OUTPUT dữ liệu dạng điện áp LM35 là một cảm biến nhiệt độ tương tự, điện áp ở đầu ra của cảm biến tỷ lệ với nhiệt độ tức thời và có thể dễ dàng được xử lý để có được giá trị nhiệt độ bằng oC.
Thông số kỹ thuật lm35 giao tiếp Atmega
- Điện áp hoạt động: 4~20VDC
- Công suất tiêu thụ: khoảng 60uA
- Khoảng đo: -55°C đến 150°C
- Điện áp tuyến tính theo nhiệt độ: 10mV/°C
- Sai số: 0.25°C
- Kiểu chân: TO92
- Kích thước: 4.3 × 4.3mm
Nguyên lý hoạt động của cảm biến LM35 giao tiếp Arduino
Cảm biến LM35 hoạt động bằng cách cho ra một giá trị điện áp nhất định tại chân VOUT (chân giữa) ứng với mỗi mức nhiệt độ. Như vậy, bằng cách đưa vào chân bên trái của cảm biến LM35 điện áp 5V, chân phải nối đất, đo hiệu điện thế ở chân giữa, bạn sẽ có được nhiệt độ (0-100ºC) tương ứng với điện áp đo được. Vì điện áp ngõ ra của cảm biến tương đối nhỏ nên thông thường trong các mạch ứng dụng thực tế, chúng ta thường dùng Op-Amp để khuếch đại điện áp ngõ ra này.
Cách tính toán giao tiếp
- Thiết kế mạch.
- Cấp nguồn cho cảm biến với điện áp từ 4V đến 30V. Chân GND được nối đất.
- Kết nối chân VOUT với đầu vào bộ chuyển đổi tương tự sang số hay vi điều khiển.
- Lấy mẫu đọc ADC để xác định điện áp đầu ra VOUT.
- Chuyển đổi điện áp thành nhiệt độ.
Các dạng ngoài thực tế
LM35 có thể được sử dụng một trong hai cấu hình mạch như hình bên dưới. Cả hai đều mang lại kết quả khác nhau.
Ứng dụng của cảm biến LM35 giao tiếp Arduino
Cảm biến nhiệt độ LM35 phù hợp cho các ứng dụng:
- Học tập nghiên cứu
- Đo nhiệt độ của một môi trường cụ thể
- Giám sát nhiệt độ trong hệ thống HVAC
- Kiểm tra nhiệt độ pin
1.3 LCD1602 mạch Arduino Uno R3
Giới thiệu
Thông số kỹ thuật
- Điện áp hoạt động là 5 V.
- Kích thước: 80 x 36 x 12.5 mm
- Chữ đen, nền xanh lá
- Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.
- Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
- Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.
- Có thể được điều khiển với 6 dây tín hiệu
- Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật, xem thêm HD44780 datasheet để biết thêm chi tiết.
Sơ đồ chân LCD
Số chân | Ký hiệu chân | Mô tả chân |
Vss | Cấp điện 0v | |
Vcc | Cấp điện 5v | |
V0 | Chỉnh độ tương phản | |
RS | Lựa chọn thanh ghi địa chỉ hay dữ liệu | |
RW | Lựa chọn thanh ghi Đọc hay Viết | |
EN | Cho phép xuất dữ liệu | |
D0 | Đường truyền dữ liệu 0 | |
D1 | Đường truyền dữ liệu 1 | |
D2 | Đường truyền dữ liệu 2 | |
10 | D3 | Đường truyền dữ liệu 3 |
11 | D4 | Đường truyền dữ liệu 4 |
12 | D5 | Đường truyền dữ liệu 5 |
13 | D6 | Đường truyền dữ liệu 6 |
14 | D7 | Đường truyền dữ liệu 7 |
15 | Chân dương đèn màn hình | |
16 | Chân âm đèn màn hình |
- Các chân cấp nguồn: Chân số 1 là chân nối mass (0V), chân thứ 2 là Vdd nối với nguồn+5V. Chân thứ 3 dùng để chỉnh contrast thường nối với biến trở.
- Các chân điều khiển: Chân số 4 là chân RS dùng để điều khiển lựa chọn thanh ghi. ChânR/W dùng để điều khiển quá trình đọc và ghi. Chân E là chân cho phép dạng xung chốt.
- Các chân dữ liệu D7÷D0: Chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD.
Địa chỉ ba vùng nhớ
- Bộ điều khiển LCD có ba vùng nhớ nội, mỗi vùng có chức năng riêng. Bộ điều khiển phải khởi động trước khi truy cập bất kỳ vùng nhớ nào. a. Bộ nhớ DDRAM
- Bộ nhớ chứa dữ liệu để hiển thị (Display Data RAM: DDRAM) lưu trữ những mã ký tự để hiển thị lên màn hình. Mã ký tự lưu trữ trong vùng DDRAM sẽ tham chiếu với từng bitmap kí tự được lưu trữ trong CGROM đã được định nghĩa trước hoặc đặt trong vùng do người sử dụng định nghĩa. b. Bộ phát kí tự ROM – CGROM
- Bộ phát kí tự ROM (Character Generator ROM: CGROM) chứa các kiểu bitmap cho mỗi kí tự được định nghĩa trước mà LCD có thể hiển thị, như được trình bày bảng mã ASCII. Mã kí tự lưu trong DDRAM cho mỗi vùng kí tự sẽ được tham chiếu đến một vị trí trong CGROM. Ví dụ: mã kí tự số hex 0x53 lưu trong DDRAM được chuyển sang dạng nhị phân 4 bit cao là DB[7:4] = “0101” và 4 bit thấp là DB[3:0] = “0011” chính là kí tự chữ ‘S’ sẽ hiển thị trên màn hình LCD. c. Bộ phát kí tự RAM – CGRAM
- Bộ phát kí tự RAM (Character Generator RAM: CG RAM) cung cấp vùng nhớ để tạo ra 8 kí tự tùy ý. Mỗi kí tự gồm 5 cột và 8 hàng.
Các lệnh điều khiển của LCD
-
Lệnh thiết lập chức năng giao tiếp “Function set”:
- Bit DL (data length) = 1 thì cho phép giao tiếp 8 đường data D7 ÷ D0, nếu bằng 0 thì cho phép giao tiếp 4 đường D7 ÷ D4.
- Bit N (number of line) = 1 thì cho phép hiển thị 2 hàng, nếu bằng 0 thì cho phép hiển thị 1 hàng.
- Bit F (font) = 1 thì cho phép hiển thị với ma trận 5×8, nếu bằng 0 thì cho phép hiển thị với ma trận 5×11.
- Các bit cao còn lại là hằng số không đổi.
-
Lệnh xoá màn hình “Clear Display”: khi thực hiện lệnh này thì LCD sẽ bị xoá và bộ đếm địa chỉ được xoá về 0.
- Lệnh di chuyển con trỏ về đầu màn hình “Cursor Home”: khi thực hiện lệnh này thì bộ đếm địa chỉ được xoá về 0, phần hiển thị trở về vị trí gốc đã bị dịch trước đó. Nội dung bộ nhớ RAM hiển thị DDRAM không bị thay đổi.
-
Lệnh thiết lập lối vào “Entry mode set”: lệnh này dùng để thiết lập lối vào cho các kí tự hiển thị,
- Bit I/D = 1 thì con trỏ tự động tăng lên 1 mỗi khi có 1 byte dữ liệu ghi vào bộ hiển thị, khi I/D = 0 thì con trỏ sẽ tự động giảm đi 1 mỗi khi có 1 byte dữ liệu ghi vào bộ hiển thị.
- Bit S = 1 thì cho phép dịch chuyển dữ liệu mỗi khi nhận 1 byte hiển thị.
-
Lệnh điều khiển con trỏ hiển thị “Display Control”:
- Bit D: cho phép LCD hiển thị thì D = 1, không cho hiển thị thì bit D = 0.
- Bit C: cho phép con trỏ hiển thị thì C= 1, không cho hiển thị con trỏ thì bit C = 0.
- Bit B: cho phép con trỏ nhấp nháy thì B= 1, không cho con trỏ nhấp nháy thì bit B = 0.
- Với các bit như trên thì để hiển thị phải cho D = 1, 2 bit còn lại thì tùy chọn, trong thư viện thì cho 2 bit đều bằng 0, không cho phép mở con trỏ và nhấp nháy, nếu bạn không thích thì hiệu chỉnh lại.
-
Lệnh di chuyển con trỏ “Cursor /Display Shift”: lệnh này dùng để điều khiển di chuyển con trỏ hiển thị dịch chuyển
- Bit SC: SC = 1 cho phép dịch chuyển, SC = 0 thì không cho phép.
- Bit RL xác định hướng dịch chuyển: RL = 1 thì dịch phải, RL = 0 thì dịch trái. Nội dung bộ nhớ DDRAM vẫn không đổi.
- Vậy khi cho phép dịch thì có 2 tùy chọn: dịch trái và dịch phải.
- Lệnh thiết lập địa chỉ cho bộ nhớ RAM phát kí tự “Set CGRAM Addr”: lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM phát kí tự.
- Lệnh thiết lập địa chỉ cho bộ nhớ RAM hiển thị “Set DDRAM Addr”: lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM lưu trữ các dữ liệu hiển thị.
- Hai lệnh cuối cùng là lệnh đọc và lệnh ghi dữ liệu LCD.
Bảng mã ASCII sử dụng cho LCD
Bảng địa chỉ cho LCD
Temperature LM35 Sensor on LCD with Arduino
- Connect the LM35 temperature sensor to the Arduino board:
- Connect the VCC pin of the LM35 to the 5V pin on the Arduino board.
- Connect the GND pin of the LM35 to the GND pin on the Arduino board.
- Connect the Output pin of the LM35 to the A0 pin on the Arduino board.
- Connect the 16×2 LCD display to the Arduino board:
- Connect the VCC pin of the LCD to the 5V pin on the Arduino board.
- Connect the GND pin of the LCD to the GND pin on the Arduino board.
- Connect the RS (register select) pin of the LCD to digital pin 12 on the Arduino board.
- Connect the RW (read/write) pin of the LCD to the GND pin on the Arduino board.
- Connect the E (enable) pin of the LCD to digital pin 11 on the Arduino board.
- Connect the D4 pin of the LCD to digital pin 5 on the Arduino board.
- Connect the D5 pin of the LCD to digital pin 4 on the Arduino board.
- Connect the D6 pin of the LCD to digital pin 3 on the Arduino board.
- Connect the D7 pin of the LCD to digital pin 2 on the Arduino board.
- Include the LiquidCrystal library in the code.
#include
- Define the LCD pins and create an instance of the LiquidCrystal class.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // (RS, E, D4, D5, D6, D7)
-
Initialize the LCD in the
setup()
function.
void setup() { lcd.begin(16, 2); // initialize the LCD with 16 columns and 2 rows Serial.begin(9600); }
-
Read the temperature from the LM35 in the
loop()
function.
void loop() { int adcVal = analogRead(A0); // read the ADC value from the LM35 float milliVolt = adcVal * (5000.0 / 1024.0); // convert the ADC value to voltage in millivolt float tempC = milliVolt / 10; // convert the voltage to temperature in Celsius // convert the temperature to Fahrenheit float tempF = (tempC * 9 / 5) + 32; // print the temperature to the Serial Monitor Serial.print("Temperature (°C): "); Serial.println(tempC); Serial.print("Temperature (°F): "); Serial.println(tempF);
- Display the temperature on the LCD.
// display the temperature on the first line of the LCD lcd.setCursor(0, 0); // set the cursor position to the first line, first column lcd.print("Temperature: "); lcd.print(tempC); lcd.print("°C");
// display the temperature on the LCD in Fahrenheit lcd.setCursor(0, 1); lcd.print(“Temp(F): “); lcd.print(tempF); lcd.print(“°F”); delay(500); // wait for half a second }
Schematic
Make connections according to the circuit diagram given below.
Wiring / Connections
Arduino | LM35 SENSOR | LCD |
5V | VCC | VCC |
GND | GND | GND |
A4 | SDA | |
A5 | SCL |
Installing Arduino IDE
First, you need to install Arduino IDE Software from its official website Arduino. Here is a simple step-by-step guide on “How to install Arduino IDE“.
Installing Libraries
Before you start uploading a code, download and unzip the following libraries at /Progam Files(x86)/Arduino/Libraries (default), in order to use the sensor with the Arduino board. Here is a simple step-by-step guide on “How to Add Libraries in Arduino IDE“.
Code
Now copy the following code and upload it to Arduino IDE Software.
#include// LCD I2C library #define ADC_VREF_mV 5000.0 // in millivolt #define ADC_RESOLUTION 1024.0 #define PIN_LM35 A0 // pin connected to LM35 temperature sensor LiquidCrystal_I2C lcd(0x3F, 16, 2); // LCD I2C address 0x27, 16 column and 2 rows void setup() { Serial.begin(9600); lcd.init(); // initialize the lcd lcd.backlight(); // open the backlight } void loop() { int adcVal = analogRead(PIN_LM35); // convert the ADC value to voltage in millivolt float milliVolt = adcVal * (ADC_VREF_mV / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = milliVolt / 10; float tempF = tempC * 9 / 5 + 32; // convert Celsius to Fahrenheit lcd.clear(); lcd.setCursor(0, 0); // start to print at the first row lcd.print(tempC); // print the temperature in Celsius lcd.print("°C"); lcd.setCursor(0, 1); // start to print at the second row lcd.print(tempF); // print the temperature in Fahrenheit lcd.print("°F"); // print the temperature to Serial Monitor Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); delay(500); }
Working Explanation
The
setup()
function initializes the serial communication at 9600 baud rate, and the LCD display. The
lcd.init()
function initializes the LCD, and the
lcd.backlight()
function opens the backlight of the LCD display.
The
loop()
function reads the ADC value from the LM35 temperature sensor, converts the ADC value to voltage in millivolt, converts the voltage to the temperature in Celsius, and converts the temperature in Celsius to Fahrenheit. The temperature in Celsius and Fahrenheit are displayed on the LCD display and printed to the Serial Monitor. The
lcd.clear()
function is used to clear the display,
lcd.setCursor(0, 0)
sets the cursor position to the first row, and
lcd.print()
function is used to print the temperature in Celsius or Fahrenheit. The
Serial.print()
function is used to print the temperature to the Serial Monitor. The
delay(500)
function waits for 500 milliseconds before repeating the loop.
LM35 Temperature Sensor Code
By clicking the button in the top right corner of the code field, you can copy the code. Copy and paste it into Arduino IDE.
/*** www.arduinopoint.com ***/ /*** Arduino LM35 Temperature Sensor Project***/ // Define to which pin of the Arduino the output of the LM35 is connected: #define sensorPin A0 void setup() { // Begin serial communication at a baud rate of 9600: Serial.begin(9600); } void loop() { // Get a reading from the temperature sensor: int reading = analogRead(sensorPin); // Convert the reading into voltage: //Convert digital data into analog by multiplying by 5000 and dividing by 1024 float voltage = reading * (5000 / 1024.0); // Convert the voltage into the temperature in degree Celsius: float temperatureC = voltage / 10; float temperatureF=(temperatureC*1.8)+32; // Converting to Fahrenheit // Print the temperature in Celsius into the Serial Monitor: Serial.print(“Temperature in Celsius = “); Serial.print(temperatureC); Serial.print(” \xC2\xB0″); // shows degree symbol Serial.println(“C”); // Print the temperature in Celsius into the Serial Monitor: Serial.print(“Temperature in Fahrenheit = “); Serial.print(temperatureF); Serial.print(” \xC2\xB0″); // shows degree symbol Serial.println(“F”); Serial.print(“\n”); delay(1000); // wait a second between readings }
You should see the following output in the Serial Monitor:
LM35 Temperature Calculation
When you use a 5V Arduino and directly connect the sensor into an analog pin, you can use the following formula to convert the 10-bit analog reading to a temperature:Voltage at pin in milliVolts = (reading from ADC) * (5000/1024)This formula converts the ADC number 0-1023 to 0-5000mV (= 5V).
When you use a 3.3V Arduino, you need to use the following formula:Voltage at pin in milliVolts = (reading from ADC) * (3300/1024)This formula converts the ADC number 0-1023 to 0-3300mV (= 3.3V)
Convert the millivolts into the temperature in degrees Celsius and Fahrenheit:Centigrade temperature = (analog voltage in mV) / 10Fahrenheit temperature=[(Centigrade temperature )*1.8]+32
Arduino Temperature Sensor LM35 with LCD Circuit Diagram
Arduino Temperature Sensor LM35 with LCD Circuit Diagram
Most LCDs include a series resistor for the LED backlight. It should be connected to pin 15 on the back of the LCD (Anode). If your display doesn’t come with one, you’ll need to add one between 5 V and pin 15. A 220 resistor should be fine, but it may make your display a little dim. Check the datasheet for the maximum current rating of the backlight and use that to choose an appropriate resistor value.You need to adjust the contrast of the LCD display. Turning the 10 kΩ potentiometer clockwise or counterclockwise accomplishes this.
Temperature Sensor LM35 Specifications
Supply Voltage | +35V to −0.2V |
Output Voltage | +6V to −1.0V |
Output Current | 10mA |
LM35 range temperature | −55°C to 150°C |
Accuracy |
0.5°C (at 25°C)
±1°C (at −55°C to 150°C) |
Cost | Check Price |
For more information, you can check out the LM35 Datasheet below:
Video Tutorial
We are considering to make the video tutorials. If you think the video tutorials are essential, please subscribe to our YouTube channel to give us motivation for making the videos.
In this project, we’ll show you how to lm35 interfacing with Arduino and how to program it. Once we successfully lm35 interface with Arduino, We’ll use an Arduino and an LCD 16×2 module to construct a temperature display. The display constantly monitors the temperature surrounding the LM35 measuring field and shows it on the LCD module display in degrees Celsius and Fahrenheit. So, let’s get started on the project!
LM35 Sensor is an analog temperature sensor having an analog output voltage proportional to the temperature. It shows the output voltage in degrees Centigrade (Celsius). No external calibration circuit is required.
Sơ đồ đấu nối
Arduino Uno | Cảm biến nhiệt độ LM35 |
VCC | +Vs (4 – 20V) |
GND | GND |
A0 | VOUT |
Các linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng | Shopee |
Arduino Uno R3 | Mua ngay | |
Dây cáp nạp | Mua ngay | |
Cảm biến nhiệt LM35 | Mua ngay | |
Breadboard (Bo test) | Mua ngay | |
Dây cắm (Đực – Đực) | Mua ngay |
Bạn sẽ học được gì
- Có kiến thức cơ bản về Robotics
- Chế tạo Robot dò đường thông minh
- Đánh thức nhà khoa học bên trong bạn
- Tìm hiểu thêm về Robotics, các thuật toán Robot tự động
- Kiến thức nền tảng để chế tạo các máy móc tự động phục vụ đời sống sinh hoạt, lao động sản xuất
- Kiến thức để chế tạo sản phẩm, tham gia các cuộc thi khoa học công nghệ trong nước và quốc tế
Chương trình lấy giá trị nhiệt độ từ LM35 hiển thị lên LCD
Bằng cách cấp vào chân 1 của cảm biến LM35 một hiệu điện thế 5V, chân 3 nối đất, lấy hiệu điện thế ở chân 2 bằng cách lấy tín hiệu tại chân analog (ví dụ chân A0) trên Arduino. Từ đó, ta sẽ có được nhiệt độ ở đơn vị °C bằng công thức:
float tempCelsius = (5.0*analogRead(A0)*100.0/1024.0);
Nếu muốn đổi từ °C sang °F thì áp dụng công thức:
float tempFahrenheit = (tempCelsius * 1.8)+32;
Sau đó, chúng ta sử dụng hàm
print()
để in giá trị nhiệt độ lên LCD.
#includeLiquidCrystal lcd(12, 11, 5, 4, 3, 2); int lm35 = A0;//chân analog kết nối LM35 với Arduino void setup() { lcd.begin(16, 2); } void loop() { float tempCelsius = (5.0*analogRead(lm35)*100.0/1024.0);//độ C float tempFahrenheit =(tempCelsius * 1.8)+32;//độ F lcd.setCursor(0, 0); lcd.print("TEMP "); lcd.print(char(223)); lcd.print("C:"); lcd.print(tempCelsius); lcd.print(char(223)); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("TEMP "); lcd.print(char(223)); lcd.print("F:"); lcd.print(tempFahrenheit); lcd.print(char(223)); lcd.print("F"); delay(1000); lcd.clear(); }
Kết quả
Keywords searched by users: lm35 lcd arduino code
Categories: Phổ biến 100 Lm35 Lcd Arduino Code
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/