Arduino Polska Forum

Pełna wersja: Jak użyć w szkicu dane z monitora portu szeregowego?
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam. Pracuję nad projektem, który ma porównać czas impulsu na wejściu cyfrowym, z czasem zadanym i w zależności od wyniku aktywować określone wyjścia cyfrowe. Do zmierzenia czasu trwania impulsu stosuję poniższy szkic, lecz nie mam pomysłu jak pobrać z portu czas impulsu w milisekundach i obrabiać dalej w programie. Używam Arduino Nano.


 const int switchPin = 2;
 
unsigned long startTime;
 
unsigned long duration;
 
void setup()
{
pinMode(switchPin, INPUT_PULLUP);
Serial.begin(9600);
}

void loop()
{
  
if(digitalRead(switchPin) == LOW)
  
{
    startTime = 
millis();
    
while(digitalRead(switchPin) == LOW)
    duration = 
millis() - startTime;
    
Serial.println(duration);
  
}

}
(16-06-2024, 19:54)Keram napisał(a): [ -> ]Witam. Pracuję nad projektem, który ma porównać czas impulsu na wejściu cyfrowym, z czasem zadanym i w zależności od wyniku aktywować określone wyjścia cyfrowe. Do zmierzenia czasu trwania impulsu stosuję poniższy szkic, lecz nie mam pomysłu jak pobrać z portu czas impulsu w milisekundach i obrabiać dalej w programie. Używam Arduino Nano.


 const int switchPin = 2;
 
unsigned long startTime;
 
unsigned long duration;
 
void setup()
{
pinMode(switchPin, INPUT_PULLUP);
Serial.begin(9600);
}

void loop()
{
  
if(digitalRead(switchPin) == LOW)
  
{
    startTime = 
millis();
    
while(digitalRead(switchPin) == LOW)
        duration = 
millis() - startTime;
    
Serial.println(duration);
  
}

}


Przecież masz go w zmiennej duration.
PS. Trochę poprawiłem formatowanie - ale może chodziło o coś takiego:
Kod:
  if(digitalRead(switchPin) == LOW)
  {
    startTime = millis();
    while(digitalRead(switchPin) == LOW)
        ;
    duration = millis() - startTime;
    twoja_funkcja(duration);
  }

Będzie trochę szybciej.
Dzięki "oscarX". Faktycznie, po co sobie komplikować życie. Warunki "if"  wystarczają - sprawdziłem,  działają zgodnie z założeniami. Problem rozwiązany, chociaż inaczej niż sie spodziewałem. Smile