Jag ska mäta ljus med hjälp av en sensor, jag vill trycka på min knapp (buttonSQM), inte hålla in den som jag måste idag, för att arduinon ska mäta ljuset och printa ut resultatet på min LCD.
allt fungerar kanon, förutom att jag måste hålla in knappen i 5-20 sek som mätningen kan ta beroende på ljusintesitet.
Tacksam för ideér

Såhär ser koden ut nu:
Kod: Markera allt
#include <FreqMeasure.h>
#include <Math.h>
#include <LiquidCrystal.h>
float Msqm;
const float A = 22.0;
int buttonSQM = A2;
int val = 0;
LiquidCrystal lcd (12, 11, 10, 9, 7, 6);
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() {
val = digitalRead(buttonSQM);
if (val == LOW) {
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 ");
lcd.clear();
lcd.setCursor(0,0);
lcd.println("Mag/AS2:");
lcd.setCursor(8,0);
lcd.print(Msqm);
delay(5000);
lcd.clear();
}
}
}
}