#1 Програмування Arduino » Проблема аппаратная или програмная? Неправильно считает время » 2024-05-13 11:29:20

ip040215
відповідей: 1

Помогите пожалуйста разобраться. Проблема аппаратная или програмная? Arduino Uno
Неправильно считает время между нажатиями кнопки!?
Задача считать время между нажатиями кнопки. Получаемый результат в разы отличается от времени по секундомеру?!
Заранее спасибо

const int buttonPin = 2;     // номер пина, к которому подключена кнопка
unsigned long previousTime = 0; // время предыдущего нажатия

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int buttonState = digitalRead(buttonPin);
 
  // Если кнопка нажата
  if (buttonState == LOW) {
        unsigned long currentTime = millis(); // текущее время
    if (previousTime > 0) {
      // Если это не первое нажатие, вычисляем и выводим время между нажатиями
      Serial.print("Time between clicks: ");
      Serial.print((currentTime - previousTime)/1000);
      Serial.println(" sec");
    }
    previousTime = currentTime; // обновляем время предыдущего нажатия
    // Ждем, пока кнопка будет отпущена
    while (digitalRead(buttonPin) == LOW) {}
  }
}

Підвал форуму