Ich habe jetzt soweit mal Programmiert das ich Drehzahl und
Geschwindigkeit berechnen kann......
Das ganze hab ich mir mit einem Timer realisiert der jede Sekunde
schaut, wieviel Umdrehungen er gemacht hat in dieser Sekunde.
Leider benutz ich für Drehzahl() und Geschwindigkeit() den selben
Timer1. Bei der Ausgabe bekomm ich immer nur die Geschwindigkeit
ausgegeben.
Ich möchte aber beides ausgegeben bekommen !!!
Brauche ich da einen 2 Timer oder geht das mit 1 timer ?
Wenn ja wie geht denn sowas :)
Anbei mal mein Programm !!!
--------------------------------------------------------------
#include "TimerOne.h"
const int inputPin = 2;
const int outputPin = 13;
int alle_x_sekunden=1;
int Umdrehungen_min;
const long Umfang_cm = 94.24777;
double Umfang_km = 0.000942477;
double Geschwindigkeit_sek;
double Geschwindigkeit_stunde;
volatile int Umdrehungen;
void setup()
{
pinMode(outputPin, OUTPUT);
pinMode(inputPin, INPUT);
Serial.begin(9600);
Timer1.initialize(alle_x_sekunden*1000000);
Timer1.attachInterrupt(Drehzahl);
Timer1.attachInterrupt(Geschwindigkeit);
attachInterrupt(0, keyPressed, RISING); // 0 ist der Interrupt
für Pin 2, bei jeder steigenden Flanke wird keyPressed() aufgerufen
}
void keyPressed() // state hochzählen, falls mindestens
50ms seit der letzten Flanke vergangen sind
{
Umdrehungen++;
}
void Drehzahl()
{
Umdrehungen_min = Umdrehungen * 60;
Serial.println("Umdrehungen/min");
Serial.println(Umdrehungen_min);
Umdrehungen = 0;
}
void Geschwindigkeit()
{
Geschwindigkeit_stunde = Umfang_km Umdrehungen 3600;
Serial.println("Geschwindigkeit in km/h");
Serial.println(Geschwindigkeit_stunde);
Umdrehungen = 0;
}
void loop()
{
}