Artículos recientes

Novedades

Tutorial módulo sensor de luz BH1750

Tutorial módulo sensor de luz BH1750

EL módulo BH1750 es un sensor de luz, que a diferencia del LDR es digital y nos entrega valores de medición en Lux ( lumen /m² ) que es una  unidad de medida estándar para el nivel de iluminación (iluminancia). Tiene alta precisión y un rango ente 1 – 65535 lx el cual es configurable.

Módulo Sensor de Luz digital BH1750

EL módulo tiene un regulador interno de 3.3V pudiendo alimentar con 5V sin problemas.

La interfaz de comunicación es I2C pudiéndolo implementar en la mayoría de microcontroladores, el módulo aparte de los pines de alimentación y pines I2C tiene un pin para establecer la dirección.

Pines Módulo Sensor de Luz digital BH1750

Tenemos dos direcciones para poder trabajar:

Pin ADDR

Dirección I2C

ADDR=HIGH  (5V)

0x5C

ADDR=LOW  (GND o NC)

0x23

 

El  pin ADDR internamente en el módulo tiene una resistencia a GND, por lo que si dejamos sin conectarlo la dirección será 0x23.

Podemos configurar también la resolución del sensor, el cual también afecta a la velocidad de medición; tenemos 3 modos de resolución:

Modo

Resolución

Tiempo de medición

High resolution Mode2

0.5 lx

120 ms

High Resolution Mode

1 lx

120 ms

Llow Resolution Mode

4 lux

16 ms

 

Estas tres configuraciones se subdividen en dos, en modo CONTINUOUS y ONE_TIME, con el primero es para cuando se realizan mediciones constantemente, el segundo para cuando no se necesitan realizar medidas de forma constante, cuando está configurada como ONE_TIME, el modulo se apaga después de realizar la medida, y para volver a leer es necesario volver a configurar.

Librería BH1750

Nosotros usaremos una de varias librerías que podemos encontrar en internet, usaremos la librería BH1750 escrita por Christopher Laws, librería que lo pueden descargar en:

https://github.com/claws/BH1750

A continuación explicamos las funciones da la librería

begin(mode)

Inicializa el módulo, esto inicializa la comunicación I2c de Arduino y configura la resolución del BH175, mode es la configuración que se va a establecer, esta puede ser:

BH1750_CONTINUOUS_HIGH_RES_MODE

BH1750_CONTINUOUS_HIGH_RES_MODE_2

BH1750_CONTINUOUS_LOW_RES_MODE

BH1750_ONE_TIME_HIGH_RES_MODE

BH1750_ONE_TIME_HIGH_RES_MODE_2

BH1750_ONE_TIME_LOW_RES_MODE

EL significado de cada uno se explicó anteriormente. Si no se especifica el mode , por defecto es BH1750_CONTINUOUS_HIGH_RES_MODE

configure(mode)

Al igual que el begin(), configura el BH175, con la diferencia que en esta función no se inicializa La comunicación I2C, para usar esta función la comunicación I2C ya debe estar inicializada.

Mode debe ser uno de los siguientes estados:

BH1750_CONTINUOUS_HIGH_RES_MODE

BH1750_CONTINUOUS_HIGH_RES_MODE_2

BH1750_CONTINUOUS_LOW_RES_MODE

BH1750_ONE_TIME_HIGH_RES_MODE

BH1750_ONE_TIME_HIGH_RES_MODE_2

BH1750_ONE_TIME_LOW_RES_MODE

EL significado de cada uno se explicó anteriormente.

readLightLevel()

Realiza una lectura de la iluminancia a la que está expuesto el sensor, nos retorna un entero sin signo con el valor de de la medicion de luz en Lux

 

Conexiones entre Arduino y el módulo BH1750

Las conexiones del módulo son como cualquier conexión con buz I2C:

Adaptador LCD a I2C

Arduino Uno, Nano, Mini.

Arduino Mega , DUE

Arduino Leonardo

  VCC

5V

5V

5V

  GND

GND

GND

GND

  SCL

A5

21

3

  SDA

A4

20

2

ADDR

No conectado

No conectado

No conectado

 conexiones arduino y sensor de luz BH1750

 

El pin ADDR lo dejamos sin conectar puesto que la librería que usamos trabaja con la dirección 0x23.

  

Luxómetro: midiendo la iluminancia de un ambiente con el BH1750.

Este ejemplo realizamos mediciones de luz con el BH1750. La programación es sencilla, el proceso simplemente es configurar el modulo y luego realizar las lecturas.

El sketch es el siguiente:

#include <Wire.h>
#include <BH1750.h>

BH1750 Luxometro;


void setup(){
  Serial.begin(9600);
  Serial.println("Inicializando sensor...");
  Luxometro.begin(BH1750_CONTINUOUS_HIGH_RES_MODE); //inicializamos el sensor
}


void loop() {
  uint16_t lux = Luxometro.readLightLevel();//Realizamos una lectura del sensor
  Serial.print("Luz(iluminancia):  ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(500);
}
  

 

A continuación se muestra las lecturas leídas:

Luxometro con arduino y BH1750

  

Encendido de focos automático:

En este ejemplo encenderemos a apagaremos un led (que podría ser un foco de tu fachada o jardín) de acuerdo al nivel de luz que sensamos, de esta forma el foco se encenderá de forma automática en la noche y se apagará en el día.
Este ejemplo trabajaremos para simular un foco el led del pin13, pero fácilmente podrían conectarlo a un módulo relé o triac e implementarlo con un foco de 200V

El sketch es el siguiente:

#include <Wire.h>
#include <BH1750.h>

BH1750 Luxometro;

uint16_t Lux_noche=20;
uint16_t Lux_dia=30;
int pinFoco=13;
void setup(){
  Serial.begin(9600);
  Serial.println("Inicializando sensor...");
  Luxometro.begin(BH1750_CONTINUOUS_HIGH_RES_MODE); //inicializamos el sensor
  pinMode(pinFoco, OUTPUT);
  digitalWrite(pinFoco, LOW);
}

void loop() {
  uint16_t lux = Luxometro.readLightLevel();//Realizamos una lectura del sensor
  Serial.print("Luz(iluminancia): ");
  Serial.print(lux);
  Serial.println(" lx");
  if(lux<Lux_noche) 
  {
      digitalWrite(pinFoco, HIGH);
      Serial.println(" Noche  - Foco Encendido");
  }
  else if(lux>Lux_dia)
  {
      digitalWrite(pinFoco, LOW);
      Serial.println(" Dia - Foco Apagado");
  }
  delay(500);
}

Notar que tenemos dos umbrales para determinar si es día o noche, Lux_noche inferior a este valor de lux lo consideramos noche, Lux_dia superior a este valor lo consideramos dia, y valores entre Lux_noche y Lux_dia lo consideramos un estado de histéresis, en donde mantendremos el valor anterior del foco, esto con el fin de no hacer oscilar y no quemar el foco, puesto que si tuviéramos un solo umbral cuando nos encontremos justo en este valor cualquier variación pequeña de luz haría que el foco se encienda y apague pudiendo malograr el foco o simplemente dar una mala iluminación.

A continuación se muestra la salida del monitor serial:

Encendido automatico de foco con arduino y BH1750

  

Pueden adquirir los materiales usados en este tutorial en nuestra tienda

Arduino Uno R3

Módulo Sensor de Luz digital BH1750

Tags: Luz

53 Comments

    • Avatar
      ANGHELOW
      nov 17, 2016

      gracias con este tutorial pude poner a funcionar mi sensor

    • Avatar
      eduardo
      dic 20, 2016

      hola buenas tardes .. tengo un problema con la compilacion del programa , he descargado la libreria que han proporcionado arriba , la he colocado en la carpeta de librerias en donde se instalo mi arduino y al momento de compilar me manda este error ....luxometro.ino:2:20: fatal error: BH1750.h: No such file or directorycompilation terminated.Error de compilación.... le agradeceria mucho que me ayudaran a solucionarlo .. de antemano gracias

      • Avatar
        eduardo
        dic 20, 2016

        ... he resuelto el problema .. en ves de colocar la carpeta(BH1750-master) directamente en la carpeta librería use la opción de importar desde el sketch así solo le dije a arduino donde buscar la libreria . en este caso le dije que en el zip. que nos proporcionan en la descarga ... gracias que tengan un buen dia

    • Avatar
      Diego
      jun 2, 2017

      hola buenas tardes.. me funciona bien el sensor. quiero regular un foco led mediante la cantidad de luxes que tenga en mi oficina. agradeceria que me echaran la mano con el codigo y la electronica para poder hacer eso y echar andar mi sensor.. de antemano gracias

      • Avatar
        ricardo cuesta
        feb 18, 2018

        hola busca e implementa el motor paso a paso para arduino. una vez te funcione. ese giro lo acoplas a un DIMMER . le das una orden para q el valor de salida sea inverso a la entrada.. saludos

    • Avatar
      Gaby
      mar 15, 2018

      Hola, No se si me puedes ayudar con la siguiente duda: El voltaje de salida del sensor BH1750 que va a la placa arduino sabes de cuanto es? Por que el sensor LDR tenía una diferencia de potencial entre la placa y el sensor, y lo podias controlar mediante una resistenca. En cambio con este sensor no hablais si tiene un voltaje de salida por la intenisdad de luz que recibe. gracias por el tutorial, es muy completo!

    • Avatar
      jose luis
      abr 3, 2018

      es posible poner mas de 1 sensores en un solo arduino?

      • Avatar
        Alejandro
        abr 6, 2018

        Sí, en el Arduino Uno R3 tienes 6 entradas analógicas (A0, .., A5). Te adjunto las características en este link: https://bit.ly/2hXOabl

    • Avatar
      laura
      may 12, 2018

      hola buenas noches, tengo un problema con la compilación del programa , ya descargué y añadí la librería y al momento de compilar me manda este error: 'CONTINUOUS_HIGH_RES_MODE' was not declared in this scope. les agradeceria mucho que me ayudaran a solucionarlo. Gracias

    • Avatar
      Manuel
      may 17, 2018

      Hola qué tal. Tengo el mismo problema de laura, descargué y añadí la librería, cuando compilo el codigo me bota este error: BH1750_CONTINUOUS_LOW_RES_MODE' was not declared in this scope. Alguien tendrá alguna solución? Gracias

    • Avatar
      Pablo
      jun 23, 2018

      Hola yo tambien tengo el mismo problema, descargue la librería y al compilar me devuelve el error: 'BH1750_CONTINUOUS_HIGH_RES_MODE' was not declared in this scope. Ya probe de todo y no puedo solucionarlo. Gracias.

    • Avatar
      Pablo
      jun 23, 2018

      Pude resolver el problema, hay un error en la sintaxis del código. Se debe usar lightMeter y no Luxometro. Además para seleccionar el tipo de muestreo se debe usar BH1750::CONTINUOUS_HIGH_RES_MODE y no BH1750_CONTINUOUS_HIGH_RES_MODE. Con respecto a la librería se debe descargar el archivo Zip (BH1750-master.zip) extraerlo el la carpeta de \Arduino\libraries como cualquier otra librería.

      • Avatar
        JUAN B CUELLAR
        oct 5, 2018

        Si tiene razon, realizando dichos cambios la compilacion es exitosa. Gracias y muy buen aporte !!

      • Avatar
        Adriel
        oct 6, 2019

        Gracias Pablo, aunque lo de lightMeter en vez de Luxometro no afecta para nada. Lo que se tiene que cambiar es en vez de BH1750_CONTINUOUS_HIGH_RES_MODE poner: BH1750::CONTINUOUS_HIGH_RES_MODE. La unica diferencia es :: en vez de _ (dos puntos dos puntos en vez de guion bajo). Gracias

    • Avatar
      Jose
      jun 26, 2018

      Hola a todos Deseo saludarles y agradecerles esta publicación.con sus errores y soluciones A mi me salen muchos errores, pero al final, cuando creo que ya funcionara, al complilar me sale el siguiente error:exit status 1 Error compilando para la tarjeta Arduino Nano. y en el informe detallado:Arduino:1.8.5 (Windows 10), Tarjeta:"Arduino Nano, ATmega328P"Archiving built core (caching) in: C:UsersJosepAppDataLocalTemparduino_cache_623347corecore_arduino_avr_nano_cpu_atmega328_0c812875ac70eb4a9b385d8fb077f54c.a librariesBH1750-masterBH1750_1.cpp.o (symbol from plugin): In function `BH1750::BH1750(unsigned char)':(.text+0x0): multiple definition of `BH1750::BH1750(unsigned char)'librariesBH1750-masterBH1750.cpp.o (symbol from plugin):(.text+0x0): first defined herelibrariesBH1750-masterBH1750_1.cpp.o (symbol from plugin): In function `BH1750::BH1750(unsigned char)':(.text+0x0): multiple definition of `BH1750::BH1750(unsigned char)'librariesBH1750-masterBH1750.cpp.o (symbol from plugin):(.text+0x0): first defined herelibrariesBH1750-masterBH1750_1.cpp.o (symbol from plugin): In function `BH1750::BH1750(unsigned char)':(.text+0x0): multiple definition of `BH1750::configure(BH1750::Mode)'librariesBH1750-masterBH1750.cpp.o (symbol from plugin):(.text+0x0): first defined herelibrariesBH1750-masterBH1750_1.cpp.o (symbol from plugin): In function `BH1750::BH1750(unsigned char)':(.text+0x0): multiple definition of `BH1750::begin(BH1750::Mode)'librariesBH1750-masterBH1750.cpp.o (symbol from plugin):(.text+0x0): first defined herelibrariesBH1750-masterBH1750_1.cpp.o (symbol from plugin): In function `BH1750::BH1750(unsigned char)':(.text+0x0): multiple definition of `BH1750::readLightLevel(bool)'librariesBH1750-masterBH1750.cpp.o (symbol from plugin):(.text+0x0): first defined herecollect2.exe: error: ld returned 1 exit statusexit status 1 Error compilando para la tarjeta Arduino Nano.Este reporte podría tener más información con "Mostrar salida detallada durante la compilación" opción habilitada en Archivo -> Preferencias.Bueno, si alguien puede ayudarme, le estare muy agradecido

    • Avatar
      Jose Alberto
      oct 14, 2018

      Hola tengo un error, en el monitor serial me aparece solo inicializando sensor... y no aparece otra cosa podrias decirme a que se debe, gracias, tengo un arduino mega 2560, muchas gracias

    • Avatar
      Eloy Rozas Gil
      feb 2, 2019

      Hola, tengo una pregunta. Como puedo hacer que el sensor realice una medición cada minuto o cada 5 minutos?

      • Avatar
        Adriel
        oct 6, 2019

        Hola Eloy. Dentro del bloque loop() incorpora funcion de demora para hace cada segundo pon delay(60000) y para hacerlo cada 5 minutos pon delay(300000)

    • Avatar
      Sergio Mora
      jul 11, 2019

      Hola! Puedo visualizar en serial la lectura del sensor al cien por ciento, pero en mi SSH1106 sigue apareciendo una lectura de 0.00. que hago???

    • Avatar
      MARIO LOPEZ
      oct 28, 2019

      hola como puedo obtener las lecturas de 4 sensores en un solo arduino

    • Avatar
      muneera ahmed
      nov 7, 2019

      Your post has those facts which are not accessible from anywhere else.카지노사이트쿠폰 It’s my humble request to u please keep writing such remarkable articles

    • Avatar
      muneer ahmed
      nov 8, 2019

      Great post, please keep on sharing 출장 amazing article like this! It makes me happy reading your post.

    • Avatar
      muener
      nov 12, 2019

      I know your expertise on this. I must say we should have an online discussion on this. 论文代写 assignment代写 Writing only comments will close the discussion straight away! And will restrict the benefits from this information.

    • Avatar
      muneer ahmed
      nov 23, 2019

      Excellent article plus its information and I positively bookmark to this site because here 10000 euros to dollars I always get an amazing knowledge as I expect. Thanks for this to share with us

    • Avatar
      muneer
      nov 27, 2019

      Regular visits listed here are the easiest method to appreciate your energy, multiple choice test maker which is why why I am going to the website everyday, searching for new, interesting info. Many, thank you

    • Avatar
      카지노사이트
      nov 28, 2019

      Exclusion Register is the latest of a series of measures that are part of an ongoing https://www.spacasino.net

    • Avatar
      온라인카지노
      nov 28, 2019

      crackdown on online gambling in Australia. Earlier this month, the Australian https://www.ososu9.com

    • Avatar
      바카라사이트
      nov 28, 2019

      Communications and Media Authority (ACMA) ordered local Internet service providers (ISPs) to begin blocking access https://www.dongtra.com

    • Avatar
      카지노사이트
      nov 28, 2019

      https://www.osa800.com to unauthorized online gambling websites. Last week, ACMA announced that Emu Casino and Fair Go Casino would be the

    • Avatar
      카지노사이트
      nov 28, 2019

      first victims of its crackdown. Both sites are not licensed to operate in Australia and the https://www.occ369.com

    • Avatar
      카지노사이트
      nov 28, 2019

      authority said that it had received more than 50 complaints about their conduct before https://www.sori888.com

    • Avatar
      카지노사이트
      nov 28, 2019

      ordering their banishment. Online casino gaming became illegal in Australia in the https://www.soman88.com

    • Avatar
      muneera ahmed
      nov 30, 2019

      I simply wanted to thank you a lot more for your amazing website you have developed here. It can be full of useful tips for those who are actually interested in this specific subject, primarily this very post. pozycjonowanie stron internetowych

    • Avatar
      muneer ahmed
      dic 7, 2019

      I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me to start my own BlogEngine blog now. Really the blogging is spreading its wings rapidly. Your write up is a fine example of it. London to Birmingham by car

    • Avatar
      블랙잭게임하는곳
      ene 9, 2020

      Beberapa orang akan memilih untuk mengubah dan menerapkan modifikasi yang diperlukan karena mereka anggap perlu agar mereka dapat menyesuaikan bot Betfair mereka dengan jenis permainan online yang mereka tergila-gila. Ini dapat bervariasi dari taruhan pacuan 블랙잭게임하는곳 kuda hingga taruhan kartu sederhana seperti poker atau blackjack.

    • Avatar
      JUNJUN
      ene 31, 2020

      Learn and Amazing site visit us: https://hpx7.com 바카라사이트 https://hky7.com 토토사이트 https://kyb7.com 온라인슬롯머신

    • Avatar
      JUNJUN
      feb 4, 2020

      Good Article Please visit us: https://hpx7.com 바카라사이트 https://hky7.com 토토사이트 https://kyb7.com 온라인슬롯머신

    • Avatar
      온카지노 | OnlineCasino | ONCAISNO | KKM82.COM
      feb 7, 2020

      온카지노 | Casino | ONCASINO | KKM82.C0M The Player’s Third Card온카지노온카지노 | Casino | ONCASINO | KKM82.C0M https://kkm82.com/%ec%98%a8%ec%b9%b4%ec%a7%80%eb%85%b8

    • Avatar
      온카지노
      feb 7, 2020

      온카지노 | Casino | ONCASINO | KKM82.C0M https://kkm82.com/%ec%98%a8%ec%b9%b4%ec%a7%80%eb%85%b8

    • Avatar
      온카지노
      feb 7, 2020

      온카지노 | Casino | ONCASINO | 99UTE.C0M The Player’s Third Card온카지노

    • Avatar
      온카지노
      feb 7, 2020

      온카지노 | Casino | ONCASINO | KKM82.C0M 온카지노

    • Avatar
      vegus เครดิต ฟรี
      feb 14, 2020

      Online baccarat is becoming popular in the online world at this time. Therefore, you must have a technique to play baccarat in order to make you money back into the pocket ...

    • Avatar
      하하카지노
      feb 15, 2020

      Hotel Casino - Live Casino - Slot Games - Haha Casino - 하하카지노Online Casino First Chung 5% / Maechung 3% / Payback 5% / Friendly Recommendation Events / Haha Casino Coupon / Casino Site

    • Avatar
      온카지노 | 카지노사이트 | 바카라사이트 | CCA45.COM
      feb 20, 2020

      온카지노 | CCA45.COM | 카지노사이트| 바카라사이트 No fear! 온카지노 | Oncasino New murder license 007 James Bond (온카지노), who was still an ordinary agent for the British spy agency MI6. 온카지노

    • Avatar
      카지노사이트
      feb 21, 2020

      "My company has taken a lot of measures to ensure people's safety," she said. "(It's important) to make people feel comfortable rather than just force them to go back to work." https://www.betting33.com

    • Avatar
      betting33
      feb 21, 2020

      "If you look at our stock market, it's still okay," she said. "But the economic situation, I have to say, it will get worse, not immediately but maybe later ... Overall, I think this year will not be the year we had expected."

    • Avatar
      best373
      feb 21, 2020

      Incredibly not too bad blog and articles. I am realy very happy to visit your blog. By and by I am found which I truly need. I check your blog customary and endeavor to take in something from your blog. Thankful to you and holding on for your new post. https://www.best373.com

    • Avatar
      bans33
      feb 21, 2020

      Live Casino is a one-to-one game with real-time customers. In addition, the Customer Center provided by the Live Casino is available 24 hours a day, 365 days a year to provide prompt answers to users. https://www.bans33.com

    • Avatar
      카지노사이트
      feb 21, 2020

      Great Article it its really informative and innovative keep us posted with new updates. its was really valuable. thanks a lot https://www.ccclub700.com

    • Avatar
      카지노사이트
      feb 21, 2020

      awesome article keep it up like this in your future.I hope you do best afford and make future brigh congrats man.please click here. https://www.spacasino.net

    • Avatar
      카지노사이트
      feb 21, 2020

      Great ¡V I should certainly pronounce, impressed with your website. I had no trouble navigating through all tabs as well as related info ended up being truly easy to do to access. I recently found what I hoped for before you know it in the least. Quite unusual. Is likely to appreciate it for those who add forums or something, website theme . a tones way for your client to communicate. https://www.hgame79.com

    • Avatar
      유흥정보
      feb 25, 2020

      I am interested in this area if you are a great site but know some community forums.
      I think it should be a good opportunity to get feedback from others who are experienced.

Leave a Reply

* Name:
* E-mail: (Not Published)
   Website: (Site url withhttp://)
* Comment: