Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:15
Cảm biến nhiệt độ (LM35) Giao diện với ATmega32 và Màn hình LCD
Bước 1:
Trong dự án này, Bạn sẽ học Cách giao diện Cảm biến nhiệt độ (LM35) với Vi điều khiển AVR ATmega32 và màn hình LCD.
Trước khi có Dự án này, bạn phải Tìm hiểu về các bài viết sau
cách thêm thư viện LCD trong avr studio | hướng dẫn vi điều khiển avr
giới thiệu về ADC trong Vi điều khiển AVR | cho những người mới bắt đầu
Cảm biến nhiệt độ (LM35) là một cảm biến nhiệt độ phổ biến và chi phí thấp. Vcc có thể từ 4V đến 20V theo quy định của biểu dữ liệu. Để sử dụng cảm biến, chỉ cần kết nối Vcc với 5V, GND với Ground và Out với một trong các ADC (kênh chuyển đổi tương tự sang kỹ thuật số).
Đầu ra là 10MilliVolts trên một độ C. Vì vậy, nếu đầu ra là 310 mV thì nhiệt độ là 31 độ C. Để thực hiện dự án này, bạn nên làm quen với ADC của AVR và cũng sử dụng màn hình LCD Vì vậy, độ phân giải của AVRs ADC là 10bit và đối với điện áp tham chiếu, bạn đang sử dụng 5V vì vậy độ phân giải về điện áp là
5/1024 = 5,1mV xấp xỉ
Vì vậy, nếu kết quả của ADC tương ứng với 5.1mV, tức là nếu đọc ADC là
10 x 5,1mV = 51mV
Bạn có thể đọc giá trị của bất kỳ kênh ADC nào bằng cách sử dụng hàm adc_result (ch);
Trong đó ch là số kênh (0-5) trong trường hợp của ATmega8. Nếu bạn đã kết nối đầu ra của LM35 với kênh ADC 0 thì hãy gọi
adc_result0 = adc_read (0);
điều này sẽ lưu trữ số đọc ADC hiện tại trong biến adc_value. Kiểu dữ liệu của adc_value phải là int vì giá trị ADC có thể nằm trong khoảng từ 0-1023.
Như chúng ta đã thấy kết quả ADC có hệ số là 5,1mV và đối với 1 độ C, đầu ra của LM35 là 10mV, Vì vậy, 2 đơn vị ADC = 1 độ.
Vì vậy, để có được nhiệt độ, chúng tôi chia adc_value cho hai
nhiệt độ = adc_result0 / 2;
Cuối cùng bộ vi điều khiển sẽ hiển thị nhiệt độ theo độ C. trên màn hình LCD chữ và số 16X2.
Bước 2: Sơ đồ mạch
Bước 3: Chương trình
#ifndef F_CPU
#define F_CPU 1600000UL
#endif
#bao gồm
#bao gồm
#include "LCD / lcd.h"
void adc_init ()
{
// AREF = AVcc
ADMUX = (1 <
// Kích hoạt ADC và tính toán trước của 128
ADCSRA = (1 <
}
// đọc giá trị adc
uint16_t adc_read (uint8_t ch)
{
// chọn kênh tương ứng 0 ~ 7
ch & = 0b00000111; // Phép toán AND với 7
ADMUX = (ADMUX & 0xF8) | ch;
// bắt đầu một chuyển đổi
// ghi '1' vào ADSC
ADCSRA | = (1 <
// đợi quá trình chuyển đổi hoàn tất
// ADSC lại trở thành '0'
trong khi (ADCSRA & (1 <
trở lại (ADC);
}
int main ()
{
DDRB = 0xff;
uint16_t adc_result0;
int tạm thời;
int xa;
đệm char [10];
// khởi tạo adc và lcd
adc_init ();
lcd_init (LCD_DISP_ON_CURSOR); //CON TRỎ
lcd_clrscr ();
lcd_gotoxy (0, 0);
_delay_ms (50);
trong khi (1)
{
adc_result0 = adc_read (0); // đọc giá trị adc tại PA0
temp = adc_result0 / 2.01; // tìm nhiệt độ
// lcd_gotoxy (0, 0);
// lcd_puts ("Adc =");
// itoa (adc_result0, buffer, 10); // hiển thị giá trị ADC
// lcd_puts (bộ đệm);
lcd_gotoxy (0, 0);
itoa (tạm thời, bộ đệm, 10);
lcd_puts ("Nhiệt độ ="); // nhiệt độ hiển thị
lcd_puts (bộ đệm);
lcd_gotoxy (7, 0);
lcd_puts ("C");
xa = (1,8 * nhiệt độ) +32;
lcd_gotoxy (9, 0);
itoa (xa, đệm, 10);
lcd_puts (bộ đệm);
lcd_gotoxy (12, 0);
lcd_puts ("F");
_delay_ms (1000);
if (temp> = 30)
{lcd_clrscr ();
lcd_home ();
lcd_gotoxy (0, 1);
lcd_puts ("QUẠT BẬT");
PORTB = (1 <
}
if (temp <= 30)
{
lcd_clrscr ();
lcd_home ();
lcd_gotoxy (7, 1);
lcd_puts ("TẮT QUẠT");
PORTB = (0 <
}
}
}
Bước 4: Giải thích mã
Tôi hy vọng bạn Biết bạn sẽ biết Cách bật ADC và Cách giao diện LCD với Vi điều khiển Avr trong đoạn mã này khi nhiệt độ cao hơn 30 độ thì quạt bật và bạn có thể thấy trên màn hình LED BẬT QUẠT và khi Nhiệt độ thấp hơn 30 thì quạt tắt và bạn có thể thấy QUẠT TẮT
Bước 5: Bạn có thể tải xuống toàn bộ dự án
Bấm vào đây
Đề xuất:
Giao diện cảm biến nhiệt độ LM35 với Arduino: 4 bước
Cảm biến nhiệt độ LM35 giao diện với Arduino: Nhiệt kế là thiết bị hữu ích được sử dụng trong thời gian dài để đo nhiệt độ. Trong dự án này, chúng tôi đã tạo ra một nhiệt kế kỹ thuật số dựa trên Arduino để hiển thị nhiệt độ môi trường xung quanh hiện tại và sự thay đổi nhiệt độ trên màn hình LCD. Nó có thể được depl
Bắt đầu với giao diện cảm biến I2C ?? - Giao diện MMA8451 của bạn bằng ESP32s: 8 bước
Bắt đầu với giao diện cảm biến I2C ?? - Giao diện MMA8451 của bạn bằng cách sử dụng ESP32s: Trong hướng dẫn này, bạn sẽ tìm hiểu tất cả về Cách khởi động, kết nối và nhận thiết bị I2C (Gia tốc kế) hoạt động với bộ điều khiển (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Cảm biến giao diện, SPS-30, Cảm biến vật chất dạng hạt với Arduino Duemilanove sử dụng chế độ I2C: 5 bước
Cảm biến giao diện, SPS-30, Cảm biến vật chất hạt với Arduino Duemilanove Sử dụng chế độ I2C: Khi tôi đang xem xét các cảm biến giao tiếp SPS30, tôi nhận ra rằng hầu hết các nguồn đều dành cho Raspberry Pi nhưng không nhiều cho Arduino. Tôi dành một ít thời gian để làm cho cảm biến hoạt động với Arduino và tôi quyết định đăng trải nghiệm của mình ở đây để nó có thể
Giao diện Arduino với cảm biến siêu âm và cảm biến nhiệt độ không tiếp xúc: 8 bước
Giao diện Arduino với cảm biến siêu âm và cảm biến nhiệt độ không tiếp xúc: Ngày nay, các nhà sản xuất, nhà phát triển đang ưa thích Arduino để phát triển nhanh chóng việc tạo mẫu của các dự án. Arduino là một nền tảng điện tử mã nguồn mở dựa trên phần cứng và phần mềm dễ sử dụng. Arduino có cộng đồng người dùng rất tốt. Trong chương trình này
CẢM BIẾN SUHU DENGAN LCD DAN LED (Tạo cảm biến nhiệt độ với LCD và LED): 6 bước (có hình ảnh)
CẢM BIẾN SUHU DENGAN LCD DAN LED (Chế tạo cảm biến nhiệt độ với LCD và LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda