Перейти к содержимому






Фотография
- - - - -

Сенсор освещенности (ID:274)

Написано admin , 26 April 2015 · 75094 Просмотров

BH1750
Сенсор освещенности (ID:274) Сенсор освещенности представляет собой небольшую платку с установленным на ней светочувствительным сенсором, четырех контактным разъемом.
VCC- контакт для подключения напряжения питания 5 Вольт.
GND- контакт для подключения общего провода.
SDA- последовательный интерфейс.
SCL- последовательный интерфейс.
Один из примеров использования датчика будет такой:
Подключаем питание 5 Вольт к плате сенсора.
SDA вывод платы сенсора подключаем к Arduino на аналоговый вход А4.
SCL вывод платы сенсора подключаем к Arduino на аналоговый вход А5.

Прикрепленное изображение: Arduino.png
Запишем в Arduino вот такой скетч:
#include <Wire.h>
int BH1750_address = 0x23; // i2c Addresse
byte buff[2];void setup(){  Wire.begin();
  BH1750_Init(BH1750_address);  delay(200);
  Serial.begin(9600);
  Serial.println("Sensor light");
}void loop(){  float valf=0;  if(BH1750_Read(BH1750_address)==2){    valf=((buff[0]<<8)|buff[1])/1.2;    if(valf<0)Serial.print("> 65535");
    else Serial.print((int)valf,DEC);    Serial.println(" lx");
  }
  delay(1000);
}void BH1750_Init(int address){  Wire.beginTransmission(address);
  Wire.write(0x10); // 1 [lux] aufloesung
  Wire.endTransmission();
}byte BH1750_Read(int address){  byte i=0;
  Wire.beginTransmission(address);
  Wire.requestFrom(address, 2);
  while(Wire.available()){
    buff[i] = Wire.read();
    i++;
  }
  Wire.endTransmission(); 
  return i;
}
Записав скетч в Arduino и включив монитор порта, мы можем видеть как меняются показания датчика в зависимости от его направления.
Прикрепленное изображение: 1.png
Другой вариант применения датчика с использованием библиотеки.


Для начала необходимо скачать библиотеку BH1750.zip. Поместите содержимое архива в папку libraries, которая находится в папке с программой Arduino.
/*
 Example of BH1750 library usage.
 This example initalises the BH1750 object using the default
 high resolution mode and then makes a light level reading every second.
 Connection:
 VCC-5v
 GND-GND
 SCL-SCL(analog pin 5)
 SDA-SDA(analog pin 4)
 ADD-NC or GND
 */
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup(){
  Serial.begin(9600);
  lightMeter.begin();
  Serial.println("Running...");
}
void loop() {
  uint16_t lux = lightMeter.readLightLevel();
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(1000);
}

Ссылка на витрину магазина http://dvrobot.ru/238/401.html





Trackbacks для записи [ Trackback URL ]

Для данной записи нет trackbacks.

Последние комментарии