Hallo Leute, anbei mein Programm für die Berechnung der Geschwindigkeit und Drehzahl mittels eines induktiven Näherungsschalters bei einem Heimtrainer Fahrrad. Es funktioniert soweit alles wunderbar..... Nur bei der Ausgabe hab ich ein kleines Problemchen. Ich denke es hat was mit dem math.error zu tun !!! Wenn ich das Rad noch nicht drehe, dann gibt er mir den wert "inf" aus. Das liegt warscheinlich daran das bei den Berechnungen in Ausgabe() am Anfang eben noch kein Wert in der Variable "Zeit_sek_Umdrehung" steht, da das rad eben noch nicht dreht. Meine Frage ist...... wie kann ich es Ausgeben das eben nicht "inf" dort steht sondern einfach "0.00". ------------------------------------------------------------------------ -
1 | #include "TimerOne.h" |
2 | |
3 | const int inputPin = 2; |
4 | int alle_x_sekunden=1; |
5 | double Drehzahl; |
6 | double Umfang_km = 0.000942477; |
7 | double Geschwindigkeit; |
8 | volatile int Umdrehungen; |
9 | volatile double lastTime; |
10 | volatile double Zeit_sek_Umdrehung; |
11 | volatile double now; |
12 | |
13 | |
14 | |
15 | void setup() |
16 | {
|
17 | pinMode(inputPin, INPUT); |
18 | Serial.begin(9600); |
19 | |
20 | Timer1.initialize(alle_x_sekunden*1000000); |
21 | Timer1.attachInterrupt(Ausgabe); |
22 | attachInterrupt(0, keyPressed, RISING); |
23 | attachInterrupt(0, Zeit, RISING); |
24 | |
25 | }
|
26 | |
27 | void keyPressed() |
28 | {
|
29 | Umdrehungen++; |
30 | }
|
31 | |
32 | void Zeit() |
33 | {
|
34 | now = millis(); |
35 | Zeit_sek_Umdrehung = (now - lastTime)/1000; |
36 | |
37 | lastTime=now; |
38 | }
|
39 | |
40 | void Ausgabe() |
41 | {
|
42 | |
43 | Drehzahl = 1 / Zeit_sek_Umdrehung; |
44 | Drehzahl = Drehzahl * 60; |
45 | Serial.println("Drehzahl in U/min"); |
46 | Serial.println(Drehzahl); |
47 | |
48 | Geschwindigkeit = Umfang_km / Zeit_sek_Umdrehung; |
49 | Geschwindigkeit = Geschwindigkeit * 3600; |
50 | Serial.println("Geschwindigkiet in km/h"); |
51 | Serial.println(Geschwindigkeit); |
52 | }
|
53 | |
54 | |
55 | |
56 | void loop() |
57 | {
|
58 | |
59 | }
|
------------------------------------------------------------------------