Programación:
int TRIG = 10;
int ECO = 9;
int led1PWM = 7;
int led2PWM = 6;
int led3PWM = 5;
int led4PWM = 4;
int pot1;
int pot2;
float distancia;
float tiempo;
int resu;
int res;
int operacion;
int a;
void setup() {
Serial.begin(9600);
pinMode(10,OUTPUT);
pinMode(9,INPUT);
pinMode(led1PWM, OUTPUT);
pinMode(led2PWM, OUTPUT);
pinMode(led3PWM, OUTPUT);
pinMode(led4PWM, OUTPUT);
}
void loop() {
digitalWrite(10, LOW);
delayMicroseconds(2);
digitalWrite(10, HIGH);
delayMicroseconds(10);
digitalWrite(10, LOW);
tiempo = pulseIn(9,HIGH);
distancia =tiempo/58.30;
Serial.print(distancia);
Serial.println(" cm");
digitalWrite(led1PWM, LOW);
digitalWrite(led2PWM,LOW);
digitalWrite(led3PWM, LOW);
digitalWrite(led4PWM,LOW);
pot1 = analogRead(0);
resu = map(pot1, 0, 1023, 0, 30);
pot2 = analogRead(1);
res = map(pot2, 0, 1023, 50, 200);
Serial.print("MINIMO");
Serial.println(resu);
Serial.print("MAXIMO");
Serial.println(res);
operacion =(res-resu);
a=operacion/4;
if(distancia >= resu && distancia <= res)
{
if(distancia >= resu && distancia <= (resu+a) ){
Serial.println(" hola 1");
digitalWrite(led1PWM,HIGH);
digitalWrite(led2PWM,LOW);
digitalWrite(led3PWM, LOW);
digitalWrite(led4PWM,LOW);
}
if(distancia >= (resu+a) && distancia <= (resu+(2*a)) )
{
Serial.println(" LED 2");
digitalWrite(led1PWM, HIGH);
digitalWrite(led2PWM, HIGH);
digitalWrite(led3PWM, LOW);
digitalWrite(led4PWM,LOW);
}
if(distancia >= (resu+(2*a)) && distancia <= (resu+(3*a)))
{
Serial.println(" LED 3");
digitalWrite(led1PWM, HIGH);
digitalWrite(led2PWM, HIGH);
digitalWrite(led3PWM, HIGH);
digitalWrite(led4PWM,LOW);
}
if(distancia >= (resu+(3*a)) && distancia <= res)
{
Serial.println(" LED 4");
digitalWrite(led1PWM, HIGH);
digitalWrite(led2PWM, HIGH);
digitalWrite(led3PWM, HIGH);
digitalWrite(led4PWM,HIGH);
}
}
delay(500);
}
Simulación del Proyecto: