Cảm biến ánh sángTSL2561 TSL2561 là bộ chuyển đổi cường độ ánh sáng sang tín hiệu dạng số.. TSL2561 sử dụng 2 bộ chuyển đổi tín hiệu sang số ADC 16 bit độ phân giải 20 bit hiệu dụng để c
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI
BÁO CÁO TUẦN 3
KỸ THUẬT CẢM BIẾN CẢM BIẾN ĐO ÁNH SÁNG VÀ CẢM BIẾN ĐO ÁP SUẤT
Sinh viên thực hiện
Nguyễn Văn Nam : 21020931 Đào Tuấn Linh : 21020924
Giảng viên hướng dẫn
Thầy Trần Quốc Tuấn
Hà Nội - 2023
Trang 2I Cảm biến ánh sáng(TSL2561)
TSL2561 là bộ chuyển đổi cường độ ánh sáng sang tín hiệu dạng số Dữ liệu có thể được trích xuất thông qua giao thức I2C
Mỗi bộ sẽ bao gồm một điốt quang dải rộng (dành cho ánh sáng nhìn thấy và ánh sáng hồng ngoại) và một điốt dành riêng cho ánh sáng hồng ngoại được tích hợp trên duy nhất một IC với công nghệ CMOS TSL2561 cho dải đáp ứng rộng đối với ánh sáng, gần với mắt người
IC cho phép đo ánh sáng ở cường độ bé cũng như cường độ lớn TSL2561 sử dụng 2
bộ chuyển đổi tín hiệu sang số ADC 16 bit (độ phân giải 20 bit hiệu dụng) để chuyển đổi tín hiệu dòng điện từ 2 điốt quang sang tín hiệu số, phản ảnh cường độ ánh sáng chiếu vào
Dữ liệu từ cảm biến có thể được sử dụng để tính cường độ sáng (tính bằng lux) dựa trên công thức chuyển đổi gần với đáp ứng của mắt người
1.1 Nguyên lý làm việc và sơ đồ cấu tạo
Điốt quang hay photodiode có cấu trúc lớp hoạt động là tiếp giáp p-n, loại mới hơn thì là cấu trúc PIN Khi photon có năng lượng đủ lớn xâm nhập lớp hoạt động này sẽ
bị hấp thụ, và theo hiệu ứng quang điện tạo ra cặp điện tử-lỗ trống Nếu hấp thụ xảy
ra trong vùng nghèo của tiếp giáp hoặc vùng khuếch tán, điện trường của vùng nghèo làm các hạt mang điện dịch chuyển, lỗ trống về anode còn điện tử về cathode, làm
phát sinh dòng điện
Thông thường thì điốt có dòng điện dò, ở photodiode gọi là dòng tối, là dòng khi không có photon chiếu vào Dòng điện qua photodiode là tổng của dòng quang điện
và dòng dò Để tăng độ nhạy cảm biến thì công nghệ chế tạo phải hạn chế được dòng
rò
Trang 3Photodiode quang điện (Photovoltaic mode) trong cảm biến TSL2561 làm việc không đặt thiên áp (bias), dòng quang điện được ánh sáng tạo ra và có thể dùng làm nguồn cấp điện
1.2 Sơ đồ khối và chức năng
Sơ đồ khối chức năng của cảm biến TSL2561 như hình dưới đây:
1.3 Ghép nối ESP8266 với mô-đun đo cường độ sáng TSL2561
GND
+3.3V
D14 D15
Trang 4Chương trình phần mềm
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_TSL2561_U.h>
Adafruit_TSL2561_Unified tsl =
Adafruit_TSL2561_Unified ( TSL2561_ADDR_FLOAT, 12345 ) ;
void displaySensorDetails ( void )
- {
- sensor_t sensor;
tsl getSensor ( &sensor )
Serial println ( " -" ) ;
Serial print ( "Sensor: " )
Serial println sensor name ( )
Serial print ( "Driver Ver: " ) ; Serial println sensor version ( ) Serial print ( "Unique ID: " ) ; Serial println sensor sensor_id ( ) Serial print ( "Max Value: " ) ; Serial print sensor max_value ( ) Serial println ( " lux" ) ;
Serial print ( "Min Value: " ) ; Serial print sensor min_value ( ) Serial println ( " lux" ) ;
Serial print ( "Resolution: " ) ; Serial print sensor resolution ( ) Serial println ( " lux" ) ;
Serial println ( " -" ) ;
Serial println ( ) "" ;
//delay(500);
}
void configureSensor ( void )
{
/* You can also manually set the gain or enable auto-gain support
*/
// tsl.setGain(TSL2561_GAIN_1X);
/* No gain use in
bright light to avoid sensor saturation */
// tsl.setGain(TSL2561_GAIN_16X);
/* 16x gain use in low
light to boost sensitivity */
tsl enableAutoRange ( true ) /* Auto-gain switches
automatically between 1x and 16x */
-/* Changing
the integration time gives you better sensor resolution (402ms = 16-bit data) */
tsl setIntegrationTime ( TSL2561_INTEGRATIONTIME_13MS ) /* fast but low resolution */
Trang 5-// tsl.setIntegrationTime(TSL2561_INTEGRATIONTIME_402MS); /* 16-bit data but slowest conversions */
-/* Update these values depending on what you've set
above! */
Serial println ( " -" ) ;
Serial print ( "Gain: " ) ; Serial println ( "Auto" ) ;
Serial print ( "Timing: " ) ; Serial println ( "13 ms" )
Serial println ( " -" ) ;
}
#define LED_PIN D7
void setup () {
- // put your setup code here, to run once:
pinMode ( LED_PIN, OUTPUT )
Serial begin ( 9600 )
Serial println ( "Light Sensor Test" )
Serial println ( ) "" ;
/* Initialise the sensor */
//use tsl.begin() to default to Wire,
//tsl.begin(&Wire2) directs api to use Wire2, etc.
if ( ! tsl begin ())
{
/* There was a problem detecting the TSL2561 check your connections */
Serial print ( "Ooops, no TSL2561 detected Check your wiring or I2C ADDR!" )
while ( ) 1 ;
}
/* Display some basic information on this sensor */
displaySensorDetails () ;
/* Setup the sensor gain and integration time */
configureSensor () ;
/* We're ready to go! */
Serial println ( ) "" ;
}
void loop () {
- // put your main code here, to run repeatedly:
- for ( int i = ; i <= 0 130 ; i+= 15 )
- - {
- - analogWrite ( LED_PIN, i ; )
sensors_event_t event;
tsl getEvent ( &event ; )
Trang 6if ( event light )
{
Serial print ( "event.light " )
Serial print event light ( ) // Serial.println(" lux");
Serial print ( " i " )
Serial println ( ) i ;
//Serial.print(event.light);// Serial.println(" lux");
//Serial.println(i);
1.4 Kết quả đo
Điều kiện đo có cả ánh sáng từ nguồn sáng khác trong phòng
- Trường hợp 1: Sử dụng tay che nguồn sáng bên ngoài đi
● Đường nằm dưới là tập các giá trị mức độ sáng được ghi vào đèn LED
● Đường nằm trên là cường độ ánh sáng đo được ứng với mỗi độ sáng của đèn LED
Trang 7- Trường hợp 2: Môi trường có cả nguồn sáng từ đèn LED và nguồn sáng khác trong phòng
● Đường nằm dưới là tập các giá trị mức độ sáng được ghi vào đèn LED
● Đường nằm trên là cường độ ánh sáng đo được ứng với mỗi độ sáng của đèn LED
Trang 8Nhận xét:
- Trong cả hai trường hợp, phần đỉnh và đáy của đồ thị đều có góc nghiêng khác đi bởi vì do mức thay đổi của giá trị mức sáng đèn LED mỗi vòng lặp cuối trước khi chuyển từ tăng dần sang giảm dần và ngược lại sẽ vượt quá ngưỡng cho phép
- Sự tăng lên (giảm đi) của ánh sáng đèn tuyến tính với sự tăng lên (giảm đi) của cường độ ánh sáng cảm biến đo được
- Trong hai trường hợp thì kết quả đo cường độ sáng từ TH2 lớn hơn vì TH2
Trang 9nguồn sáng từ môi trường ngoài ảnh hưởng tới kết quả đo nhiều hơn
- Giá trị mức sáng nhỏ nhất mà cảm biến nhận được khi đo: TH1: Sử dụng tay che nguồn sáng bên ngoài đi (=14 lux) TH2: Môi trường có cả nguồn sáng
từ đèn LED và nguồn sáng khác trong phòng (135 lux)
- Giá trị mức sáng lớn nhất mà cảm biến nhận được khi đo: TH1: Sử dụng tay che nguồn sáng bên ngoài đi (217 lux); TH2 với giá trị cường độ là (337 lux) Kết quả do như vậy là do cảm biến nhận được cả ánh sáng từ led và lượng lớn nguồn sáng ngoài
- Độ phân giải là 1 lux
II Cảm biến áp suất(BMP180)
Cảm biến áp suất BMP180 là loại cảm biến đo áp suất khí quyển, với dữ liệu đầu ra dạng số với độ chính xác cao Do tiêu thụ ít năng lượng nên cảm biến này được tích hợp vào điện thoại thông minh, máy định vị GPS, cũng như các thiết bị đo ngoài trời Cảm biến này có nhiễu theo độ cao rất nhỏ (khoảng 0,25m) và tốc độ chuyển đổi cao nên hiệu quả sử dụng rất tốt Bên cạnh đó kết nối dễ dàng với vi điều khiển thông qua giao tiếp I2C
Cảm biến BMP180 được sản xuất dựa trên công nghệ điện trở áp điện cho độ bền EMC (khả năng tương thích điện từ), độ chính xác và tuyến tính cao cũng như sự
ổn định lâu dài
Cảm biến BMP180 được thiết kế có thể kết nối trực tiếp với một bộ vi điều khiển thông qua giao tiếp I2C Giá trị áp suất và nhiệt độ đo được có thể được hiệu chuẩn lại thông qua dữ liệu hiệu chuẩn ghi trên EEPROM của cảm biến
2.1 Nguyên lí làm việc và sơ đồ cấu tạo
Áp suất được định nghĩa là lực tác động của chất lỏng hay khí tác động trên một đơn vị diện tích, theo công thức:
= / ( / 2)𝑃 𝐹 𝐴 𝑁 𝑚 Trong đó:
F là lực tác dụng với đơn vị là Newton (N),
A là điện tích với đơn vị là m2
Vậy P sẽ có đơn vị là N/m2 hay còn gọi là đơn vị Pascal (Pa)
Trong thực tế thì áp suất thường dùng các đơn vị áp suất là Bars (Kg/cm2), PSI (P/inch2), mm Hg, In.Hg…
Nguyên Lý Hoạt Động
Các điều kiện khác nhau, phạm vi đo, và vật liệu sử dụng trong cấu trúc cảm
Trang 10biến sẽ có nhiều kiểu thiết kế cảm biến khác nhau, thường thì chúng ta có thể chuyển đổi tín hiệu áp suất sang các dạng trung gian, chẳng hạn như sự dịch chuyển của màng áp sẽ được chuyển đổi thành tín hiệu dạng áp hay dòng, và với một diện tích mặt màng áp xác định có thể tính ra áp lực
Cấu tạo bên trong của cảm biến đo áp suất
Có ba loại cảm biến áp suất phổ biến nhất là dạng cầu (strain gage based), biến dung (variable capacitance), và áp biến (piezoelectric) Trong đó cảm biến áp suất BMP180 thuộc dạng áp biến Áp biến là một loại cảm biến điện tử có thể đo áp suất Nguyên lý hoạt động của áp biến dựa trên sự thay đổi điện trở của một điện trở nhạy cảm áp suất khi có áp suất tác dụng lên nó
Trong trường hợp của cảm biến áp suất BMP180, điện trở nhạy cảm áp suất là một điện trở màng mỏng được làm bằng chất bán dẫn Khi áp suất tác dụng lên điện trở này, điện trở của nó sẽ thay đổi Sự thay đổi điện trở này được đo bằng một mạch điện tử và được chuyển đổi thành tín hiệu điện áp Tín hiệu điện áp này sau đó được
sử dụng để tính toán giá trị áp suất
Trang 11Sơ đồ khối và chức năng
Ghép nối cảm biến với vi điều khiển thông thường theo sơ đồ sau:
BMP180 có một màng cảm biến biến dạng theo áp suất, một bộ chuyển đổi ADC (tương tự sang số), một khối điều khiển với bộ nhớ EEPROM và giao diện kết nối I2C Bộ nhớ EEPROM lưu trữ 176 bit dữ liệu dùng để hiệu chuẩn lại nhiệt độ và áp suất Sau khi xuất xưởng thì cảm biến đã được hiệu chuẩn lần đầu, sau một thời gian
sử dụng có thể gây ra sự sai số nên cảm biến cần được hiệu chuẩn lại với giá trị hiệu chuẩn mới và lưu trữ chúng trong bộ nhớ EEPROM tích hợp trong cảm biến này Các
ký hiệu UP và UT được định nghĩa như sau:
UP: Giá trị áp suất, 16 đến 19 bit
Đo các giá trị áp suất
Lưu đồ thuật toán cho việc đọc dữ liệu áp suất của cảm biến BMP180
Trang 12Bộ vi điều khiển sẽ gửi các lệnh một cách tuần tự xuống cảm biến BMP180 để bắt đầu một quy trình đo áp suất Sau khi chuyển đổi các giá trị này xong, kết quả UP có thể được đọc lên, giá trị áp suất theo đơn vị là Pa Giá trị hiệu chuẩn cũng được dùng để hiệu chuẩn lại giá trị UP, giá trị này nên đọc từ EEPROM ngay khi bắt đầu chạy chương trình của bộ vi điều khiển
Tốc độ đọc giá trị áp suất có thể đạt tới 128 mẫu/giây
Ghép nối ESP8266 với mô-đun đo áp suất khí quyển BMP180
Trang 132.2 Kết quả đo
Từ công thức tính toán độ cao dựa theo áp suất ta có công thức tính áp suất dựa theo
áp suất đo được như sau:
Do vậy, mỗi khi thay đổi độ cao thì áp suất sẽ thay đổi
- Trường hợp 1: Nhóm thực hiện việc thay đổi áp suất bằng cách đi lên các bậc cầu thang
SCL
SDA
Trang 14- Trường hợp 2: Nhóm thực hiện việc thay đổi áp suất bằng cách đi xuống các bậc cầu thang
Trang 15- Trước khi có kết quả như trên, nhóm đã tiến hành khử nhiễu qua phương pháp lọc Kalman với thời gian lấy mẫu là 10ms
- Mức thay đổi nhỏ nhất của giá trị áp suất (độ nhạy) là 0.01hPa
- Khi lên trên bậc thang thì áp suất đo được giảm, mỗi bậc áp suất giảm (0.01hPa)
- Khi xuống bậc thang thì áp suất đo được tăng, mỗi bậc đi xuống áp suất tăng (0.01hPa)