Hi,
mein Programm ist soweit fertig ich habe leider nur ein kleines Problem.
Die Zahl bzw. die Frequenz, die angezeigt wird startet bei ca 357,00 und
fällt dann auf die 7,0000
und wird zurück auf die 357 gesetzt.( Je kleiner die Zahl desto
langsamer wirds.)
Hier das Programm:
---------------------------------------------------------------------
1 | int freq = 7; //Frequenz Eingang (D4)
|
2 | int a = 0;
|
3 | int b = 0;
|
4 | int FQv = 0;
|
5 | float Frequenz = 0.000;
|
6 | float Zeit = 0.000;
|
7 | unsigned int START_Messung = 0;
|
8 | unsigned int STOP_Messung = 0;
|
9 |
|
10 | #include <LiquidCrystal.h>
|
11 | LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
|
12 |
|
13 | void setup() {
|
14 | pinMode(freq, INPUT);
|
15 | lcd.begin(20, 2);
|
16 | }
|
17 |
|
18 |
|
19 | void loop()
|
20 | {
|
21 | FQv = digitalRead (freq);
|
22 | if ((FQv == HIGH) && (a == 0))
|
23 | {
|
24 | START_Messung = millis();
|
25 | a = 1;
|
26 | }
|
27 |
|
28 | FQv = digitalRead (freq);
|
29 | if ((FQv == HIGH) && (a == 1) && (b == 0))
|
30 | {
|
31 | STOP_Messung = millis();
|
32 | b = 1;
|
33 | }
|
34 |
|
35 | if (( a == 1) && (b == 1))
|
36 | {
|
37 | Zeit = STOP_Messung;
|
38 | Zeit = Zeit / 1000;
|
39 | Frequenz = 1.0 / Zeit;
|
40 | Frequenz = Frequenz * 500;
|
41 | lcd.clear();
|
42 | lcd.begin(20, 2);
|
43 | lcd.setCursor(14, 0);
|
44 | lcd.println(Frequenz, 4);
|
45 | delay(200);
|
46 | a = 0;
|
47 | b = 0;
|
48 | }
|
49 | }
|
---------------------------------------------------------------------
Wäre super wenn ihr mir helfen könntet.