Tabla de contenidos
1. Operadores matemáticos básicos 2. La función cuadrado 3. La función raíz cuadrada 4. La función potencia 5. Las funciones min y max 6. El operador módulo 7. La función valor absoluto 8. Matemáticas más avanzadas En este artículo, aprenderemos a realizar cálculos matemáticos en un programa Arduino. Primero veremos los operadores matemáticos básicos, seguidos de un repaso del orden de las operaciones. Luego veremos cómo realizar operaciones matemáticas más avanzadas como trigonometría, cuadrados, raíces cuadradas, potencias y min/max.OPERADORES MATEMÁTICOS BÁSICOS
Los operadores matemáticos básicos son el signo más (+) para sumar, el signo menos (-) para restar, un asterisco (*) para multiplicar y una barra inclinada (/) para dividir.
Cuando escribimos una expresión matemática o
declaramos una variable, utilizamos lo que se llama operador de asignación. El
operador de asignación es el signo de igualdad (=). El operador de asignación
se utiliza para asignar un valor a una variable. Por ejemplo, cuando declaramos
una variable entera llamada x y la hacemos igual a uno, así:
int x = 1;Esto le dice al programa que almacene el entero 1 en la variable x.
Para realizar la suma, utilizamos el operador de adición (+):
int x = 2 + 1;Esto almacenará el resultado de 2 + 1 (tres), en la variable x.
La resta se realiza con el operador de sustracción (-):
int x = 2 – 1;Esto almacenará el resultado de 2 – 1 (uno) en la variable x.
La multiplicación se realiza con el operador de multiplicación (*):
int x = 2 * 4;Esto almacenará el resultado
de 2 * 4 (ocho) en la variable x
La división se realiza con el operador de división (/):
int x = 4 / 2;Esto almacenará el resultado de 4 / 2 (dos) en la variable x.
También podemos hacer cálculos con variables. Por ejemplo, en lugar de utilizar números enteros en los ejemplos anteriores, podríamos utilizar las variables a y b:
int x = a / b;Ahora que estamos hablando de la división, hay una peculiaridad importante que hay que tener en cuenta al dividir números. Echa un vistazo al código siguiente, donde dividimos cinco entre dos:
void setup() {
Serial.begin(9600);
int x = 5 / 2;
Serial.print(x);
}La respuesta debería ser 2.5, pero si ejecutas el código se imprimirá un número dos en el monitor de serie. Esto sucede porque x fue declarado con el tipo de datos entero. Int sólo funciona con números enteros, por lo que 2,5 se redondea a 2,0.
Si declaramos x como un float y añadimos decimales a los números enteros así:
float x = 5.0 / 2.0;La respuesta correcta (2,5) debe imprimirse en el monitor serie.
ORDEN DE LAS OPERACIONES
Cuando se utilizan expresiones con más de un operador como esta
int x = 5 + 6 * 2 – 1 / 3;El orden de las operaciones es importante porque el resultado será diferente según las operaciones que se realicen primero. Por ejemplo, si se suman primero 5 y 6, el resultado es 21,7. Pero si se multiplican primero 6 y 2, el resultado es 16,7.
Entonces, ¿cuál es el orden correcto? Es PEMDAS:
- Paréntesis
- Exponentes
- Multiplicación
- División
- Suma
- Sustracción
Las
operaciones dentro de los paréntesis se ejecutan primero, luego los exponentes, l
uego la multiplicación y la división y finalmente la suma y la resta.
Dado que
las matemáticas dentro de los paréntesis se ejecutan primero, pueden utilizarse
para controlar el orden de las operaciones.
FUNCIONES DE TRIGONOMETRÍA
El Arduino también puede realizar operaciones matemáticas más avanzadas, como la trigonometría. El Arduino ha incorporado funciones para calcular el coseno, el seno y la tangente de un ángulo. La sintaxis de cada función es la siguiente:
float a = cos(b);
float a = sin(b);
float a = tan(b);LA FUNCIÓN CUADRADO El Arduino también tiene una función para calcular el cuadrado de un número. Esta función calcula y al cuadrado (y2):
float x = sq(y);LA FUNCIÓN RAÍZ CUADRADA
Para
calcular la raíz cuadrada de un número, utiliza la función raíz cuadrada. Esto
calcula la raíz cuadrada de y (√y):
float x = sqrt(y); int x = pow(base, exponent);int x = pow(10, 8);int x = min(a, b); int x = max(a, b); sensVal = min(temp, 100); int x = a % b; int x = abs(-10);Aprende esto en un curso
Si prefieres verlo en vivo y con alguien que resuelva tus dudas, estos cursos presenciales de MCI Educación cubren el tema de este tutorial:
- Arduino desde Cero: Primeros Pasos en Programación — nivel inicial, 15 horas presenciales en Santiago
- Arduino en profundidad: Sensores y actuadores para proyectos reales — nivel intermedio, 12 horas presenciales en Santiago