Pages: [1]   Go Down
Author Topic: Luxómetro projecto ayuda  (Read 2772 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola a todos, estoy trabajando en hacer un pequeño luxometro, pensaba que lo había terminado hasta que me han dejado un loxometro de verdad y e visto que los valores que me da el luxometro son totalmente diferentes al que me da mi arduino. la formula que he utilizado es una que encontré en otro post. lo unico que estoy utilizando es un LDR
bueno aqui os dejo el código que e implementado :

Code:
#include <ks0108.h> //  library for LCD
#include "SystemFont5x7.h"   // we need this for character display, included with ks0108.h download
int LDRPINA4 = 5;
int LDRREADING4;
float Resistance = 10.0;
int val = 0;

void setup()
{
 
GLCD.Init(NON_INVERTED);   // load the GLCD library
GLCD.ClearScreen();
GLCD.SelectFont(System5x7);  // choose font to use (note this needs to match the #include above
  countdown(1);
  GLCD.ClearScreen();
GLCD.DrawRect(0, 0, 127, 63,BLACK);
GLCD.CursorTo(1, 1);
// set cursor to top left of LCD (uses character coordinates
// not pixel coordinates
GLCD.Puts("   Welcome To The"); // sends strings to LCD. Does not wrap to next line!
GLCD.CursorTo(1, 2);
GLCD.Puts("#AMAZING LUX METER#");
GLCD.CursorTo(0, 3);
GLCD.Puts("Project Developed by:");
GLCD.CursorTo(1, 4);
GLCD.Puts("--------------a");
GLCD.CursorTo(1, 5);
GLCD.Puts("S--------------");
delay(900);
GLCD.ClearScreen();
GLCD.DrawRect(0, 0, 127, 63,BLACK);
GLCD.CursorTo(1, 1);
GLCD.Puts("Lux Given in Lumens "); // sends strings to LCD. Does not wrap to next line!
GLCD.CursorTo(1, 3);
GLCD.Puts("       LUX\t=");
}
void loop(void)
{
LDRREADING4 = analogRead(LDRPINA4);
float Vout5=LDRREADING4*0.0048828125;
int lux4=104.1*Vout5;
GLCD.CursorTo(12,3);
GLCD.PrintNumber(lux4);
delay(1000);

delay (20);
}

void countdown(int count){
  while(count--){  // do countdown 
    GLCD.CursorTo(10,3);   // first column, second row (offset is from 0)
    GLCD.PutChar(count + '0');
    delay(1000); 
  }
}

Please can anyone help me on it? can anyone suggest me where I went wrong? or what formula will be giving me the right answer?
By the way, I am using analog input A5... does that affect? This is because in the other posts everybody uses the analog input 0, but because I am using a GLCD my analog input 0 has been used for the screen.

 I really want to get this project done as I have been working on it for quite a while now, has anyone attempted it? And got the right values?

Thanks in advance

Sixto

Sorry for my english, Im spanish and I struggle to write it properly


Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

lo acabo de hacer y nada, sigue dándome los mismos valores
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

lo e implementado asi:

                  X
5V >-- [ LDR ] ---+--- [ R ] ---<  GND
                  |
                  |
          Arduino pin A5

acabo de cambiar la formula... es asi a lo que te refieres?
Code:
LDRREADING4 = analogRead(LDRPINA4);
float Vout5=(LDRREADING4*0.0048828125);
float lux4=(104.1*(Vout5));

mirando el codigo, te parece que todo esta bien? repito estoy utilizando el analog input  A5! no deberia afectar verdad?

Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tienes que tener en cuenta que las LDR no son muy precisas, tampoco son perfectamente lineales y dependen de la temperatura de la ambiente, por lo que deberás intentar minimizar cada uno de estos problemas.
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vale, alguna sugerencia de como implementar the wheatstone bridge en el breadboard? alguna pagina web con el circuito montado? tendri que modificar mucho el codigo?

gracias por adelantado!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, pero que resistencias utilizo? que utilizo la esquematica de la foto para hacerlo? en la carrera lo di pero solo por encima y nunca me detuve a mirarme lo otra vez...
Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Me perdonareis mi estulticia, pero no veo cómo se puede hacer variar una resistencia con un Arduino hasta llegar a un equilibrio (sin entrar en complicados cálculos con transistores mosfet en zona ohmica). ¿Podria alguien explicar cómo se implementa un puente de Wheatestone con un Arduino?
Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

¿Y para medir la corriente? ¿Con algun transistor?
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

¿Medir corriente?
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

entonces si uso un wheatstone bridge conseguir mejores resultados? es que si os digo la verdad no veo como van a cambiar los resultados que estoy obteniendo ahora mismo con los que obtendré usando el wheatstone bridge.
Logged

Argentina
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,  soy nuevo en el foro y por ahí esta información pueda servir.

Adjunto el siguiente link para poder comprender a modo de ejemplo como se relaciona el valor de una LDR en un valor LUX
http://sycelectronica.com.ar/optoelectronica/MLGXXXX.pdf

Si o si, dependerá del LDR que uno disponga y el paso siguiente sería encontrar el data sheet correspondiente donde informará los valores semejantes a los que figuran en el pdf adjuntado.

Espero sirva:::::: saludos
Logged

Barcelona
Offline Offline
Full Member
***
Karma: 0
Posts: 136
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,


personalmente creo que el problema es que utilizar un LDR que puede no ser lineal y depende de la temperatura y se te está complicando el circuito para compensar todas las deficiencias. Mira en este link:

http://www.zigbe.net/?p=245

habla de un sensor de iluminación, analógico, con un coste parecido a una ldr y que te da la lectura de forma lineal en lux. la salida es logarítmica, pero en un Arduino no debería de ser ningún problema, tampoco añadir unas líneas para hacer una pequeña calibración y compensar la tolerancia de la resistencia de carga.

http://www.zigbe.net
Logged


Pages: [1]   Go Up
Jump to: