• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Obliczanie czasu pomiędzy zdarzeniami
#1
Witam,
Jestem początkującym użytkownikiem Arduino Uno. Chciałem zbudować prosty układ, który mierzyłby czas staczającego się z równi pochyłej walca u jej podstawy. Zasada działania jest następująca: w odstępie 10mm zamontowane są dwa fototranzystory oświetlane diodami laserowymi; przejeżdżający walec przecina najpierw pierwszą wiązkę potem drugą. Na tej podstawie znając odległość pomiędzy fototranzystorami i czas na jaki wiązka została przecięta mogę policzyć prędkość (T1, T2 albo T = ?     ).
 
Poniżej zamieściłem przykłady program, który zwraca wartość funkcji micros(), kiedy zostanie przekroczony poziom referencyjny dla pierwszego fototranzystora (950). Czy jest możliwość wystartowania funkcji micros() od zera, kiedy zostanie przekroczona wartość referencyjna? Czy może istnieje, jakaś inna funkcja pozwalająca na obliczenie czasu?
Z góry bardzo dziękuje,
Michał

int czujnik_1 = A1;   //fototranzystor 1
int czujnik_2 = A2;   //fototranzystor 2
unsigned long time; //czas microsekundy

void setup() {
  Serial.begin(9600);        //inicjalizacja monitora szeregowego
  Serial.println("Pomiar predkośći");
 
}
 
void loop() {
  int war_1 = analogRead(czujnik_1);      //odczytanie wartości z A1
  int war_2 = analogRead(czujnik_2);      //odczytanie wartości z A2
  
  if (war_1 < 950)                      
  {

    time = micros();
  }

  if (war_1 < 950)
  {
Serial.println (time);
  }
 delayMicroseconds(1);                         //opóźnienie między kolejnymi odczytami
}
 
Odpowiedź
  


Wiadomości w tym wątku
Obliczanie czasu pomiędzy zdarzeniami - przez gawlik7 - 24-01-2017, 15:58

Skocz do:


Przeglądający: 1 gości