Mäta ljusstyrka med fotodiod - snart framme :)

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
limpan4all
Inlägg: 8445
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Re: Mäta ljusstyrka med fotomotstånd

Inlägg av limpan4all »

Du sa att du skulle använda fotoresistorn inte den integrerade i ditt första inlägg.
Om du väljer den integrerade så ligger du bättre till, och endera så funkar det eller inte, inte särskilt mycket som kan gå fel.
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotomotstånd

Inlägg av Corpze »

Jag trodde ja skulle använda en sådan tills jag såg vilken modell den riktiga mätaren använder, nu har jag dock bara funnit 250 och 252R modellerna av det chippet och inte 237 som det är... Dumt att använda nåt annat, fast det kanske kommit ut nya, bättre sen de gjorde mätaren också :-/
Användarvisningsbild
4kTRB
Inlägg: 20702
Blev medlem: 16 augusti 2009, 19:04:48

Re: Mäta ljusstyrka med fotomotstånd

Inlägg av 4kTRB »

Vilket företag är du anställd på?
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotomotstånd

Inlägg av Corpze »

Volvo CE i Arvika
Användarvisningsbild
4kTRB
Inlägg: 20702
Blev medlem: 16 augusti 2009, 19:04:48

Re: Mäta ljusstyrka med fotomotstånd

Inlägg av 4kTRB »

Frågan skulle egentligen varit "stort eller litet företag?".
Tänkte att det på ett större finns många kunniga runt omkring.
Fast nu vet jag inte, alla där kanske är specialister på sitt eget område.
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotomotstånd

Inlägg av Corpze »

Mja, det är troligtvis ingen som besitter kunskaper i sådana komponenter, möjligt att det går att få tag i en luxmätare på sin höjd :)
Användarvisningsbild
4kTRB
Inlägg: 20702
Blev medlem: 16 augusti 2009, 19:04:48

Re: Mäta ljusstyrka med fotodiod

Inlägg av 4kTRB »

OSI har en himla bra sida med mycket info-pdf:er.
http://www.osioptoelectronics.com/techn ... notes.aspx
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotodiod

Inlägg av Corpze »

Nu är en TSL237 beställd från England och lite annat småkrafs, och jag kommer att börja skissa på koden... Inputen kommer att bli på pin5 som mäter pulser (frekvenser?)

Men det skrivs också om en dutycycle på 50% , hur inverkar den?

Jag antar att jag kan utgå från denna koden för att mäta frekvenserna?
http://interface.khm.de/index.php/lab/e ... r-library/
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotodiod

Inlägg av Corpze »

Tror jag fann en kod ja kan använda, inte riktigt samma sensor men den skicka ut frekvens iaf, kanske kan va bra att börja med :-)

http://playground.arduino.cc/Main/TSL235R

Sen undrar jag om det gör nåt att strömmen är på konstant till sensorn, även när ja inte läser från den?

Kan ja ansluta sensorn via en kontakt eller kommer det störa signalen?
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotodiod

Inlägg av Corpze »

Sådär, sensorn inkopplad och första koden inkörd... Den läser ut frekvenser som den skall men nu är det bara att försöka mäta upp min sensors "Zero Point" och gå därifrån i omvandlingen till mag/arcsecond2... hur skulle man kunna skriva för att ta tre mätningar för att få ett utjämnat värde? typ (freq1 + freq2 + freq3 /3)?

nu står delayen efter loopen på 1000ms, måste det vara just 1000 för att mäta frekvensen? (är just själva definitionen av frekvensen som jag läser ut hur många svängningar per sekund?)

Kod: Markera allt

#include <FreqCounter.h>
#include <Math.h>


long irradiance;
long freq;
long pulses;
long magnitude;
const float ZP = 12; // "Zero Point" i just picked a random nr for now, not calibrated)
const float area = 0.0092;
int cnt;
int pinLed=13;
int buttonSQM = A2;
short period = 100; // 100 ms Gate Time

void setup() {
  pinMode(pinLed, OUTPUT);
  pinMode(buttonSQM, INPUT);
  digitalWrite(buttonSQM, HIGH);
  Serial.begin(115200);        // connect to the serial port
  Serial.println("Frequency Counter");
}


void loop() {
 light();
 Serial.print(cnt++);
 Serial.print("  Pulses: ");
 Serial.print(pulses);
 Serial.print(";  Freq: ");
 Serial.print(freq);
 Serial.print(" Hz;  Irradiance: ");
 Serial.print(irradiance);
 Serial.println(" uW/cm2 = KHz");
 Serial.print(magnitude);
 Serial.print(" Mag/Arcsecond2 ");
 
 delay(1000);
}  

void light(){
  if (buttonSQM = HIGH)
  digitalWrite(pinLed, HIGH);
  FreqCounter::f_comp=10;   // Cal Value / Calibrate with professional Freq Counter
  FreqCounter::start(period);  // 100 ms Gate Time
  while (FreqCounter::f_ready == 0)
  pulses=FreqCounter::f_freq;
  delay(20);
  digitalWrite(pinLed, LOW);
  freq = (pulses*1000)/(period*area);
  irradiance = (freq/1000);
  magnitude = ZP - 2.5*log10(freq);

  return ;
}
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotodiod

Inlägg av Corpze »

Efter lite efterforskningar så är inte freqcounter rätt väg att gå, utan freqmeasure, dvs räkna pulser och beräkna Hz...

Hursomhelst så har jag gjort det, samt adderat en knapp för att "aktivera" mätningen... Nu vet jag inte om jag fått den kodsträngen helt rätt (inte provat än) men efter jag aktiverat mätningen så vill jag printa ut resultatet på min lcd/serial i 5 sek, sedan vill jag inte ha någon mer mätning, så mina frågor till någon mer kunnig är:

1. Har jag satt min "buttonSQM" - knapp rätt (alltså att min arduino inte kör den koden innan jag tryckt ner knappen en gång)?
2. använder jag en delay efter att all beräkning är gjord (om det går att använda delay samtidigt som biblioteket använder sig av interrupts?) för att visa resultatet av mätningen på min LCD/Serial i 5 sek?

3. Om jag nu riktar mätaren mot något lite ljusare så skriver den ut till SerialMonitorn ruskigt snabbt (kanske 5-10 rader / sek) vilket jag inte alls har ett behov av, kan man justera det så att den läser ut max 1-2 ggr per sekund?

MVH Daniel

Kod: Markera allt

#include <LiquidCrystal.h>
#include <FreqMeasure.h>
#include <Math.h>

LiquidCrystal lcd (12, 11, 10, 9, 7, 6);
float Msqm;
const float A = 22;
int buttonSQM = A2;

void setup() {
   Serial.begin(19200);
   FreqMeasure.begin();
   pinMode(buttonSQM, INPUT);
   digitalWrite(buttonSQM, HIGH);
   lcd.begin(16,2);
}

double sum=0;
int count=0;

void loop() {
   if (buttonSQM = digitalRead(HIGH));{
     if (FreqMeasure.available()) {
      // average several reading together
     sum = sum + FreqMeasure.read();
     count = count + 1;
     if (count > 30) {
     double frequency = F_CPU / (sum / count);
     Serial.println(frequency);
     sum = 0;
     count = 0;

     Msqm = A - 2.5*log10(frequency); //Egen Kod
     Serial.print(Msqm);
     Serial.println(" Mag/Arcsecond2 ");
}
}
}
}
Användarvisningsbild
adent
Inlägg: 4245
Blev medlem: 27 november 2008, 22:56:23
Ort: Utanför Jönköping
Kontakt:

Re: Mäta ljusstyrka med fotodiod - snart framme :)

Inlägg av adent »

*letar reda på min fina röda INDENTERA!-stämpel och stämplar skärmen.... Fast ni kanske inte ser det? :) *

INDENTERA!
Corpze
Inlägg: 256
Blev medlem: 29 januari 2013, 17:31:27

Re: Mäta ljusstyrka med fotodiod - snart framme :)

Inlägg av Corpze »

ButtonSQM är nu korrigerad till if val == HIGH, så nu funkar den :) utskrivning till lcd oc serial fungerar också prima nu... Bara kalibrering kvar :)
Skriv svar