2014-12-04 2 views
0

Я пытаюсь записать код arduino после обнаружения изменения значения аналогового считывания потенциометра для выполнения функции.Обнаружение изменения в потенциометре 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 statments для сравнения, если значение попадает в определенный кронштейн является единственным способом сделать это.

ответ

2

Сохраните значение в переменной, объявленной вне цикла.

#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();   
    } 

} 
Смежные вопросы