OTRAS FUNCIONES
EN ARDUINO
TRABAJO COLABORATIVO
GRUPO 1 - Arquitectura de Computadoras
millis()
La función millis(): millis() devuelve el número de milisegundos
desde que la placa Arduino empezó a ejecutar, luego de un reinicio o
el encendido. Este número se desbordará (volverá a cero), después
de aproximadamente 50 días. Retorna la cantidad de milisegundos
en un valor long sin signo (unsigned long).
Nota: Tenga en cuenta que como el valor de retorno para millis() es
un long sin signo (unsigned long), pueden producirse errores
lógicos si un programador intenta hacer operaciones aritméticas con
tipos de datos más pequeños, como de tipo int. Incluso con los long
con signo se pueden producir errores ya que su valor máximo es la
mitad que la de su contraparte sin signo.
GRUPO 1
micros ()
Devuelve el número de microsegundos desde la que
placa Arduino empezó a ejecutar el programa actual.
Este número se desbordará (volverá a cero), después
de aproximadamente 70 minutos. En placas Arduino
de 16 MHz (por ejemplo Duemilanove y Nano), esta En el monitor serie deberías tener una salida similar a la
siguiente imagen.
función tiene una resolución de cuatro
microsegundos (es decir, el valor devuelto es siempre
un múltiplo de cuatro). En las placas Arduino 8 MHz
(por ejemplo, la LilyPad), esta función tiene una
resolución de ocho microsegundos.
La sintaxis es muy similar a la de millis():
unsigned long tiempo = micros();
Grupo 2: delay() y delayMicroseconds()
Estas funciones son especialmente útiles en aplicaciones donde es necesario controlar el tiempo de ejecución del código,
como en el caso de la lectura de sensores o la activación de actuadores. Además, son muy útiles para crear temporizadores y
realizar acciones repetitivas con intervalos precisos.
Es importante tener en cuenta que, aunque estas funciones pueden ser muy útiles en ciertas situaciones, su uso excesivo
puede hacer que el código sea menos eficiente. Esto se debe a que el programa se detiene durante el tiempo especificado
en la función, lo que puede reducir la capacidad de respuesta del programa. Por lo tanto, es importante usar estas funciones
de manera estratégica y optimizar el código para que sea lo más eficiente posible.
Oscar Humberto Jiménez Mata 1390 20 18795 Jonatan David Quijada Abzún 1390 20 15810
Sheyla Jaksary Sagastume Vega 1390 20 3395 Rennt Armando Henández Espino 1390 20 15812
Función delay()
La función delay() suspende la ejecución del programa por un tiempo determinado en milisegundos, especificado como
argumento en la llamada a la función. Es decir, cuando se ejecuta la función delay(), el programa se detiene durante el
tiempo especificado y luego continúa con la ejecución del resto del código. Por ejemplo, si se usa la función delay(1000), el
programa se detendrá por un segundo antes de continuar con la ejecución del código.
Función delayMicroseconds()
GRUPO 2
La función delayMicroseconds() es similar a delay(), pero permite especificar el tiempo en microsegundos.
Esta función permite pausar el programa por una fracción de segundo (microsegundos) en lugar de segundos
completos. Por ejemplo, si se usa la función delayMicroseconds(1000), el programa se detendrá por un
milisegundo antes de continuar con la ejecución del código.
MIN() and MAX() Grupo 3
Función abs() y Constrain()
Grupo 4
Función abs()
Se utiliza para calcular el valor absoluto de un número. El
valor absoluto de un número es su distancia a cero en la recta
numérica, es decir, su valor sin signo. Por ejemplo, el valor
absoluto de -5 es 5 y el valor absoluto de 5 es también 5.
Constrain ()
Es un verbo que significa restringir o limitar algo o a alguien en
su acción o alcance. Es decir, es una acción que impone límites o
condiciones a algo o alguien para que se ajuste a un cierto
conjunto de reglas o limitaciones. También puede referirse a la
acción de hacer que alguien o algo se ajuste a una cierta norma o
estándar.
Grupo #5
POW()
Se utiliza para calcular la potencia de un
En este ejemplo ’base’ es 3. La funcion ‘pow()’
número, esta función toma dos argumentos: devuelve el resultado de dos elevado a la potencia
El número de base y el exponente. de 3, que es 8, el resultado se almacena en la
La función pow devuelve, sobre el propio variable entera ‘resultado’
identificador de la función, el resultado que se
obtiene de elevar el
<operando_número_base> al
<operando_exponente>. El valor de retorno
Es importante tener en cuenta que la función
de la función es de tipo double, con
pow() devuelve un número de punto flotante, por lo
independencia de que los operandos sean
que es posible que deba convertir el resultado a
reales o enteros.
un entero o a otro tipo de datos según sus
necesidades.
Grupo #5
Sqrt() La función "sqrt()" toma un número como
entrada y devuelve la raíz cuadrada de ese
La función "sqrt()" es una función número como salida. Por ejemplo, si se desea
matemática que se utiliza para calcular la calcular la raíz cuadrada de 9, se escribiría:
raíz cuadrada de un número en
programación. En inglés, "sqrt" significa
"square root", que traducido al español sqrt(9)
significa "raíz cuadrada".
El resultado de esta operación sería 3, ya que
la raíz cuadrada de 9 es 3. En la mayoría de los
lenguajes de programación, la función "sqrt()"
está disponible como una función incorporada o
como una función de una biblioteca
matemática.
Grupo 6
Funciones Seno y Coseno
Las funciones seno y coseno son muy útiles en Arduino para muchos proyectos relacionados con la robótica, la
electrónica, la mecánica y otras aplicaciones. Estas funciones se utilizan para calcular ángulos, posiciones,
velocidades y otras magnitudes trigonométricas.
Ejemplo de la función seno:
En este ejemplo, la función seno
se utiliza para calcular el valor del
seno de un ángulo de 45 grados.
La función "[Link]" se utiliza
para mostrar el resultado por el
puerto serie en la consola del IDE
de Arduino.
En este ejemplo, la función coseno
se utiliza para calcular el valor del
Ejemplo de la función coseno: coseno de un ángulo de 30 grados.
Al igual que en el ejemplo anterior,
la función "[Link]" se utiliza
para mostrar el resultado por el
puerto serie en la consola del IDE
de Arduino.
Recordemos que en ambos
ejemplos se ha utilizado la librería
"math.h" para poder utilizar las
funciones seno y coseno. Además,
los ángulos se han convertido de
grados a radianes antes de
pasarlos como argumentos a estas
funciones.
Para qué sirve la librería math.h en Arduino:
La librería "math.h" en Arduino es una librería estándar de C que proporciona una serie de funciones matemáticas
para realizar operaciones como cálculos trigonométricos, operaciones aritméticas complejas, funciones
exponenciales, logarítmicas y otras.
Esta librería es muy útil en proyectos de Arduino donde se requiere realizar cálculos matemáticos complejos o
manipular números en coma flotante. La librería "math.h" se incluye automáticamente en todos los programas de
Arduino y no es necesario instalarla por separado.
Algunas de las funciones que se pueden encontrar en la librería "math.h" son:
● Funciones trigonométricas: sin(), cos(), tan(), asin(), acos(), atan()
● Funciones exponenciales: exp(), log(), log10(), pow(), sqrt()
● Funciones de redondeo: ceil(), floor(), round()
● Funciones de comparación: max(), min(), abs(), fmax(), fmin()
● Funciones de aleatoriedad: rand(), srand()
En resumen, la librería "math.h" es muy útil en proyectos de Arduino que implican cálculos matemáticos complejos.
Al incluir esta librería en tu programa, tendrás acceso a una variedad de funciones matemáticas que te ayudarán a
realizar cálculos precisos y eficientes.
FUNCIÓN TAN() EN ARDUINO
¿Qué hace esta función?
Calcula la tangente de un ángulo (en radianes). El resultado está comprendido entre negativo infinito e infinito.
Sintaxis
tan (rad)
Parámetro
rad: el ángulo en radianes (float)
Grupo 7
EJEMPLO DE CÓDIGO
Grupo 7
FUNCION RANDOM() GRUPO 8
Llega un momento en la vida de uno quiere emular el azar en un programa, como por ejemplo, obtener
resultados aleatorios de un dado para un juego. Para ello existe la función Random en Arduino y está presente
en todos los lenguajes de programación de alto nivel, pero en cada uno de ellos tiene sus particularidades.
Y Arduino no iba a ser menos, utilizando esta función obtendremos números aleatorios para nuestro sketch. Pero
estos números aleatorios en realidad no lo son. Como ocurre en la mayoría de estos lenguajes, incluyendo
Arduino, son números seudoaleatorios, es decir, si se inicia la función random con los mismos parámetros se
obtiene la misma secuencia de números.
La función Random en Arduino
La sintaxis de esta función es la siguiente:
● Random(max): Se obtiene un número “aleatorio” desde 0 hasta max.
● Random(min, max): Se obtiene un número “aleatorio” desde min hasta max
Veamos cómo se comporta esta función escribiendo el resultado en el monitor serie
con los parámetros random(1,100):
Reseteamos y volvemos a lanzar el programa y nos fijamos en la salida del monitor serie:
Como veis en las dos imágenes, la secuencia es la misma y no nos valdría para realizar un juego de azar. Siempre
sabríamos que iba a salir.
Pero hay una solución llamada semilla y que existe en todos los lenguajes que implementan la función random. La semilla es
un valor por defecto que coge la función random para inicializarse, si cambiamos esta semilla la secuencia de datos
cambiara.
Funcion RandomSeed
Grupo 9
RandomSeed()
La función randomSeed(seed) reinicia el generador de números
pseudoaleatorios de Arduino. Aunque la distribución de los números
devueltos por random() es esencialmente aleatoria, la secuencia es
predecible. Deberías reajustar el generador a algún valor aleatorio.
Ejemplo:
randomSeed(analogRead(5)); // randomize using noise from analog
pin 5