CẢM BIẾN ÁNH SÁNG SỬ DỤNG ARDUINO CẢM BIẾN ÁNH SÁNG SỬ DỤNG ARDUINO

-

Cảm biến tia nắng MAX44009

Cảm biến đổi cường độ ánh sáng MAX44009 Digital Light Sensor được sử dụng để đo cường độ ánh nắng của môi trường thiên nhiên xung quanh với độ đúng đắn và độ bình ổn cao, cảm biến trả ra giá trị cường độ ánh nắng Lux qua giao tiếp I2C, thích hợp với các vận dụng trong nông nghiệp, thông nhà minh, đo độ mạnh sáng…


*

IC chính: MAX44009 từ hãng Maxim.Điện áp sử dụng: 3.3~5VDCĐiện áp giao tiếp: TTL 3.3~5VDCTiêu thụ: ICC = 0.65µA Chuẩn giao tiếp: I2CCường độ ánh nắng đo được: 0.045~188,000 Lux (22 bit)Kích thước module: 60 x 80mm
Schematic của module:
*

Code cùng với Arduino Uno R3:

#include #define Addr 0x4A void setup() Wire.begin();// Initialise serial communication
Serial.begin(9600); Wire.begin
Transmission(Addr);Wire.write(0x02);Wire.write(0x40);Wire.end
Transmission();delay(300); void loop(){unsigned int data<2>;Wire.begin
Transmission(Addr);Wire.write(0x03);Wire.end
Transmission(); // Request 2 bytes of data
Wire.request
From(Addr, 2); // Read 2 bytes of data luminance msb, luminance lsbif (Wire.available() == 2)data<0> = Wire.read();data<1> = Wire.read(); // Convert the data lớn luxint exponent = (data<0> và 0x
F0) >> 4;int mantissa = ((data<0> & 0x0F) công dụng trên hành lang cửa số Terminal của Arduino IDE:

Ambient Light luminance :4.59 lux
Ambient Light luminance :6.12 lux
Ambient Light luminance :6.12 lux
Ambient Light luminance :36.72 lux
Ambient Light luminance :36.72 lux
Ambient Light luminance :36.72 lux
Ambient Light luminance :73.44 lux
Ambient Light luminance :73.44 lux
Ambient Light luminance :73.44 lux
Ambient Light luminance :9.95 lux
Ambient Light luminance :9.95 lux
Ambient Light luminance :12.24 lux

Cảm biến tia nắng BH1750 

Cảm biến chuyển cường độ ánh sáng Lux BH1750 được áp dụng để đo cường độ ánh sáng theo đơn vị chức năng lux, cảm biến có ADC nội và cỗ tiền xử lý bắt buộc giá trị được trả ra là quý giá trực tiếp cường độ ánh sáng lux mà không hẳn qua bất kỳ xử lý hay đo lường nào thông qua giao tiếp I2C .

Bạn đang xem: Arduino cảm biến ánh sáng



*

*

Một số ví dụ như về độ rọi của ánh sáng:

Vào trời tối : 0.001 – 0.02 LuxÁnh trăng : 0.02 – 0.3 lux
Trời các mây trong đơn vị : 5 – 50 lux
Trời các mây ngoại trừ trời : 50 – 500 lux
Trời nắng trong bên : 100 – 1000 luxÁnh sáng cần thiết để đọc sách: 50 – 60 lux

Kết nối với Arduino


Code:

#include #include int BH1750address = 0x23; //i2c address byte buff<2>;void setup() Wire.begin(); Serial.begin(57600);void loop(){ int i; uint16_t val=0; BH1750_Init(BH1750address); delay(200); if(2==BH1750_Read(BH1750address)) val=((buff<0>Kết quả trên hành lang cửa số Terminal của Arduino IDE:

1070 lux5006 lux7427 lux8200 lux8996 lux8656 lux6569 lux150 lux5 lux2 lux2 lux3 lux2 lux10 lux38 lux266 lux259 lux

Cảm trở nên màu và ánh nắng TCS34725 

Cảm biến màu sắc TCS34725 tiếp xúc I2C cùng UART là phiên bạn dạng nâng cung cấp của cảm biến màu TCS3200, được sử dụng để nhận biết màu sắc bằng phương pháp đo sự phản xạ 3 màu sắc cơ bạn dạng từ trang bị thể là đỏ, xanh lá cùng xanh dương kế tiếp xử lý và truyền thông số đo được của các màu này qua tiếp xúc I2C hoặc UART, tổng hợp tin tức của 3 màu trên ta bao gồm được color của vật thể buộc phải đo.

Cảm biến màu sắc TCS34725 tiếp xúc I2C và UART tất cả tích thích hợp MCU trên mạch để đổi khác từ giao tiếp I2C của TCS34725 sang tiếp xúc UART hoặc I2C của MCU giúp dể dàng giao tiếp và lập trình, ta hoàn toàn có thể dễ dàng lựa chọn tiếp xúc muốn sử dụng bằng phương pháp Set những Jumper bên trên mạch.

IC chính:TCS34725Điện áp sử dụng: 3~5VDCDòng tiêu thụ: 15m
AGiải màu sắc đo: RGB 0~255Tích hợp MCU cách xử trí và thay đổi giao tiếp.Giao tiếp có thể lựa lựa chọn qua Jumper:I2C của
TCS34725.I2C của MCU.UART của MCU.Kích thước: 24.3 x 26.7mm

Code:

Thư viện: https://github.com/adafruit/Adafruit_TCS34725

#include #include "Adafruit_TCS34725.h" /* Example code for the Adafruit TCS34725 breakout library */ /* Connect SCL khổng lồ analog 5Connect SDA khổng lồ analog 4Connect VDD to 3.3V DCConnect GROUND khổng lồ common ground */ /* Initialise with default values (int time = 2.4ms, gain = 1x) */// Adafruit_TCS34725 tcs = Adafruit_TCS34725(); /* Initialise with specific int time và gain values */Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X); void setup(void) Serial.begin(9600); if (tcs.begin()) Serial.println("Found sensor"); else Serial.println("No TCS34725 found ... Kiểm tra your connections");while (1); // Now we"re ready lớn get readings! void loop(void) uint16_t r, g, b, c, color
Temp, lux; tcs.get
Raw
Data(&r, &g, &b, &c);color
Temp = tcs.calculate
Color
Temperature(r, g, b);lux = tcs.calculate
Lux(r, g, b); Serial.print("Color Temp: "); Serial.print(color
Temp, DEC); Serial.print(" K - ");Serial.print("Lux: "); Serial.print(lux, DEC); Serial.print(" - ");Serial.print("R: "); Serial.print(r, DEC); Serial.print(" ");Serial.print("G: "); Serial.print(g, DEC); Serial.print(" ");Serial.print("B: "); Serial.print(b, DEC); Serial.print(" ");Serial.print("C: "); Serial.print(c, DEC); Serial.print(" ");Serial.println(" ");Kết trái trên cửa sổ Terminal:

Color Temp: 4554 K – Lux: 379 – R: 1122 G: 831 B: 776 C: 1429Color Temp: 3173 K – Lux: 181 – R: 475 G: 339 B: 272 C: 707Color Temp: 3425 K – Lux: 224 – R: 604 G: 435 B: 364 C: 868Color Temp: 2833 K – Lux: 1497 – R: 2983 G: 2240 B: 1461 C: 5723Color Temp: 5847 K – Lux: 109 – R: 4109 G: 1327 B: 890 C: 5814Color Temp: 2767 K – Lux: 460 – R: 4468 G: 1703 B: 1062 C: 6734Color Temp: 4381 K – Lux: 463 – R: 1379 G: 1012 B: 938 C: 1789Color Temp: 4276 K – Lux: 588 – R: 1464 G: 1136 B: 997 C: 2153Color Temp: 3952 K – Lux: 646 – R: 1424 G: 1135 B: 933 C: 2350Color Temp: 3528 K – Lux: 835 – R: 1713 G: 1362 B: 1036 C: 3101

Cảm vươn lên là TSL2561 

Cảm biến hóa cường độ ánh nắng (Lux) TSL2561 được thực hiện để đo cường độ tia nắng thường, mặt trời theo đơn vị chức năng lux với độ định hình và độ đúng đắn cao.

Càm vươn lên là tích hợp ADC nội và bộ tiền xử lý phải giá trị được trả ra là quý hiếm trực tiếp cường độ ánh sáng (lux) mà chưa phải qua ngẫu nhiên xử lý hay giám sát và đo lường nào thông qua giao tiếp I2C.

AĐo được cường độ tia nắng thường với hồng nước ngoài (IR).Giao tiếp: I2C mức TTL 3.3~5VDCKhoảng đo: 0.1 ~ 40.000 Lux
Kích cỡ:20 x 14mm
Device Pin
Arduino
GNDGND
Vcc / 3.3 (or
Vinon Adafruit modules)
3.3 or 5v
SCLD1
SDAD2
ADDRN/C
IntN/C

Code Arduino:

Thư viện: https://github.com/adafruit/Adafruit_TSL2561

#include #include #include Adafruit_TSL2561_Unified tsl = Adafruit_TSL2561_Unified(TSL2561_ADDR_FLOAT, 12345); void configure
Sensor(void) tsl.enable
Auto
Range(true); /* Auto-gain ... Switches automatically between 1x & 16x */ tsl.set
Integration
Time(TSL2561_INTEGRATIONTIME_13MS); /* fast but low resolution */ void setup(void) Serial.begin(9600); Serial.println("Light Sensor Test"); Serial.println(""); /* Initialise the sensor */ if(!tsl.begin()) Serial.print("no TSL2561 detected!"); while(1); configure
Sensor(); void loop(void) /* Get a new sensor event */ sensors_event_t event; tsl.get
Event(&event); /* Display the results (light is measured in lux) */ if (event.light) Serial.print(event.light); Serial.println(" lux"); else Serial.println("Sensor overload"); delay(500);Kết quả trên cửa sổ Terminal của Arduino IDE:

349.00 lux757.00 lux892.00 lux992.00 lux1192.00 lux1890.00 lux3324.00 lux4051.00 lux2708.00 lux314.00 lux128.00 lux105.00 lux112.00 lux108.00 lux

Trong bài viết này mình sẽ hướng dẫn chúng ta cách điều khiển cảm ứng ánh sáng (Light Sensor) vào Arduino.

*


*

Ví dụ chúng ta cũng có thể áp dụng nó trong thực tế như sau: lúc trời sáng sủa thì đèn tắt, khi trời về tối thì đèn bật. Dựa vào cảm biến ánh sáng thì ta hoàn toàn có thể thực hiện điều này khá dễ dàng dàng.

Các thiết bị cần thiết điều khiển cảm ứng ánh sáng

Để tinh chỉnh được cảm biến ánh sáng, chúng ta cần thêm một số trong những thiết bị khác sau đây:

1 x Arduino UNO.1 x Cap USB 2.0 các loại A / B.1 x cảm biến ánh sáng.1 x Điện trở 10k ohm.1 x Breadboard.3 x Dây đực đực.

Trên đấy là một số thiết bị bắt buộc thêm để có thể điều khiển cảm biến ánh sáng. Bây chừ các bạn hãy xem sơ đồ dùng chân của cảm biến ánh sáng dưới đây để nắm rõ hơn.

Xem thêm: Có cách nào giảm cân không cần tập thể dục ? có cách nào giảm cân không cần tập thể dục

Bài viết này được đăng tại

Sơ đồ gia dụng chân của cảm biến ánh sáng trong Arduino

Một cảm biến anh sáng (điện trở quang) tất cả hai chân. Vì nó là 1 loại điện trở nên chúng ta không bắt buộc phân biệt hai chân này.

Vậy làm cố nào nhằm nó có thể vận động được?

Điện trở quang càng xúc tiếp nhiều tia nắng thì điện trở của nó càng nhỏ. Vì đó, bằng cách đo điện trở của photoresistor, chúng ta có thể biết được mức độ tia nắng của tia nắng xung quanh.

*Lưu ý: giá trị của cảm biến ánh sáng sủa chỉ đề đạt gần đúng cường độ ánh sáng. Nó không thay mặt cho quang đãng thông chính xác. Cho nên vì vậy nó chỉ nên sử dụng trong số ứng dụng ko yêu mong độ đúng đắn cao.

Sơ thứ mạch điện điều khiển cảm biến ánh sáng trong Arduino

Dưới đấy là sơ thiết bị mạch điện để điều khiển cảm ứng ánh sáng sủa trong Arduino.

Giải mê say sơ đồ:

Nối một chân của điện trở quang đãng với chân A0 bên trên Arduino. Cũng là chân đó nhưng lại ta nối thêm điện trở rồi nối vào chân GND bên trên Arduino.Nối chân còn lại vào chân 5V trên Arduino.

Chân A0 mang lại chân A5 của Arduino tất cả thể chuyển động như nguồn vào tương tự. Chân đầu vào tương tự chuyển đổi điện áp (giữa 0V cùng VCC) thành các giá trị nguyên (từ 0 đến 1023), được gọi là quý hiếm ADC.

Chúng ta hoàn toàn có thể đọc giá trị ADC bằng cách sử dụng hàm analog
Read(), tiếp đến ta hoàn toàn có thể biết được nút độ ánh nắng một bí quyết tương đối.

Hướng dẫn điều khiển cảm ứng ánh sáng sủa trong Arduino

Trong phần này bản thân sẽ thực hiện một chương trình để đọc giá trị ánh sáng hiện tại bằng cảm ứng ánh sáng.

Chương trình sẽ đưa ra 5 trường hợp như sau: về tối (= 800) với các giá trị tương ứng.


void setup() //khai báo cổng serial 9600 Serial.begin(9600);void loop() //đọc giá bán trị nguồn vào của chân analog A0 (giá trị trường đoản cú 0 đến 1023) int analog
Value = analog
Read(A0); Serial.print("Analog đã đọc: "); Serial.print(analog
Value); // in quý hiếm analog ra cổng serial // bọn họ sẽ quy định một số điều kiện nhằm thể hiện ánh sáng như sau if (analog
Value = 800 thì trời sáng bạo dạn delay(500);

Kết luận

Như vậy bọn họ đã cùng nhau tìm hiểu về bí quyết điều khiển cảm biến ánh sáng sủa trong Arduino. Bây chừ thì câu hỏi tự đồng nhất ngày càng được bỏ lên hàng đầu, các bạn hãy kiếm tìm tòi tò mò dựa trên mọi thiết bị có lợi này nhé. Ở bài tiếp theo mình đã hướng dẫn các bạn cách sử dụng màn hình hiển thị LCD trong Arduino, chúng ta chú ý quan sát và theo dõi nhé !!!