Thứ Tư, 9 tháng 3, 2016

CẢM BIẾN ÁNH SÁNG BH1750FVI

GIỚI THIỆU VỀ CẢM BIẾN ÁNH SÁNG BH1750FVI VÀ CÁCH LẬP TRÌNH

Giới thiệu

 hôm nay mình sẽ hướng dẩn các bạn  cách làm cảm biến đo cường độ ánh sáng BH1750FVI cùng arduino.
cảm biến đo cường độ ánh sáng BH1750FVI, là cảm biến ánh sáng có bộ chuyển đổi AD 16 bit tích hợp trong chip cà có thể suất ra trực tiếp dữ liệu theo dạng digital. cảm biến không cần bộ tính toán cường độ ánh sáng khác...
  • Cảm biến ánh sáng BH1750FVI

Các thiết bị càm chuẩn bị

  • 1 arduino uno
  • ! cảm biến bh1750fvi
  • dây nối
  • cổng com noi từ arduino uno nối vào máy tinh
Thông số kỹ thuật


  • điện áp làm việc: 3.3-5v
  • giao tiếp chuẩn I2C
  • Phạm vi đo rộng va độ phân giải cao (1~65.535 lx)
  • kết quả đo có thể thay đổi đo cường độ sáng (có thể phát hiện từ 0.11 lx, đến 100000 lx) (1~63.535 lx)
  • sự ảnh hưởng của tia hồng ngoại rất là nhỏ
  • kích thước (L x W) 3.2cm x 1.5cm

Lắp mạch


















Lập trình

/*


  1.   sample code for the BH1750 light sensor
  2.   Version 0.1
  3.   website:www.DFRobot.com
  4.   Connection:

  5.   VCC-5V
  6.   GND-GND
  7.   SCL-SCL(analog pin 5)
  8.   SDA-SDA(analog pin 4)
  9.   ADD-NC
  10.   */

  11. #include <Wire.h>

  12. int BH1750address = 0x23; //setting i2c address

  13. byte buff[2];
  14. void setup()
  15. {
  16.   Wire.begin();
  17.   Serial.begin(57600);//init Serail band rate
  18. }

  19. void loop()
  20. {
  21.   int i;
  22.   uint16_t val=0;
  23.   BH1750_Init (BH1750address);
  24.   delay(200);

  25.   if (2==BH1750_Read(BH1750address))
  26.   {
  27.     val=((buff[0]<<8)|buff[1])/1.2;
  28.     Serial.print(val,DEC);
  29.     Serial.println("[lx]");
  30.   }
  31.   delay(150);
  32. }
  33. int BH1750_Read(int address) //
  34. {
  35.   int i=0;
  36.   Wire.beginTransmission(address);
  37.   Wire.requestFrom(address, 2);
  38.   while(Wire.available()) //
  39.   {
  40.     buff[i] = Wire.read(); // receive one byte
  41.     i++;
  42.   }
  43.   Wire.endTransmission();
  44.   return i;
  45. }

  46. void BH1750_Init(int address)
  47. {
  48.   Wire.beginTransmission(address);
  49.   Wire.write(0x10);//11x reolution 120ms
  50.   Wire.endTransmission();
  51. }

video




Không có nhận xét nào:

Đăng nhận xét