Está en la página 1de 22

Sentencia if con Arduino, controla la ejecución

de tu código
Luis del Valle Hernández
Las sentencias condicionales if con Arduino son las más utilizadas
en programación de proyectos Maker. Sirven para que tu programa
haga una cosa u otra dependiendo de cada situación.

Imagínate la función loop() de un código de Arduino que se repite


indefinidamente dentro de nuestro programa. Es donde realmente
suceden las cosas. Se repite muy rápido y la velocidad depende
directamente del reloj de la CPU del microcontrolador.

Si hablamos de Arduino UNO su velocidad es de 20 MHz es decir,


20.000.000 de instrucciones por segundo. Y en un ESP8266 la
velocidad del reloj es 80 MHz (80.000.000 de instrucciones por
segundo).

Seguramente te estés preguntando, si se repite una y otra vez el


mismo código que está dentro de la función loop() ¿por qué
obtenemos resultados diferentes?

Pues en gran medida es debido a las sentencias condicionales if con


Arduino. En este tutorial aprenderás los siguientes conceptos:

 Sintaxis de la sentencia if else y else if


 Operadores de comparación (>, >=, <=, ==, !=)
 Operadores booleanos (||, &&, !)

Y por supuesto, aprenderás cómo utilizar la sentencia if con Arduino a


través de un caso práctico.

Saca la placa de la caja y comencemos con este tutorial.


Indice de contenidos
 1 if con Arduino material necesario
 2 Sintaxis de la sentencia if con Arduino
 3 Operadores de comparación en sentencias if con Arduino
 4 Ejemplo sentencia if con Arduino
 5 Operadores booleanos if con Arduino
 6 if else con Arduino
 7 Ejemplo sentencia if else con Arduino
 8 else if con Arduino
 9 Ejemplo sentencia else if con Arduino
 10 Conclusiones sentencia else if else con Arduino
 11 Recursos complementarios de sentencias if con Arduino

if con Arduino material necesario


Aunque todo esto lo veremos más adelante, en este tutorial con las
sentencias if else y Arduino necesitarás el siguiente material.

 Un Arduino UNO o derivado. Puede valer cualquier placa


compatible incluso un ESP8266.
 Una protoboard para conectar los componentes.
 Un potenciómetro da lo mismo el valor de la resistencia.
 Y cables para conectar todo.

El circuito que utilizaremos es muy sencillo. Sólo requiere de un


potenciómetro conectado a un pin analógico de la placa de Arduino. El
esquema eléctrico sería el siguiente.
Vamos a ver ahora la sintaxis que se esconde detrás de la sentencia if
else con Arduino.

Sintaxis de la sentencia if con Arduino


La sintaxis de la sentencia if con Arduino es muy sencilla.
Comenzamos escribiendo la palabra reservada if (en español se
traduce como si condicional). Luego entre paréntesis ponemos
la condición y por último abrimos y cerramos las llaves.

La condición es la que hará que se ejecute el código que hay entre las
llaves. Si es verdadera, el flujo del código de Arduino entrará dentro de
las llaves y ejecutará todo lo que hay dentro. Pero claro ¿qué es una
condición?

Imagínate que le dices a tu hijo, «si apruebas todas las asignaturas te


regalo una bicicleta». Eso sería una condición. Dentro de los
paréntesis irá la condición o sentencia condicional. Es algo que
puede ser evaluado como verdadero o falso (en inglés
es true o false).
Si tu hijo aprueba todas las asignaturas es verdadero (true) y por lo
tanto tiene una bicicleta. Si tu hijo no aprueba todas las asignaturas es
falso (false) y por lo tanto se queda sin bicicleta.

Estas condiciones se llaman booleanas debido al gran matemático


inglés George Boole creador de la lógica booleana. Con esta lógica
sólo hay dos estados posibles 0 o 1 que equivalen a falso (false) y
verdadero (true).

Vale, tenemos claro que una sentencia if con Arduino nos permite


ejecutar un código dependiendo de una condición. Ahora vamos a ver
cómo podemos hacer condicionales con los operadores de
comparación.

Operadores de comparación en
sentencias if con Arduino
Realmente, para que algo sea verdadero o falso necesitamos
compararlo con algo. Lo típico es utilizar la sentencia condicional if con
Arduino con números pero se pueden utilizar otro tipo de datos.

Podemos comparar temperatura, presión atmosférica, radiación


ultravioleta, tiempo, intensidad, voltaje, nivel de agua y cualquier
magnitud susceptible de ser medida.

Algo que creo que todos entendemos es la temperatura. Por ejemplo,


podemos escribir un código donde dependiendo de la temperatura
mueva un servomotor que activa un ventilador.
En este caso estamos diciendo que siempre que la temperatura sea
mayor que 25, mueva un servomotor. Pero también podríamos haber
programado si la temperatura es menor que 30 o si es mayor o igual
que 25.

Más o menos creo que vas pillando donde quiero llegar.

Todo lo expuesto anteriormente son comparaciones. Lo único que


hacemos es comparar dos valores y evaluamos si es verdadero o
falso. Para poder comparar se utilizan los operadores de
comparación.

Con la sentencia if con Arduino se pueden utilizar 6 operadores de


comparación:

 > Mayor que


 < Menor que
 >= Mayor o igual que
 <= Menor o igual que
 == Igual a
 != Diferente a

Estoy seguro que más de un operador de comparación te suena. Se


suelen utilizar para expresar fórmulas matemáticas.

Los 4 primeros (mayor que, menor que, mayor o igual que o menor o
igual que) son bastante explícitos. Sin embargo, los dos últimos (igual
a y diferente a) requieren de una pequeña explicación.

Vamos a ver algunos ejemplos de cada uno de ellos.

Operador de comparación mayor que (>)


Siempre que el número a la izquierda sea mayor que el número a la
derecha la condición de la sentencia if con Arduino es verdadera. En
caso contrario es falsa.

 50>10 -> verdadero


 15>80 -> falso

Operador de comparación menor que (<)


Siempre que el número a la izquierda sea menor que el número a la
derecha la condición de la sentencia if con Arduino es verdadera. En
caso contrario es falsa.

 10<50 -> verdadero


 80<15 -> falso

Operador de comparación mayor o igual que (>=)


Siempre que el número a la izquierda sea mayor o igual que el número
a la derecha la condición de la sentencia if con Arduino es verdadera.
En caso contrario es falsa.

 50>=50 -> verdadero


 50>=49 -> verdadero
 15>=90 -> falso

Operador de comparación menor o igual que (<=)


Siempre que el número a la izquierda sea menor o igual que el
número a la derecha la condición de la sentencia if con Arduino es
verdadera. En caso contrario es falsa.

 50<=50 -> verdadero


 49<=50 -> verdadero
 90<=15 -> falso

Operador de comparación igual a (==)


Siempre que el número a la izquierda sea igual que el número a la
derecha la condición de la sentencia if con Arduino es verdadera. En
caso contrario es falsa.

 20==20 -> verdadero


 15==20 -> falso

Fíjate en el símbolo del operador igual a (==) ¿por qué se usa un


doble signo igual?¿hace falta verificar dos veces que son iguales? La
respuesta es más sencilla de lo que parece.

El signo igual ya tiene una función, la de asignación. Cuando


asignamos un valor a una variable por ejemplo. Se utiliza el doble
signo igual como comparador de igualdad para no confundir al
compilador ya que de otra forma, no sabría si estamos comparando o
estamos asignando un valor.

Operador de comparación diferente a (!=)


Siempre que el número a la izquierda sea diferente que el número a la
derecha la condición de la sentencia if con Arduino es verdadera. En
caso contrario es falsa.

 20!=10 -> verdadero


 10!=10 -> falso

Este operador de comparación es el contrario de igual a.

 Aunque en los ejemplos estoy utilizando números, en las condiciones


de las sentencias if con Arduino también puedes utilizar variables
como veremos en los ejemplos que vienen a continuación.
Con esto ya tenemos todo lo necesario para empezar a utilizar la
sentencia if con Arduino. Vamos a ver un ejemplo muy sencillo.

Ejemplo sentencia if con Arduino


En este ejemplo vamos a utiliza la sentencia if con Arduino utilizando
el esquema eléctrico del potenciómetro que hemos visto al principio de
este tutorial. La idea es poder mostrar por el monitor serie cuando el
valor analógico supera un valor.

Te recuerdo que el pin analógico tiene un rango de valores que va de


0 a 1023 en un Arduino UNO. Cuando a la entrada tenemos
0V, analogRead devuelve 0. Cuando a la entrada tenemos
5V, analogRead devuelve 1023.

El código tiene que ser capaz de mostrar un texto en el monitor serie


cuando supere los 300.

1 // Variable con pin analogico

2 const byte pinAnalogico = A0;


3  

4 void setup() {

5   // Iniciar comunicación serie

6   Serial.begin(9600);

7 }

8  

9 void loop() {

10   // Leer pin analogico

11   int valor = analogRead(pinAnalogico);

12  

13   // Mostrar valor pin analógico

14   Serial.println(valor);

15  

16   // Sentencia if con Arduino

17   if (valor > 300) {

18     // Mostrar texto por el monitor serie

19     Serial.println("Valor superado");

20   }

21   // Retardo de 100 ms

22   delay(100);

23 }
El código comienza declarando una variable constante del
tipo byte que se llama pinAnalogico. Esta variable contiene el pin
anlógico donde tenemos conectado el potenciómetro.

En la función setup() iniciamos la comunicación serie


con Serial.begin().

En la función loop() lo primero que debes hacer es leer el pin


analógico con la función analogRead. El resultado lo almacenas en la
variable valor del tipo int. Este valor lo muestras por el monitor serie
con la función Serial.println().

Luego comienza la declaración de la sentencia if con Arduino. Como


hemos visto, se pone la palabra reservada if y a continuación apertura
y cierre de paréntesis. Dentro de los paréntesis va la condición.
Si queremos saber si el valor del pin analógico es mayor que 300
utilizamos el operador de comparación mayor que (>). A la izquierda
tienes el valor que quieres evaluar y a la derecha el valor umbral que
determina la condición.

A continuación abre y cierra llaves y dentro va el código que se


ejecutará si la condición del if con Arduino es verdadera. En este caso
utiliza la sentencia Serial.println() para mostrar por el monitor serie un
texto (da lo mismo el que sea).

Por último pon un delay de 100 milisegundos para que podamos


apreciar cuando escribe en el monitor serie y cuando no.

Ahora, si cargas el código a la placa verás como aparece el valor del


pin analógico y siempre que esté por encima de 300, mostrará el
texto Valor superado en el monitor serie.

A sido sencillo ¿verdad? Prueba con diferentes operadores de


comparación y mira cuando aparece el texto en el monitor serie.

Ahora piensa cómo lo harías si lo que quieres es que se ejecute el


código cuando está entre dos valores. Por ejemplo, si el valor está
entre 300 y 500 que muestre en el monitor serie un texto.

Con solo la sentencia if con Arduino no podrás hacerlo. Para ello


necesitas los operadores booleanos.

Operadores booleanos if con Arduino


Un operador booleano nos permite hacer combinaciones entre
condiciones dentro de un if en Arduino. Esta herramienta de
programación es muy potente y se utiliza en muchos casos.

Existen 3 operadores booleanos

 || or (0)
 && and (y)
 ! not (no)

Como ya he dicho sirven para combinar condiciones. Por ejemplo,


puedes saber si el valor obtenido de analogRead está entre 300 y 500.
Es algo así como cuando pulsas dos teclas de tu teclado. Si pulsas la
tecla c escribe en un documento esa letra por ejemplo. Pero si pulsas
la tecla control (Ctrl) y la tecla c lo que haces es copiar lo que tengas
seleccionado. Más o menos es algo parecido.

Vamos a ver cada uno de estos operadores booleanos con ejemplos


para que así lo entiendas mejor.

Operador booleano or (||)


En español se puede traducir como «o esto o lo otro». Se representa
con dos líneas verticales (||) que las encuentras en la tecla 1 del
teclado. Para utilizarla tienes que pulsar primero Alt Gr y luego la tecla
1.

Este operador hace que la condición del if con Arduino sea cierta
si se cumple alguna de las dos o varias condiciones. Por ejemplo,
si tenemos este código

Estamos diciendo que siempre que el valor sea mayor que 300 o que
el valor sea menor que 200, muestre un texto por el monitor serie.
Esto quiere decir que siempre que el valor esté entre 201 y 299 no
mostrará ningún texto.

En el resto de los casos, mostrará el texto en el monitor serie.


Operador booleano and (&&)
En español se puede traducir por «esto y aquello». Se representa con
dos símbolos ampersand (&&) que se encuentra en la tecla 6 del
teclado. Pulsando mayúsculas y 6 podrás utilizarlo en tus códigos.

Este operador hace que la condición del if con Arduino sea cierta
sólo si se cumplen las dos o varias condiciones. Por ejemplo, si
tenemos el código

Quiere decir que sólo será cierta si el valor es mayor que 300 y el
valor es menor de 500. Esto nos da un rango de valores de entre 301
y 499 (no olvides que los símbolos > y < excluyen a los números a la
derecha).

Por lo tanto, sólo cuando se encuentre en ese rango mostrará el texto


en el monitor serie.

Operador booleano not (!)


En español se traduce como «no». Se representa con el signo de
admiración final (!) situado en la tecla 1. Lo puedes utilizar pulsando la
tecla de mayúsculas más la tecla 1.

Lo que hace este operador es algo extraño. Si una expresión es


verdadera devuelve falso y si es falsa devuelve verdadero.
Para entender el siguiente ejemplo también tienes que entender qué
es verdadero y qué es falso. No dejan de ser dos estados, como el
código binario del que te he hablado anteriormente. Podemos tener un
0 (false) o un 1 (true).

Pero la realidad es que existen más números. La pregunta es ¿2 es


verdadero o falso? Según explico en el curso de Arduino, los tipos de
datos booleanos son siempre falsos siempre y cuando valga 0. En
caso contrario es verdadero. Por lo tanto 2 y cualquier otro número
son verdaderos si se evalúan en una condición. Esto es sólo a modo
de recordatorio.

En un pin digital también tenemos dos valores, LOW y HIGH. Si entras


dentro del código del core de Arduino, puedes comprobar que estas
dos palabras reservadas en realidad son dos constantes cuyo valor es
0 para LOW y 1 para HIGH.

Por lo tanto, si tenemos un pin digital conectado a un pulsador y a la


entrada hay 0V el estado será LOW. Si ese valor lo almacenamos en
una variable, podríamos evaluar su valor si es falso o verdadero en
una sentencia condicional if con Arduino.

Por ejemplo, nos puede servir para saber si un botón no está pulsado.
En su uso normal, cuando esté pulsado tendrá un estado HIGH que,
como hemos visto, es verdadero. Mientras que cuando no está
pulsado tiene un estado de LOW, falso.

Esta sería la manera que tendríamos de detectar si un


pulsador no está pulsado. En este caso, pasará dentro del if con
Arduino y ejecutará el código que hay dentro.
Otras consideraciones de los operadores
booleanos con un if de Arduino
Por último, quiero añadir que se pueden unir tantas condiciones como
queramos a un if con Arduino. Es conveniente, en la medida de lo
posible, no añadir muchas condicionales ya que esto haría que
nuestro código fuera poco legible.

También hay que destacar el uso del operador not (!) con otros
operadores de comparación. Por ejemplo, una misma expresión se
puede expresar de diferentes maneras gracias al operador not. Si
quieres saber si un número está entre 300 y 500 puedes utilizar estas
dos condiciones:

 (numero>=300 && numero<=500)


 !(numero<300 && numero>500)

Estas dos expresiones devuelven el mismo valor para el mismo


número.

Ahora vamos a continuar viendo cómo se puede ejecutar diferentes


trozos de código dependiendo de diferentes condiciones con if else en
Arduino.

if else con Arduino


Hasta ahora lo que hemos visto es que si cumple una condición
ejecuta el código que hay dentro de un if con Arduino. Pero ¿qué pasa
si tenemos más de una condición? Por ejemplo, si la temperatura es
mayor de 25 mueve el servomotor 135º, si es menor de 25 mueve el
servomotor 45º.

Con lo que sabemos hasta ahora, podríamos hacer dos if con Arduino.
No estaría mal pero hay una forma más óptima de hacerlo, utilizando
la sentencia condicional else con Arduino.

Else se puede traducir en español como «si no». Siempre va unido a


una sentencia condicional if de Arduino, nunca puede ir sólo. Por lo
tanto if else se traduciría como si se cumple la condición ejecuta el
código, si no ejecuta este otro código.

Es lógico pensar que cuando estamos evaluando la misma variable,


no puede tener dos valores. En este caso, la temperatura o es mayor
que 25 o es menor o igual que 25, no queda otra.

La mayor ventaja de utilizar if else con Arduino es que haremos


nuestro código más eficiente. En el primer caso (con dos if), siempre
se evaluarán las dos condiciones aunque una de ellas sea cierta.

Si por ejemplo la temperatura es 27º, cuando llegue al primer if, al ser


la temperatura mayor que 25 ejecutará el código que hay dentro.
Cuando termine, saldrá del if e irá al siguiente if. Comprobará si la
temperatura es menor o igual que 25 algo absurdo si no se ha
modificado nada dentro del primer if.

Aquí es donde entra en juego if else.


Se sustituye el segundo if con la condición por un else. Esta sentencia
condicional no tienen ninguna condición es decir, si no se cumple la
condición o condiciones anteriores, siempre entrará por el else.

La ventaja es que si se cumple la primera condición, dejará de


comprobar el resto de condiciones. A esta estructura de programación
se le llama if anidados.

Mucho ojo con este tipo de estructuras ya que nos pueden llevar a lo
que se conoce como código espagueti. Se trata de un código tan
ofuscado que parece un plato de espagueti.

Vamos a verlo con un ejemplo.

Ejemplo sentencia if else con Arduino


Vamos a seguir con el mismo esquema eléctrico del potenciómetro. La
idea con este ejercicio práctico es encender el LED integrado en la
placa de Arduino (está conectado al pin 13) cuando el valor analógico
supere los 500. En caso contrario, que apague el LED.

El código sería el siguiente.

1 // Variable con pin analogico

2 const byte pinAnalogico = A0;

3 // Variable pin LED

4 const byte pinLed = 13;


5  

6 void setup() {

7   // Iniciar comunicación serie

8   Serial.begin(9600);

9  

10   // Modo del pin

11   pinMode(pinLed, OUTPUT);

12 }

13  

14 void loop() {

15   // Leer pin analogico

16   int valor = analogRead(pinAnalogico);

17  

18   // Mostrar valor pin analógico

19   Serial.println(valor);

20  

21   // Sentencia if con Arduino

22   if (valor > 500) {

23     // Encender LED

24     digitalWrite(pinLed, HIGH);

25   }else{

26     // Apagar LED

27     digitalWrite(pinLed, LOW);

28   }

29  

30   // Retardo de 100 ms

31   delay(100);

32 }
La primera parte del código es la declaración de variables.
Necesitamos dos para almacenar el número de los pines. Son
constantes del tipo byte.

La variable pinAnalogico almacena el pin analógico donde está


conectado el potenciómetro, el pin A0.
La variable pinLed almacena el pin digital donde está conectado el
LED, el pin 13.

En la función setup() iniciamos la comunicación serie


con Serial.begin() y ponemos en modo OUTPUT el pin del LED.

Dentro de la función loop() leemos el pin analógico


con analogRead() y lo almacenamos en la variable del tipo int valor.
Luego la mostramos por el monitor serie.

En la siguiente línea empieza la sentencia condicional if else con


Arduino. Como siempre, ponemos la palabra if y entre paréntesis la
condición. En este caso es si valor (es el valor obtenido del pin
analógico) es mayor que 500, entonces entra dentro del if.

Entre llaves ponemos el código que queremos que se ejecute cuando


se cumpla la condición. En este caso que se encienda el LED con la
sentencia digitalWrite().

Luego ponemos el else y entre llaves el código que queremos que se


ejecute. En este caso que se apague el LED con la
sentencia digitalWrite().

Por último un delay de 100 ms para que podamos seguir lo que se


muestra por el monitor serie.

Si cargas el código a la placa y juegas con el potenciómetro verás


como se enciende y apaga cuando pasas de 500 o bajas de 500.

Lo último que nos queda por ver es si queremos tener 3 o más


sentencias condicionales if else anidadas. Eso lo podemos hacer con
else if, otra forma de escribir un if con Arduino.

else if con Arduino


La sentencia condicional else if con Arduino nos va a permitir tener 2 o
más condiciones dentro de un bloque de if anidados.

La sentencia condicional else es muy útil en los casos donde solo


tengamos dos posibilidades pero qué pasa si por ejemplo quieres que
cuando el valor del potenciómetro sea mayor que 800 parpadee el
LED. Cuando esté entre 501 y 800, se quede encendido y cuando sea
menor o igual que 500, se apague.

Podemos optar por poner todo lleno de if sin anidar es decir,


sentencias if separadas. Ya hemos visto que esa no es una buena
idea cuando estamos trabajando con la misma variable.

La sentencia else se nos queda corta porque no permite poner una


condición.

Pero existe la sentencia else if que, como ocurre con la sentencia else,
siempre va unida a un if con Arduino. Se podría traducir como si no ha
cumplido lo anterior, comprueba si se cumple esta otra.

Realmente es como si fuera otro if pero al poner la palabra reservada


else delante, estamos uniendo todos los if. La sintaxis es muy similar.

Primero ponemos el else, luego if y entre paréntesis la condición.


Entre las llaves el código que queremos que se ejecute cuando se
cumple la condición.

Por ejemplo, este sería el código si queremos controlar 3 rangos en un


pin analógico.
El primer if comprueba si el valor del pin analógico es mayor que 800.
Como sólo tiene el símbolo mayor que, empezará en 801. De 801 a
1023 ejecutará el código que hay dentro es decir, hará parpadear el
LED.

La segunda condición empieza con else if y luego entre paréntesis la


condición. Siempre que el valor analógico sea menor o igual que 800 o
mayor que 500 (empezará en el 501) encenderá el LED y lo dejará fijo.

Por último, si no se cumplen las dos condiciones anteriores, entrará


dentro del else y apagará el LED.

Vuelvo a repetir que cuando se anidan varios if, si uno de ellos cumple
con la condición el resto de if no se ejecutarán. Esto hará que nuestro
código se más eficiente.

Ejemplo sentencia else if con Arduino


Para terminar vamos con el ejemplo. Sólo tienes que sustituir los if que
hemos visto en el ejemplo anterior por esta serie de if anidados.
1   // Sentencia if con Arduino

2   if (valor > 800) {

3     // Parpadear LED

4     digitalWrite(pinLed, HIGH);

5     delay(500);

6     digitalWrite(pinLed, LOW);

7   } else if (valor <= 800 && valor >500){

8     // Encender LED

9     digitalWrite(pinLed, HIGH);

10   }else{

11     // Apagar LED

12     digitalWrite(pinLed, LOW);

13   }
El código completo quedaría de la siguiente manera.

1 // Variable con pin analogico

2 const byte pinAnalogico = A0;

3 // Variable pin LED

4 const byte pinLed = 13;

5  

6 void setup() {

7   // Iniciar comunicación serie

8   Serial.begin(9600);

9  

10   // Modo del pin

11   pinMode(pinLed, OUTPUT);

12 }
13  

14 void loop() {

15   // Leer pin analogico

16   int valor = analogRead(pinAnalogico);

17  

18   // Motrar valor pin analógico

19   Serial.println(valor);

20  

21   // Sentencia if con Arduino

22   if (valor > 800) {

23     // Parpadear LED

24     digitalWrite(pinLed, HIGH);

25     delay(500);

26     digitalWrite(pinLed, LOW);

27   } else if (valor <= 800 && valor >500){

28     // Encender LED

29     digitalWrite(pinLed, HIGH);

30   }else{

31     // Apagar LED

32     digitalWrite(pinLed, LOW);

33   }

34  

35   // Retardo de 100 ms

36   delay(100);

37 }
Prueba a cargarlo y a jugar con el potenciómetro. Verás como pasa de
estar apagado a encendido y por último a parpadear.

Conclusiones sentencia else if else con


Arduino
En este tutorial práctico hemos visto una de las herramientas más
potentes que tienen los lenguajes de programación, las sentencias
else if else con Arduino.
Has podido comprobar que, aunque la función loop() se repita una y
otra vez muy rápidamente e indefinidamente, podemos cambiar el
resultado utilizando las sentencia condicionales if else con Arduino.

Es una herramienta más dentro de la programación pero no es la


única. Esto te puede servir para controlar la temperatura o el nivel de
agua con Arduino.

Además, funciona de la misma forma ya sea en otra placa de Arduino


como en un ESP8266. Es más, en todos los lenguajes de
programación existen las sentencias if, if else y else if.

Dominando las sentencias condicionales en Arduino dominarás la


ejecución de tu programa.

Si tienes dudas sobre el uso de las sentencias if con Arduino puedes


dejar un comentario aquí abajo.

También podría gustarte