Mäta ljusstyrka med fotodiod - snart framme :)
-
- Inlägg: 8445
- Blev medlem: 15 april 2006, 18:57:29
- Ort: Typ Nyköping
Re: Mäta ljusstyrka med fotomotstånd
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.
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.
Re: Mäta ljusstyrka med fotomotstånd
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å :-/
Re: Mäta ljusstyrka med fotomotstånd
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.
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.
Re: Mäta ljusstyrka med fotomotstånd
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 

Re: Mäta ljusstyrka med fotodiod
OSI har en himla bra sida med mycket info-pdf:er.
http://www.osioptoelectronics.com/techn ... notes.aspx
http://www.osioptoelectronics.com/techn ... notes.aspx
Re: Mäta ljusstyrka med fotodiod
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/
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/
Re: Mäta ljusstyrka med fotodiod
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?

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?
Re: Mäta ljusstyrka med fotodiod
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?)
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 ;
}
Re: Mäta ljusstyrka med fotodiod
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
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 ");
}
}
}
}
Re: Mäta ljusstyrka med fotodiod - snart framme :)
*letar reda på min fina röda INDENTERA!-stämpel och stämplar skärmen.... Fast ni kanske inte ser det?
*
INDENTERA!

INDENTERA!
Re: Mäta ljusstyrka med fotodiod - snart framme :)
ButtonSQM är nu korrigerad till if val == HIGH, så nu funkar den
utskrivning till lcd oc serial fungerar också prima nu... Bara kalibrering kvar 

