Нужна помощь в программировании

Тема в разделе "Arduino & Shields", создана пользователем Stets, 30 янв 2016.

  1. Stets

    Stets Нуб

    Показания снимаются с аналогового пина и нужно сравнивать два значения. Первое это в нынешний момент, а второе через 3 секунды. Каким образом это можно осуществить?
     
  2. Limoney

    Limoney Гик

    Для начала покажите хотя бы код.
    Самый простой вариант сравнивать две переменные
     
  3. Stets

    Stets Нуб

    Вот код
     

    Вложения:

  4. Stets

    Stets Нуб

    Вообще надо сделать так, что если показания с Аналогового пина меняются слишком быстро, то изменять переменную "с" примерно в интервале в 2 секунды
     
  5. CryNET

    CryNET Гик

    Код (C++):
    unsigned long previousMillis = 0;
    const long interval = 2000; //интервал в миллисекундах (2000мс = 2 сек)
    ....
    if (millis() - previousMillis >= interval) { //срабатывает раз в interval
        previousMillis = millis();
        //Делаем что-то
       if(c != j){
          c = j;
       }
    }
    ....
    Вот вам хороший шаблон из примера Blink without Delay в среде ArduinoIDE
     
  6. Limoney

    Limoney Гик

    Код (C++):

    int rotationOld;
    unsigned long currentTime;
    unsigned long loopTime;
    void setup()
    {
      pinMode(latchPin, OUTPUT);
      pinMode(clockPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
      pinMode(ledPin9, OUTPUT);
      pinMode(POT_PIN, INPUT);
      Serial.begin(9600);

      loopTime = millis();       // считываем время, прошедшее с момента запуска программы

    }

    void loop()
    {
      int rotation, c;
      rotationOld = analogRead(POT_PIN);


      currentTime = millis();     // считываем время, прошедшее с момента запуска программы
      if (currentTime >= (loopTime + 2000)) { // сравниваем текущий таймер с переменной loopTime + 2 секунды

        loopTime = currentTime;   // в loopTime записываем новое значение
        rotation = analogRead(POT_PIN);

        if (rotationOld != rotation) {
          // Ваше условие с переменной с

        }

      }
     
  7. Stets

    Stets Нуб

    Спасибо) буду пробовать