LAS LUCES DEL CARRO DE TUNNING (PROGRAMACIÓN EN ARDUINO)



DESCRIPCIÓN DEL EJERCICIO
Un carro de Tunnig tiene luces de neón en la parte de abajo, éste es la sensación de la feria. El piloto controla las luces (tres Leds) por medio de un potenciómetro al lado de la palanca de cambios, él tiene tres opciones de luces de acuerdo al valor de lectura del potenciómetro que va de 0 a 1023:

·         0 - 350           Intermitencia de los 3 LED a 100ms  
·         351 - 700       Intermitencia de los 3 LED a 500ms  
·         701 - 1023    Intermitencia de los 3 LED a 1000ms
PROCESO
Para este proyecto, el diagrama que se utilizara, se muestra en la siguiente imagen:
Se conectan tres leds con sus respectivas resistencias de 220 ohms en sus polos negativos y que van para la tierra (Ground) del Arduino; los polos positivos de los leds, están conectados a los pines 2,3 y 4 del Arduino.
La resistencia variable o sea el potenciómetro, el cual servirá de control para saber la duración de la intermitencia de los tres leds. Este elemento se conecta de la siguiente manera tomando como referencia la cabeza del Potenciómetro.
  • ·         La primera pata va para el negativo común del Arduino.
  • ·         La segunda es la salida de la resistencia, este lo conectamos a la entrada analógica A0 del Arduino.
  • ·         La tercera pata, lo conectamos a los 5V del microcontrolador (Arduino).



CODIGO DEL PROGRAMA
int valorpotenciometro=0;
void setup() {
  pinMode(A0,INPUT);
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  valorpotenciometro=analogRead(A0);
  if(valorpotenciometro<=350){
    delay(100);
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    delay(100);
  }
  else if(valorpotenciometro<=700){
    delay(500);
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    delay(500);
  }
  else{
    delay(1000);
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    delay(1000);
  }
  Serial.println(valorpotenciometro);
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
}
SI NECESITA UNA EXPLICACION PASO A PASO, PUEDE VER EL SIGUIENTE VÍDEO

EXPLICACION DE CADA BLOQUE DE CODIGO
int valorpotenciometro=0; (se inicializa la variable que guardara el valor dado por el potenciómetro, cabe mencionar que el rango de valores que será leído es de 0 a 1023)
PROCEDIMIENTO SETUP()
void setup() {
  pinMode(A0,INPUT); (se declara al pin A0 como entrada, ya que ahí está el potenciómetro)
  (se declaran los pines 2,3 y 4 como salidas, porque ahí están conectados los tres leds)
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  Serial.begin(9600); (preparar el monitor serial para conocer el valor dado a través de la pantalla.
}
FUNCION LOOP (FUNCION CICLICA)
void loop() {
  valorpotenciometro=analogRead(A0); (se hace la lectura del valor del potenciómetro)
  if(valorpotenciometro<=350){ (si el valor esta entre 0 y 350..)
(la intermitencia de los tres leds va a ser por cada 100 milisegundos)
    delay(100);
(en esta parte se encienden los tres leds)
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    delay(100);
  }
  else if(valorpotenciometro<=700){ (si el valor esta entre 351 y 700…)
(la intermitencia de los tres leds va a ser por cada 500 milisegundos)
    delay(500);
(en esta parte se encienden los tres leds)
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    delay(500);
  }
  else{ (si no se cumplen las dos condiciones anteriores, quiere decir que esta entre los 701 y 1023)
(entonces la intermitencia de los tres leds va a ser por cada mil milisegundos (1 segundo)
    delay(1000);
(en esta parte se encienden los tres leds)
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    delay(1000);
  }
  Serial.println(valorpotenciometro);(imprimimos a través del monitor serial el valor del potenciómetro)
(después de que ya se haya cumplido una las tres condiciones de arriba, después de transcurrido el tiempo según la condición cumplida, se apagan las tres leds)
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
}

Comentarios

Publicar un comentario

Entradas más populares de este blog

Como ser romántico nivel programador

Felicitaciones de cumpleaños para un programador [tomado de frasesparacumpleaños.com]

INDICADOR LUMINOSO DE VOLUMEN DE UN EQUIPO DE SONIDO (PROGRAMACIÓN EN ARDUINO)