How to create states?? In arduino

Hello all
I am very new at this and this question might sound silly but I am confuse at this point. I am working with opencv processing and arduino… In If I take the example of the knob and the servo this is the example code:

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
 
int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
void loop() 
{ 
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023) 
  val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180) 
  myservo.write(val);                  // sets the servo position according to the scaled value 
  delay(15);                           // waits for the servo to get there 
}

How can I say if val goes from 0 to 179 in less than 1 second myservo.write 0 degrees?? I want to work with states cause it is what I need for my program in processing so if anyone can explain how to work it out with the millis() cause I have tried but I am such an amateur that I just cant figure it out… SO if anyone can explain me with an example I would really appreciate it :slight_smile:
Please help!
Thanks!

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
 
int potpin = 0;  // analog pin used to connect the potentiometer
int val = 0;    // variable to read the value from the analog pin 
int prevVal = 0;  

long before = 0, after = 0;

void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
void loop() 
{ 
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023) 
  val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180) 
   
  if (val == 0) {
     before = millis();
     prevVal = val; }

  if (val == 179) {
    after = millis();
    if ((after-before) < 1000) myservo.write(0); 
    }  

  myservo.write(val);                  // sets the servo position according to the scaled value 
  delay(15);                           // waits for the servo to get there 
}

Something like this?
I’m sure the conditions are not exactly what you pretend,but based on what you explained, should be enough to get you moving.