Just nu har jag bara lyckats skriva koden så den fungerar med den fysiska knappen;
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;
int reading = 0;
int percentage = 0;
LiquidCrystal lcd (12, 11, 10, 9, 7, 6);
byte byteRead;
void setup() {
pinMode(buttonSQM, INPUT_PULLUP);
digitalWrite(buttonSQM, HIGH);
lcd.begin(16,2);
Serial.begin(19200);
}
double sum=0;
int count=0;
void loop() {
val = digitalRead(buttonSQM);
if (val == LOW) {
reading = 1;
FreqMeasure.begin();
while(reading) {
if (FreqMeasure.available()) {
// average several reading together
sum = sum + FreqMeasure.read();
count +=1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Reading");
lcd.setCursor(8,0);
lcd.print(percentage);
lcd.setCursor(11,0);
lcd.print("%");
percentage = count/31.0*100.0;
Serial.print("Counts: ");
Serial.print(count);
Serial.print(" Progress: ");
Serial.print(percentage);
Serial.println("%");
if (count > 30) {
double frequency = F_CPU / (sum / count);
sum = 0;
count = 0;
Msqm = A - 2.5*log10(frequency); //Frequency to magnitudes/arcSecond2 formula
lcd.clear();
lcd.setCursor(0,0);
lcd.println("Mag/As2: ");
lcd.setCursor(9,0);
lcd.print(Msqm);
Serial.print(Msqm);
delay(5000);
lcd.clear();
reading = 0;
FreqMeasure.end();
}
}
}
}
}
Det jag har kört fast på är "or"
alltså, när jag trycker på den fysiska knappen "Eller" skriver kommando i monitor ---> kör mätningen...
Någon som kan ge en pointer?
/MVH