Hallo leute , Ich brauche eure hilfe , meine Aufgabe mit Arduino seht um eine Drehzahlmessung zu erfassen.
1 | |
2 | |
3 | |
4 | #include <Wire.h> |
5 | unsigned long beginnzeit; // le temps debut pour la deuxiemer messure |
6 | volatile unsigned long endezeit; // le temps ecoule |
7 | volatile unsigned long impuls; // compteur |
8 | unsigned long drehzahl; //nombre de tours |
9 | unsigned long dauer ; |
10 | int A=0; |
11 | int mittelwert=0; |
12 | |
13 | |
14 | void setup() { |
15 | Serial.begin(9600); |
16 | pinMode(2,INPUT); |
17 | pinMode(2,INPUT_PULLUP); |
18 | drehzahl=0; |
19 | endezeit=0; |
20 | beginnzeit=0; |
21 | impuls=0; |
22 | attachInterrupt(0,impulse,HIGH) ;// der Interrupt wird ausgelöst , wenn der pin 2 von HIGH nach LOW wechselt , bei fallender Flanke |
23 | } |
24 | void impulse(){ |
25 | impuls++; |
26 | endezeit=millis(); |
27 | Serial.println("ende"); |
28 | Serial.println(endezeit); |
29 | Serial.println(impuls); |
30 | } |
31 | void loop() { |
32 | |
33 | if (endezeit>beginnzeit){ |
34 | detachInterrupt(0); |
35 | dauer=endezeit-beginnzeit; |
36 | |
37 | drehzahl= 60*1000 *1/ (dauer); // |
38 | |
39 | beginnzeit=endezeit; |
40 | A=drehzahl+A; |
41 | if (impuls==18){ |
42 | mittelwert=A/impuls; |
43 | Serial.println("Mittelwert"); |
44 | Serial.println(mittelwert); |
45 | impuls=0; |
46 | A=0; |
47 | } |
48 | attachInterrupt(0,impulse,HIGH) ; |
49 | /* Serial.println("begine"); |
50 | Serial.println(beginnzeit); |
51 | Serial.println("edauer"); |
52 | Serial.println(dauer); */ |
53 | Serial.println("drehzahl"); |
54 | Serial.println(drehzahl); |
55 | |
56 | |
57 | |
58 | } |
59 | else{ |
60 | drehzahl=0; |
61 | } |
62 | |
63 | delay(1000); |
64 | |
65 | |
66 | |
67 | } |
Ich versuche halt die Drehzahl nach jede Impuls und der mittelwerte nach 18 Impulse auszurechnen , aber irgwie klappt gar nicht mit meinem code. Der impuls zähler geht nicht wider auf NUll nach 18 impulse und der drehzahl kriege die falsch :S wäre sehr dankbar falls jemande mir helfen kann :) Vielen Dank und schönen Abend noch . Ps: sorry mein Deutsch ist aber nicht perfekt