Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Lời mở đầu

Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòng
biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ em trong
suốt quá trình học tập . Trong suốt thời gian từ khi bắt đầu học tập tại trường đến nay,
em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè.
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Nguyễn Tấn Lộc đã truyền
đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học môn. Nhờ có những
lời hướng dẫn, dạy bảo của các thầy nên đề tài của em mới có thể hoàn thiện tốt đẹp.
Một lần nữa, em xin chân thành cảm ơn thầy – người đã trực tiếp giúp đỡ, quan tâm,
hướng dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua.

1
Mục Lục
Lời mở đầu.........................................................................................................1
Mô tả đề tài……………………………………………………………………..3
Nguyên vật liệu được sử dụng trong đề tài và giải thích chức năng……………3

Cách tiến hành……………………………………………………………..........5


Cách điều khiển cảm biến……………………………………………………….6
Cách tương tác C# và Arduino………………………………………………….8

2
MÔ TẢ ĐỀ TÀI

Thiết kế 1 một thiết bị đo nhiệt độ. Có thể đo được nhiệt độ môi trường và cảnh báo
nhiệt độ khi có sự thay đổi bất thường

NGUYÊN VẬT LIỆU ĐƯỢC SỬ DỤNG TRONG ĐỀ TÀI VÀ GIẢI THÍCH


CHỨC NĂNG
I. Arduino

Arduino Uno 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…).

Thông số kỹ thuật

Chip điều khiển ATmega328P


Điện áp hoạt động 5V
Điện áp đầu vào(khuyên dùng) 7-12V
Điện áp đầu vào (giới hạn) 6-20V
Số chân Digital 14 (of which 6 provide PWM output)

3
Số chân PWM Digital  6
Số chân Analog  6
Dòng điện DC trên mỗi chân I/O  20 mA
Dòng điện DC trên chân 3.3V  50 mA

II.Cảm biến nhiệt độ LM 35

LM35 là một cảm biến nhiệt độ analog

Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35.

→ Đơn vị nhiệt độ: °C.

→ Nhiệt độ thay đổi tuyến tính: 10mV/°C

Sơ đồ chân của LM35

LM35 không cần phải canh chỉnh nhiệt độ khi sử dụng.

Độ 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
LM35 có hiệu năng cao, công suất tiêu thụ là 60uA
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 độ.
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 (giống y hệt
cách đọc giá trị biến trở), bạn sẽ có được nhiệt độ (0-100ºC) bằng công thức:

float temperature = (5.0*analogRead(A0)*100.0/1024.0);

Với LM35, bạn có thể tự tạo cho mình mạch cảm biến nhiệt độ sử dụng LM35 và tự
động ngắt điện khi nhiệt độ vượt ngưỡng tối đa, đóng điện khi nhiệt độ thấp hơn
ngưỡng tối thiểu thông qua module rơ le...

LM35 thay đổi nhiệt độ nhanh và chính xác.

CÁCH TIẾN HÀNH

4
1. Cắm mạch kết nối các linh kiện vào Arduino sao cho đúng chân. (sản phẩm
demo)
2. Viết code nạp chương trình cho Arduino.
3. Thử cảm biến nhiệt độ
4. Khi test chương trình thành công thì tiến hành viết phần mềm C#.
5. Test phần mềm C# vào sản phẩm demo.
6. Khi test phần mềm C# thành công thì tiến hành làm phần cứng.
Khi hoàn thành phần cứng thì đưa phầm sản phẩm demo vào phần cứng và hoàn thiện
sản phẩm.

5
CÁCH ĐIỀU KHIỂN PHẦN CẢM BIẾN NHIỆT ĐỘ

CÁCH CODE TƯƠNG TÁC C# VÀ ARDUINO CHO FORM


Code C# Code Arduino
using System.IO.Ports; #include<LiquidCrystal.h>
;//đây là thư viện IO.Port mà tốt nhất là form nào
LiquidCrystal lcd(12,11,5,4,3,2);

6
cũng cần có int led=10;
void setup(){
Serial.begin(9600);
namespace WindowsFormsApplication2
{ pinMode(led,OUTPUT);
public partial class Form1 : Form lcd.begin(16,2);
{
public Form1() lcd.print(" Nhiet do la: ");
{ }
InitializeComponent();
serialPort1.Open();
();//đây là lệnh để mở cổng serial mà các form void loop(){
điều khiển cần có vì mỗi form có nút back có
chức năng chuyển form và đóng cổng serial int nhiet=analogRead(A0);
float nhietdo=(nhiet*500.0)/1024.0;
char state = Serial.read();
}
if(state=='1'){
private void Form1_Load(object sender, lcd.setCursor(1,1);
EventArgs e)
{ lcd.print(nhietdo);
Serial.print(nhietdo);
}
if(nhietdo>=20.00){
private void button1_Click(object sender, digitalWrite(led,HIGH);
EventArgs e)
{ }
serialPort1.WriteLine("1"); else{
//lệnh này để truyền "1" qua Arduino và tương tự
if (serialPort1.IsOpen) digitalWrite(led,LOW);
{ }
textBox1.Text =
}
serialPort1.ReadExisting();
//đọc dữ liệu cổng COM }
if (textBox1.Text != null &&
textBox1.Text != "")
//đọc thông số từ text box
{
var number =
Convert.ToDouble(textBox1.Text);
if (number >= 25.00)
panel1.BackColor = Color.Red;
else
panel1.BackColor =
Color.WhiteSmoke;
}
}
}
private void button2_Click(object sender,
EventArgs e)
{
MessageBox.Show(" Nhiet do lan do
cuoi la: " + textBox1.Text);
// đọc nhiệt độ cuối cùng đo được
textBox1.Clear();
panel1.BackColor = Color.WhiteSmoke;

7
private void panel1_Paint(object sender,
PaintEventArgs e)
{

}
}
}

You might also like