Guten Tag,
ich studiere Ingenieurwesen im Bereich Industriemesstechnik und befasse mich derzeit mit Platinencomputern.
Zudem bastle ich sehr gerne an Motorrädern und kopple alles ein wenig.
Ich möchte einen Drehzahlmesser modulieren mit Hilfe eines IR Sensors und einem Propeller. Hieran klebe ich Alufolie.
Die Drehzahlen sind vermutlich so bis 5000rpm möglich. Der Bereich ist aber erstmal nebensächlich.
Bisher habe ich einen Zähler implementiert, der mit jedem Impuls hochzählt.
Meine Frage an euch.
Wie kann ich es am Besten einbringen, dass immer nur weitergezählt wird, wenn es eine Unterbrechung gab? Also er nicht weiterzählt, wenn bspw. 15000rpm bei rum kommen würden und somit nur noch ein durchgehender Impuls erzielt wird.
Leider habe ich die letzten Tage nichts passendes gefunden.
Ich bin noch nicht lange dabei. Generell beim Probieren. Also programmiere ich wahrscheinlich noch sehr umständlich. Vielleicht habt ihr Tipps, wie ich den Part kürzer schreiben kann, bei dem LEDs angesteuert werden.
int n = 500; // n Anzahl der Impulse
int Z; // Z INPUT des Sensors 0 oder 1
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
}
void loop() {{
int previousmillis = millis();
Z = digitalRead(A0); // LOW or HIGH
if ( Z != HIGH){ // Obstacle!
n++;
}
if ( n > 500){
digitalWrite(A1, HIGH);
if ( n > 1500){
digitalWrite(A2, HIGH); // LEDs
if ( n > 2500){
digitalWrite(A3, HIGH);
if ( n > 3500){
digitalWrite(A4, HIGH);
if ( n > 4500){
digitalWrite(A5, HIGH);
}}}}}
int currentmillis = millis();
int limit = currentmillis - previousmillis;
{
Serial.print("");
Serial.println(n);
int overallmillis = currentmillis - previousmillis;
Serial.println(overallmillis);