16-06-2024, 19:54
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);
}
}
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);
}
}