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);
}
eres el mejor gracias
ResponderBorrar