#include <Stepper.h>
#define sensor 7
#define modeBtn 6
#define led1 5
#define led2 4
#define led3 3
int stepState = 0;
int modeState = 0;
int Rval = 50;
int stepsPerRevolution = 200;
Stepper Stepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
pinMode(sensor, INPUT_PULLUP);
pinMode(modeBtn, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
Serial.begin(9600);
while(digitalRead(sensor)==HIGH){
Stepper.setSpeed(20);
Stepper.step(10);
}
}
void loop() {
int lecturaPot = analogRead(A2);
int val = map(lecturaPot, 0, 1023, 0, 240);
val = val + Rval;
/*if (stepState >= stepsPerRevolution*2){
val = 0;
stepState = 0;
}*/
if(modeState==0){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
}
if(modeState==1){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
if (stepState == (stepsPerRevolution/10)){
Rval = random(25, 240);
}
}
if(modeState==2){
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
}
if(modeState==3){
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
}
if(digitalRead(modeBtn)==LOW){
modeState ++ ;
delay(250);
if(modeState > 3){
modeState = 0;
}
}
if(val > 0){
if (modeState == 0){
Stepper.setSpeed(val);
}
if (modeState == 1){
Stepper.setSpeed(Rval);
}
Stepper.step(10);
stepState ++ ;
if (stepState > stepsPerRevolution/10){
stepState = 0;
}
}
Serial.println(stepState);
}