#define pot 28
#define atraso 500
unsigned char bobinas[4]= {12, 13, 14, 15}; //12bmenos, 13bmais, 15amenos, 14amais
const unsigned int timestep = 5000;
unsigned char leds[4] = {2, 3, 4, 5}; //pinos onde leds estão conectados
int valor, qtd_led;
void setup(){
Serial1.begin(115200);
Serial1.print("Sentido horário");
for( int i = 0; i < 4; i++){
pinMode(leds[i], OUTPUT);
}
for(int i= 0; i< 4; i++){
pinMode(bobinas[i], OUTPUT);
analogReadResolution(12);
}
}
void loop() {
//Variaveis locais
int valor = analogRead(pot);
int qtd_led = 4;
int led_nivel = map(valor, 0, 2047, 0, qtd_led);
for(int i = 0; i < 4; i++){
if(valor >=202){
digitalWrite(bobinas[2], HIGH);
digitalWrite(bobinas[3], LOW);
digitalWrite(bobinas[1], HIGH);
digitalWrite(bobinas[0], LOW);
delayMicroseconds(timestep);
digitalWrite(bobinas[2], LOW);
digitalWrite(bobinas[3], HIGH);
digitalWrite(bobinas[1], HIGH);
digitalWrite(bobinas[0], LOW);
delayMicroseconds(timestep);
digitalWrite(bobinas[2], LOW);
digitalWrite(bobinas[3], HIGH);
digitalWrite(bobinas[1], LOW);
digitalWrite(bobinas[0], HIGH);
delayMicroseconds(timestep);
digitalWrite(bobinas[2], HIGH);
digitalWrite(bobinas[3], LOW);
digitalWrite(bobinas[1], LOW);
digitalWrite(bobinas[0], HIGH);
delayMicroseconds(timestep);
Serial1.print("Valor analogico: ");
Serial1.print(valor);
}
if(valor >= 2047){
digitalWrite(leds[4], HIGH);
delay(atraso);
digitalWrite(leds[4], LOW);
delay(atraso);
digitalWrite(leds[4], HIGH);
Serial1.print("Valor analogico: ");
Serial1.print(valor);
}else if(valor>=1023){
digitalWrite(leds[0], HIGH);
digitalWrite(leds[1], HIGH);
digitalWrite(leds[2], HIGH);
digitalWrite(leds[3], LOW);
Serial1.print("Valor analogico: ");
Serial1.print(valor);
}else if(valor>=409){
digitalWrite(leds[0], HIGH);
digitalWrite(leds[1], HIGH);
digitalWrite(leds[2], LOW);
digitalWrite(leds[3], LOW);
Serial1.print("Valor analogico: ");
Serial1.print(valor);
}else if(valor>=202){
digitalWrite(leds[0], HIGH);
digitalWrite(leds[1], LOW);
digitalWrite(leds[2], LOW);
digitalWrite(leds[3], LOW);
Serial1.print("Valor analogico: ");
Serial1.print(valor);
}else if(valor<202){
digitalWrite(leds[0], LOW);
digitalWrite(leds[1], LOW);
digitalWrite(leds[2], LOW);
digitalWrite(leds[3], LOW);
Serial1.print("Valor analogico: ");
Serial1.print(valor);
}
}
}