word steps = 0;
float rotation = 0;
float speeder = 0;
int srednicaKola = 150;
float mph; //Utworzenie zmiennej mile/godzinę
float kmh; //Utowrzenie zmiennej km/h
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), counter, RISING);
}
void loop()
{ onStep();
Serial.print("Ilosc: ");
Serial.println(rotation, DEC);
Serial.print("Speed: ");
Serial.print(kmh, DEC);
Serial.println(" km/h ");
delay(1000);
}
void counter() {
steps++;
}
void onStep()
{
static unsigned long lastTime;
unsigned long timeNow = millis();
if (timeNow - lastTime <= 1000) {
return;
}
noInterrupts(); //przed obliczeniem wylaczyc przerwanie
rotation = steps;
speeder = ((2 * 3.1415 * 30) / (timeNow - lastTime)) * steps;
mph = (srednicaKola / 2) * 3.14 * rotation * 60 / 5280;//Odczyt prędkości wiatru w milach/godzinę
mph = mph / 1.5; // Kalibracja błędu odczytu, wartość należy dobrać we własnym zakresie
kmh = mph * 1.609;
Serial.print("kroki:");
Serial.println(steps);
steps = 0;
interrupts() ; //po wyliczenu wlacz przerwanie
// else steps=0;
// Serial.println(rotation, DEC);
lastTime = timeNow;
}
Pokazywanie postów oznaczonych etykietą C. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą C. Pokaż wszystkie posty
14 kwietnia 2017
[Arduino] Przykład programu obliczajacego predkosc z przepływowego czujnika
Subskrybuj:
Posty (Atom)