Está en la página 1de 6

¿Cómo se toma una

decisión en Arduino?
Curso de Arduino desde
Cero con Tinkercad

¿Cómo se toma una decisión


En Arduino?

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, 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.

if es una instrucción que se utiliza para comprobar si una determinada


condición se ha alcanzado, como por ejemplo averiguar si un valor analógico
está por encima de un cierto número. Si la condición es TRUE (cierta) se
ejecutan una serie de declaraciones (operaciones) que se escriben dentro de
llaves. Si es FALSE (la condición no se cumple) el programa se salta las llaves
y no ejecuta las operaciones que están dentro de ellas.

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.

Sintax de condicional If

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

Autor: Konrad Peschka // Instagram: @konredus 1


Curso de Arduino desde
Cero con Tinkercad

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,
tradicionalmente solemos utilizar el término igual, con números, pero también
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.

Condicional If con operadores de comparación

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.

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.

Autor: Konrad Peschka // Instagram: @konredus 2


Curso de Arduino desde
Cero con Tinkercad

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


comparación:

• x == y (x es igual a y)
• x! = y (x es diferente de y)
• x<y (x es menor que y)
• x>y (x es mayor que y)
• x <= y (x es menor o igual que y)
• x >= y (x es mayor o igual que y)

Advertencia:

Tenga cuidado con el uso accidental del signo igual solo (por ejemplo, if
(x = 10). Un solo signo igual es el operador de asignación y establece que x =
10 (pone el valor 10 en la variable x).

Use en su lugar, el doble signo igual (por ejemplo, if (x == ), que es el


operador de comparación y comprueba si x es igual a 10 o no. Esta última
instrucción solo es cierta si x es igual a 10, pero la primera instrucción será
siempre cierta.

IMPORTANTE: recordemos que el pin 13 NO se


puede utilizar como INPUT ya que este pin ya tiene un
led asociado de forma permanente (soldado en la
placa) como OUTPUT. Se puede utilizar cualquier otro
pin del Arduino, incluso los analógicos!

Autor: Konrad Peschka // Instagram: @konredus 3


Curso de Arduino desde
Cero con Tinkercad

Circuito Propuesto

El circuito propuesto consta de dos pulsadores que encienden dos leds,


cada pulsador encenderá un led, para ello usaremos:

• 1 Arduino uno
• 2 Diodos Leds color rojo, y verde
• 2 Resistencias 330Ω
• 1 Protoboard
• 2 Pulsadores

Encendido condicional de LEds

Autor: Konrad Peschka // Instagram: @konredus 4


Curso de Arduino desde
Cero con Tinkercad

Programa: Encendido condicional de LEds


const int led_rojo = 3;
const int led_verde = 4; //Declarar Variables y Constantes
const int pulsador1 = 7;
const int pulsador2 = 8; //en este caso variables tipo entero
int lectura;
int lectura2;

void setup()
{
pinMode(led_rojo, OUTPUT); // Asignación de puertos como entrada/salida
pinMode(led_verde, OUTPUT);
pinMode(pulsador1, INPUT_PULLUP); //Se utiliza la resistencia
pinMode(pulsador2, INPUT_PULLUP); // interna de Pull_Up
}

void loop()
{
lectura = digitalRead(pulsador1); //Se lee el estado del pulsador1
lectura2 = digitalRead(pulsador2); //Se lee el estado del pulsador2

if (lectura == LOW) // Se utiliza el condicional IF con el operador


{digitalWrite(led_rojo, HIGH); //de comparación “==”
delay(500); // Si el pulsador 1 está presionado
digitalWrite(led_rojo, LOW); //enciende led rojo por 500mSeg
}

if (lectura2 == LOW) // Se utiliza el condicional IF con el operador


{digitalWrite(led_verde, HIGH); //de comparación “==”
delay(500); // Si el pulsador 1 está presionado
digitalWrite(led_verde, LOW); //enciende led verde por 500mSeg
}

Autor: Konrad Peschka // Instagram: @konredus 5

También podría gustarte