【问题标题】:Detect change in Arduino potentiometer检测 Arduino 电位器的变化
【发布时间】:2014-12-04 21:04:52
【问题描述】:

我正在尝试在检测到电位计模拟读取值发生变化时编写我的 arduino 代码以执行功能。

我的问题是如何检测电位器值的变化,我像往常一样读取电位器,但我不知道如何比较它以查看它是否发生了变化。

我的读取电位器值的循环代码:

void loop()
{  
  val = analogRead(potpin);
        val = map(val, 0, 1023, 0, 179);
        Serial.println(val);
        delay(15);
        if (val >= 90)
        {     
          sendSMS5();
          delay(10000);
          switchOff();          
        }

}

我在想,如果值落入某个括号,则可能要比较一些 IF 语句是唯一的方法。

【问题讨论】:

    标签: arduino


    【解决方案1】:

    将值保存在循环外声明的变量中。

    #define TOLERANCE 10
    
    int oldVal = 0;
    
    void loop()
    {  
        val = analogRead(potpin);
        val = map(val, 0, 1023, 0, 179);
        Serial.println(val);
        delay(15);
    
        int diff = abs(val - oldVal);
    
        if(diff > TOLERANCE)
        {
            oldVal = val; // only save if the val has changed enough to avoid slowly drifting
            // and so on
        }     
    
        if (val >= 90)
        {     
            sendSMS5();
            delay(10000);
            switchOff();          
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多