Manual

do

Maker

.

com

Sensor digital de luminosidade TSL235R

Sensor digital de luminosidade TSL235R

No post anterior iniciei o uso de sensores com o sensor de temperatura LM35 alternando LEDs e intensidade de brilho dos LEDs. Como prometi, darei continuidade ao controle de sensores com o uso de um display para visualizar as informações. Como o display que vou indicar não possui alguns slots necessários, vou comprá-los e soldá-los ao display para poder fazer uso dos pinos A/D do shield do Arduino.
Por hora, vamos controlar o sensor digital de luminosidade TSL235R que possui saida digital!
Como a saída desse sensor é digital, a leitura é feita no pino digital. Iniciaremos seu uso com o exemplo deste post do playground.

Encontrei algumas referências sobre os padrões adotados para diversos tipos de ambientes. A luminosidade é medida em Lumen de um PDF da USP:
"Um lumen corresponde ao fluxo luminoso que atinge em cada 1 m2 de uma esfera de 1 m de raio, quando uma fonte de luz de 1 cd é colocada no centro da esfera".
Nela também se encontram fórmulas e comparações.

Para leitura, a luminosidade ideal para cada faixa etária está descrita na tabela abaixo:
Aos 10 anos de idade 60 lux
Aos 20 anos de idade 100 lux
Aos 30 anos de idade 120 lux
Aos 40 anos de idade 200 lux
Aos 50 anos de idade 400 lux
Aos 60 anos de idade 1000 lux

Com isso, devemos considerar que a iluminação de um ambiente depende do público alvo, ou ainda de um modo mais genérico, aplicando a norma NBR 5413 da ABNT. É interessante notar que se considera fatores de reflexão como teto branco que reflete 75%, teto claro 50%, parede branca 50%, parede clara 30% e parede medianamente clara 10%.

Essa apostila da Unicamp tem excelentes exemplos de cálculos para saber qual o nível de luminosidade adequado a um ambiente, mas existem tabelas pré-definidas que podem auxiliar numa medição menos precisa. Utilizaremos para fazer um programa em Qt para calcular a iluminação adequada para diversos tipos de ambiente.

Quando vi essa tabela após o experimento, fiquei chocado ao descobrir que a luminosidade do meu balcão está 100 vezes abaixo do que deveria ser! Conhecendo a tabela de luminância, é possível medir o quanto de iluminação é necessária em um ambiente, então nessa primeira etapa do projeto vamos colocar o sensor de luminosidade pra funcionar, exibindo valores na saida serial.

tsl235r.webp

Esse sensor possui 3 pernas, sendo que da esquerda para direita temos ground,5v,sinal. Ligaremos o sinal ao pino 2 digital, como ilustrado no esquema abaixo (como não tem o sensor TSL235R usei um transistor NPN para ilustrar - e tome-lhe gambiarra):

O código desse primeiro exemplo é esse:

/*
 *    FILE: demo01.pde
 *  AUTHOR: Rob Tillaart
 *    DATE: 2011 05 16
 *
 * PURPOSE: prototype TSL235R monitoring  
 *
 * Digital Pin layout ARDUINO
 * =============================
 *  2     IRQ 0    - to TSL235R
 *
 * PIN 1 - GND
 * PIN 2 - VDD - 5V
 * PIN 3 - SIGNAL
 *
 */

volatile unsigned long cnt = 0;
unsigned long oldcnt = 0;
unsigned long t = 0;
unsigned long last;

void irq1()
{
  cnt++;
}

//////////////// SETUP

void setup() 
{
  Serial.begin(9600);
  Serial.println("START");
  pinMode(2, INPUT);
  digitalWrite(2, HIGH);
  attachInterrupt(0, irq1, RISING);
}

///////////////////////////////////////////////////////////////////
//
// MAIN LOOP
//
void loop() 
{
  if (millis() - last > 1000)
  {
    last = millis();
    t = cnt;
    unsigned long hz = t - oldcnt;
    Serial.print("FREQ: "); 
    Serial.print(hz);
    Serial.print("t = "); 
    Serial.print((hz+50)/100);  // +50 == rounding last digit
    Serial.println(" mW/m2");
    oldcnt = t;
  }
}
// END OF FILE

Monitorando pela serial do SDK do Arduino, o resultado da configuração do sensor digital de luminosidade é esse (a iluminação está melhorada graças ao editor do youtube):

Na próxima etapa iniciaremos a configuração do display citado no inicio do artigo. Seguidamente, criaremos um menu para ser acessado através do display com diversas funcionalidades, sendo a primeira um programa de cálculo de luminosidade ideal para um ambiente, onde entraremos com variáveis e teremos como retorno o número de luminárias necessárias. Outra aplicação que utilizaremos será o de medição de temperatura, onde entraremos com variáveis de máxima e mínima e além da exibição do valor no display ainda faremos um alarme sonoro com um buzzer.

Ainda na série de sensores de luminosidade e temperatura, vamos controlar lâmpadas e ventiladores com o Arduino.
E vem mais diversão por ai!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.