Vous êtes sur la page 1sur 53

Universidad de las Fuerzas Armadas ESPE

Sede Latacunga

Programacin de tarjetas
Arduino

Marzo de 2017
ndice de contenido
Fundamentos de electrnica.................................................................................................................3
Ley de Ohm.................................................................................................................................3
Circuitos resistivos......................................................................................................................4
Resistencias en serie y divisores de tensin......................................................................4
Resistencias en paralelo y divisores de intensidad............................................................5
Resumen............................................................................................................................6
Diodos.........................................................................................................................................6
Diodo de propsito general................................................................................................6
Diodo Zener.......................................................................................................................8
Diodo LED........................................................................................................................9
Transistores...............................................................................................................................10
Seal digital...............................................................................................................................12
Niveles lgicos.................................................................................................................12
Seal analgica.........................................................................................................................13
Seal PWM...............................................................................................................................13
Estructura............................................................................................................................................15
Estructura mnima.....................................................................................................................15
Elementos de sintaxis................................................................................................................15
Operadores matemticos...........................................................................................................16
Operadores de comparacin......................................................................................................16
Operadores booleanos...............................................................................................................16
Operadores de punteros.............................................................................................................16
Operadores bit a bit...................................................................................................................17
Operadores compuestos............................................................................................................17
Estructuras de control................................................................................................................18
Variables.............................................................................................................................................19
Tipos de datos............................................................................................................................19
Constantes.................................................................................................................................20
Calificadores.............................................................................................................................21
Funciones............................................................................................................................................21
Entradas y salidas analgicas....................................................................................................23
Entradas y salidas avanzadas....................................................................................................25
Tiempo......................................................................................................................................26
Matemtica................................................................................................................................27
Trigonometra............................................................................................................................30
Caracteres..................................................................................................................................31
Nmeros aleatorios...................................................................................................................35
Bits y Bytes...............................................................................................................................36
Interrupciones externas.............................................................................................................39
Interrupciones............................................................................................................................40
Comunicacin...........................................................................................................................41
Librera Serial..................................................................................................................41
Seales digitales y analgicas............................................................................................................50
Objetivos...................................................................................................................................50
Marco terico............................................................................................................................50
Control de motores DC.......................................................................................................................51
Uso de libreras especializadas...........................................................................................................52
Programacin en Python para Arduino...............................................................................................53
Preliminares
Fundamentos de electrnica

Ley de Ohm
La ley de Omh viene dada por la siguiente relacin:
V =IR
Donde:
V es el voltaje [V]
I es la intensidad [A]
R es la resistencia []
Cuando se trabaja con corriente alterna, la ley se expresa de la siguiente manera:
V =IZ
Donde:
V es el fasor voltaje [V]
I es el fasor intensidad [A]
Z es la impedancia []

La potencia entregada a un elemento resistivo est dada por la siguiente ecuacin:

P=V I

Donde:

P es la potencia entregada [W]

V es el voltaje [V]

I es la intensidad [A]

La Figura 1 muestra las diferentes relaciones que existen entre las variables que intervienen en la
ley de Ohm y la potencia entregada a un elemento resistivo.
Figura 1. Ley de Ohm.
Circuitos resistivos

Resistencias en serie y divisores de tensin

La Figura 2 muestra un circuito con resistencias en serie y su resistencia equivalente; el clculo de


esta ltima se realiza con la Ecuacin 1.

Figura 2. Resistencia equivalente de resistencias en serie

Req =R1 + R2 +...+ Rn


Ecuacin 1

El voltaje presente en cada resistencia puede calcularse con la Ecuacin 2.

Rn
vn = v
R1 + R2 +...+ Rn s
Ecuacin 2
Resistencias en paralelo y divisores de intensidad

La Figura 3 muestra un circuito con resistencias en paralelo; el clculo de la resistencia equivalente


se realiza con la Ecuacin 3.

Figura 3. Resistencia equivalente de resistencias en serie.

Req =R1 + R2 +...+ Rn


Ecuacin 3

El voltaje presente en cada resistencia puede calcularse con la Ecuacin 2.

Figura 4. Esquema de un circuito


elctrico con resistencias en serie.

Resumen

El resumen de frmulas de este apartado se muestra en la Figura 5.


Figura 5. Resumen de frmulas.

Diodos

Diodo de propsito general

Un diodo es un dispositivo que permite el flujo de corriente en un solo sentido, el smbolo


representativo del diodo en esquemas electrnicos se muestra en la Figura 6.

Figura 6. Smbolo electrnico del diodo.

Cuando se le aplica un voltaje directo, permite el paso de corriente (Figura 7 a); si el voltaje
aplicado es inverso, impide el flujo de corriente (Figura 7 b).
Figura 7. Modo de operacin del diodo.

La Figura 8 muestra la relacin corriente voltaje en un diodo; se distinguen la regin de


polarizacin directa y la regin de polarizacin inversa.

En la regin de polarizacin directa el flujo de corriente en muy bajo antes del voltaje de umbral
(0.3 para diodos de germanio, 0.7 para diodos de silicio), despus del voltaje de umbral el flujo de
corriente aumenta significativamente y el diodo acta como un interruptor cerrado.

En la regin de polarizacin inversa, el diodo acta como un interruptor abierto hasta llegar a la
zona de ruptura donde se avera y pasa a ser un interruptor cerrado.
Figura 8. Relacin corriente voltaje en un diodo.
Diodo Zener

El diodo Zener, directamente polarizado se comporta como un diodo normal.


Cuando se polariza en forma inversa, mantiene un voltaje constante entre sus terminales para un
amplio rango de valores de corriente.
La utilizacin ms comn de estos dispositivos se da en circuitos reguladores de voltaje como el de
la Figura 9.

Figura 9. Circuito Regulador de


voltaje con diodo Zener.
El valor de la resistencia limitadora de corriente puede ser calculado con la Ecuacin 4; este valor
debe ser seleccionado para que siempre exista flujo de corriente a travs del diodo Zener.

(V 1V 2)
R=
(I z + I L )
Ecuacin 4
Donde:

IZ es la corriente Zener.

IL es la corriente de la carga.

Diodo LED

La Figura 10 muestra el smbolo electrnico de un diodo emisor de luz.

Figura 10. Diodo emisor de


luz.

Un LED debe tener una resistencia conectada en serie para limitar la corriente a travs de l, el
valor de la resistencia puede calcularse con la Ecuacin 5.

(V SV L )
R=
I
Ecuacin 5
Donde:
R es la resistencia del LED
VS es el voltaje de la fuente
VL es el voltaje del LED
I es la corriente a travs del LED

La Figura 11 muestra las caractersticas de varios LEDs comerciales.


Figura 11. Caractersticas de varios LEDs comerciales.

Los LED RGB son dispositivos que combinan un LED rojo, uno verde y uno azul; tienen dos
configuraciones: nodo comn y ctodo comn, que se muestran en la Figura 12.

Figura 12. Configuraciones de un LED RGB.

Transistores
Un transistor es un dispositivo utilizado para amplificar seales electrnicas.

Posee tres terminales: base, colector y emisor.

Existen dos configuraciones de transistores que se muestran en la Figura 13.


Figura 13. Configuraciones de un transistor.

En circuitos que utilizan microcontroladores, los transistores permiten manejar dispositivos que se
alimentan con corrientes mayores a las que las salidas del microcontrolador pueden entregar. La
Figura 14 muestra el diseo de un controlador de rel, pero puede utilizarse para cualquier carga.

Figura 14. Controlador de un rel basado


en un transistor NPN.

El procedimiento para seleccionar los componentes del controlador es el siguiente:

Determinar la corriente requerida por la carga.

Seleccionar un transistor que pueda manejar la corriente requerida, esta corresponde a la


corriente de colector IC.

Determinar la corriente de base IB con la Ecuacin 6.


I
I B= C
Ecuacin 6

Donde:

B es la ganancia del transistor

Calcular la resistencia de base RB con la Ecuacin 7.

V entrada
RB =
IB
Ecuacin 7

La terminal nombrada INPUT debe ir conectada a un pin digital de la tarjeta Arduino.

Optoacopladores
Un optoacoplador es un dispositivo de emisin y recepcin que funciona como un interruptor
activado mediante la luz emitida por un diodo LED que satura un componente optoelectrnico,
normalmente en forma de fototransistor o fototriac. Se combinan en un solo dispositivo
semiconductor, un fotoemisor y un fotorreceptor cuya conexin entre ambos es ptica. Estos
elementos se encuentran dentro de un encapsulado que por lo general es del tipo DIP. Se suelen
utilizar para aislar elctricamente a dispositivos muy sensibles. El smbolo electrnico de un
optoacoplador se muestra en la Figura 15. Un circuito tpico que utiliza un optoacoplador se
muestra en la Figura 16.

Figura 15. Smbolo electrnico del


optoacoplador.
Figura 16. Circuito electrnico con optoacoplador.

Seales digitales
Una seale digital puede presentar dos estados: HIGH o LOW. La Tabla 1 muestra las diferentes
equivalencias de los estados.

Tabla 1: Equivalencias de los estados de una seal digital


Nivel Valor de voltaje Valor lgico Valor cognitivo Cdigo de
mquina
HIGH 5V TRUE ON 1
LOW 0V FALSE OFF 0

Niveles lgicos

Los valores HIGH y LOW en las tarjetas Arduino no corresponden a 5 y 0V exactamente. Existen
voltajes de umbral desde los cuales una seal puede considerarse alta o baja; estos voltajes se
muestran en la Figura 17.
Figura 17. Valores
lgicos de las tarjetas
Arduino.

Seales analgicas
Una seal analgica puede tomar cualquier valor entre dos lmites. Para medir el valor de una seal
analgica, la tarjeta Arduino tiene un conversor A/D incorporado que transforma valores analgicos
de 0 a 5V en valores digitales de 0 a 1023.

Las tarjetas Arduino no poseen conversor D/A para entregar valores analgicos, pero los simula
gracias a una seal PWM; los valores analgicos de 0 a 5V se transforman en valores de 0 a 255
que representan 0 y 100% del ciclo PWM.

Seal PWM
Una seal PWM es un tren de pulsos de frecuencia constante, cuyo tiempo en alto puede variarse
desde 0 a 100% de su periodo tal como puede apreciarse en la Figura 18. Los valores
correspondientes a 0 y 100% son 0 y 255 en tarjetas Arduino. La frecuencia PWM en casi todos los
pines de las tarjetas es aproximadamente 490Hz.
Figura 18. Modulacin de ancho de pulso.
Descripcin de Arduino
El hardware de Arduino es una placa electrnica que permite el completo funcionamiento de un
microcontrolador AVR; posee los componentes necesarios para su funcionamiento, fuente de
alimentacin, terminales que facilitan la conexin con dispositivos externos y un mdulo de
comunicacin para PC.

El software de Arduino consiste en una IDE de fcil utilizacin con compilador integrado, basada
en los lenguajes C y C++, disponible para una gran variedad de plataformas y arquitecturas.

Arduino est diseado para ayudar a artistas, diseadores y creativos a desarrollar prototipos de
sistemas electrnicos.

Ventajas
Cdigo abierto (hardware y software)

Fcil de programar y utilizar

Amplia documentacin

Varios modelos

Gran cantidad de libreras

Shields y perifricos

La tarjeta trae el programador incorporado

Listo para utilizar

Fcil adquisicin
Caractersticas
Las caractersticas de tres modelos de tarjeta Arduino se muestran en la Tabla 2.

Tabla 2. Caractersticas de tres modelos de tarjeta Arduino.


Parmetro Nano UNO Mega 2560
Microcontrolador Atmel ATmega168 o ATmega328 ATmega328P ATmega2560
Voltaje de operacin 5V 5V 5V
Voltaje de entrada (recomendado) 7-12 V 7-12V 7-12V
Voltaje de entrada (lmites) 6-20 V 6-20V 6-20V
Entradas/salidas digitales 14 (6 proveen salidas PWM) 14 (6 proveen salidas PWM) 54 (15 proveen salidas PWM)
Entradas analgicas 8 6 16
Mxima corriente de terminal 40 mA 20 mA 20 mA
Mxima corriente de la fuente de 3.3V 50 mA 50 mA
16 KB (ATmega168) or 32 KB
32 KB (ATmega328P) 256 KB of which 8 KB used by
Memoria Flash (ATmega328) of which 2 KB used by
of which 0.5 KB used by bootloader bootloader
bootloader
1 KB (ATmega168) or 2 KB
Memoria RAM fija (SRAM) 2 KB (ATmega328P) 8 KB
(ATmega328)
512 bytes (ATmega168) or 1 KB
Memoria EEPROM 1 KB (ATmega328P) 4 KB
(ATmega328)
Velocidad de reloj 16 MHz 16 MHz 16 MHz
LED incorporado 13 13
Dimensiones 45x18 mm 68.6x53.4 mm 101.52x53.3 mm
Peso 5g 25 g 37 g
Distribucin de pines de Arduino UNO R3
La Figura 19 muestra la distribucin de pines de la tarjeta Arduino UNO R3.

Figura 19. Distribucin de pines de la tarjeta Arduino UNO R3.


Fundamentos de programacin
Estructura

Estructura mnima
Todo sketch debe contener las funciones setup y loop.

void setup()

Cdigo que se ejecuta una vez;

void loop()

Cdigo que se ejecuta cclicamente;

Elementos de sintaxis

Elemento Uso
; El punto y coma se coloca al final de cada instruccin

{
Las llaves son los lmites de un bloque de instrucciones.
}
// Marca el inicio de un comentario simple.

/*
Son los lmites de un bloque de comentario.
*/
Sustituye todas las apariciones del identificador por un valor determinado.

#define
Sintaxis:
#define identificador valor
#include Incluye el contenido de un archivo especificado en el programa actual.
Sintaxis:
#include <nombre_archivo>

Operadores matemticos

Operador Descripcin
= Operador de asignacin

+ Suma

- Resta

* Multiplicacin

/ Divisin. El resultado de esta operacin depende del tipo de datos que se utilicen.

% Mdulo. Calcula el residuo de la divisin.

Operadores de comparacin

Operador Descripcin
== Igual a

!= Diferente

< Menor a

> Mayor a

<= Menor o igual a

>= Mayor o igual a

Operadores booleanos

Operador Descripcin
&& AND

|| OR

! NOT

Operadores de punteros

Operador Descripcin
* Operador de indireccin: Devuelve el valor almacenado en la memoria a la que apunta.

& Operador de direccin: devuelve la direccin de almacenamiento de un objeto.


Operadores bit a bit

Operador Descripcin
& AND

| OR

^ XOR

~ NOT

<< Desplazamiento a la izquierda

>> Desplazamiento a la derecha

Operadores compuestos

Operador Descripcin
Incremento
Sintaxis:
++
x++ aumenta x en 1 y retorna el valor anterior de x
++x aumenta x en 1 y retorna el nuevo valor de x
Decremento
Sintaxis:
--
x-- decrementa x en 1 y retorna el valor anterior de x
--x decrementa x en 1 y retorna el nuevo valor de x
Adicin compuesta
+=
x += y es equivalente a x = x + y
Resta compuesta
-=
x -= y es equivalente a x = x - y
Multiplicacin compuesta
*=
x *= y es equivalente a x = x * y
Divisin compuesta
/=
x /= y es equivalente a x = x / y
Operacin mdulo compuesta
%
x %= y es equivalente a x = x % y
AND compuesta
&=
x &= y es equivalente a x = x & y
OR compuesta
|=
x |= y es equivalente a x = x | y
Estructuras de control

Estructura Descripcin
Sintaxis:
if (condicin)
{
sentencias;
if...else }
else
{
sentencias;
}
Sintaxis:
for (inicializacin; condicin; incremento)
for {
sentencias;
}
switch case Sintaxis:
switch (variable)
{
case valor1:
sentencias;
break;

case valor2:
sentencias;
break;

case valorN:
sentencias;
break;

default:
sentencias;
break;
}

Para declarar variables dentro de un caso es necesario utilizar llaves.

case valor1:
{
int a = 0;
sentencias;
break;
}
Se ejecuta cuando la condicin es verdadera.

Sintaxis:
while while (condicin)
{
sentencias;
}
Similar a while. La condicin es evaluada el final del lazo.

Sintaxis:
do...while do
{
sentencias;
} while (condicin)
Utilizada para terminar la ejecucin de las estructuras do, for, while y switch,
break
omitiendo la condicin de la estructura.
continue Omite el resto de sentencias de la estructura de control y salta a la siguiente iteracin
return Termina la ejecucin de una funcin y retorna un valor
goto Transfiere el flujo de un programa a un punto marcado por una etiqueta.

Variables

Tipos de datos

Tipo Bytes Rango Descripcin


int 2 -32768 a 32768 Nmeros enteros positivos y negativos.
unsigned int 2 0 a 65535 Nmeros positivos nicamente.
long 4 -2147483648 a 2147483648 Nmeros positivos y negativos.
unsigned long 4 4294967295 Nmeros positivos nicamente.
-3.4028235E+38 a
float 4 Nmeros reales.
3.4028235E+38
double 4 Igual que float Nmeros reales.
Verdadero (1)
boolean 1 Valores booleanos.
Falso (0)
Nmeros enteros positivos o negativos
char 1 -128 a 127
(representacin ASCII).
Nmeros enteros positivos (representacin
byte 1 0 a 255
binaria).
String Cadena de caracteres.
Utilizado nicamente para declarar funciones
void
que no devuelven valor alguno.

Constantes

Constante/s Descripcin
true / false Definicin de niveles lgicos.
HIGH / LOW Definicin del estado de un pin digital.
INPUT /
Definen el comportamiento de un pin como entrada o salida. INPUT
INPUT_PULLUP /
PULLUP permite utilizar las resistencias internas del microcontrolador.
OUTPUT
Hace referencia al pin que activa el LED incorporado en las tarjetas
LED_BUILTIN
Arduino.
Base Prefijo Ejemplo Comentario
10 Ninguno 123
Solo funciona con valores de 8 bits (0 a 255), son
2 B B1111001
validos los caracteres 0 y 1.
Constantes enteras 8 0 0173 Son validos los caracteres 0 7.
16 0x 0x7B Son validos caracteres del 0 9 y A F.
U Formato unsigned.
Formato long. Al realizar operaciones con datos long, al menos uno
L
debe estar acompaado por L.
Constantes reales E / e Representacin de notacin cientfica.
Calificadores

Calificador Uso
Crea variables visibles para una sola funcin. A diferencia de las variables locales, que
static se crean y destruyen en cada vez que se llama a la funcin, las variables estticas
preservan su valor entre las llamadas.
Las variables declaradas dentro de una interrupcin deben ser declaradas como
voltiles.
volatile

Sintaxis: volatile tipo_variable variable


Sustituye todas las apariciones de la variable por un valor determinado.
const
Sintaxis: const tipo_variable variable = valor

Funciones
Funcin Descripcin
pinMode() Configura un determinado pin como entrada o salida.

Sintaxis:
pinMode(pin, modo)

Parmetros:
pin: el nmero de pin cuyo modo se desee establecer.
modo: INPUT / INPUT_PULLUP / OUTPUT.

Retorno:
Ninguno.

Nota:
Los pines configurados como INPUT presentan alta impedancia por lo que
pueden leer seales dbiles pero a la vez son sensibles al ruido. Se
recomienda utilizar una resistencia pull up o pull down para definir un
estado en ausencia de seales de entrada.
En los pines configurados como INPUT_PULLUP, una resistencia pull up
que vara entre 10 y 50k es activada.
Los pines configurados como OUTPUT presentan baja impedancia y
pueden proveer una corriente mxima de 40 mA. Es recomendable conectar
estos pines a travs de una resistencia de 470 o 1k.
Escribe HIGH o LOW en un pin digital.

Sintaxis:
digitalWrite(pin, valor)

Parmetros:
valor: HIGH/LOW

digitalWrite()
Retorno:
Ninguno.

Nota:
Si el pin est configurado como entrada, digitalWrite() activar (HIGH) o
desactivar (LOW) la resistencia interna del pin.
Cuando el pin este configurado como salida, su voltaje ser de 5V (HIGH) o 0V
(LOW).
Lee el valor de un pin digital: HIGH o LOW

Sintaxis:
digitalRead(pin)

Parmetros:
pin: el nmero del pin digital que se desee leer (int).
digitalRead()

Retorno:
HIGH o LOW.

Nota:
Si el pin no est conectado, digitalRead() puede retornar HIGH o LOW
aleatoriamente.
Entradas y salidas analgicas

Funcin Descripcin
analogReference() Configura el valor de referencia de las entradas analgicas.

Sintaxis:
analogReference(opcin)

Parmetros:
Las opciones disponibles son:
DEFAULT: referencia analgica por defecto 5V en las placas de 5V y
3.3V en las placas de 3.3V.
INTERNAL: referencia incorporada de 1.1V en los microcontroladores
ATmega168, ATmega328 y 2.56V en el ATmega8 (no disponible en el
Arduino Mega).
INTERNAL1V1: referencia incorporada de 1.1V (Arduino Mega
nicamente).
INTERNAL2V56: referencia incorporada de 2.56V (Arduino Mega
nicamente).
EXTERNAL: la referencia corresponde al valor aplicado al pin AREF
(0 a 5V nicamente).

Retorno:
Ninguno.

Nota:
Despus de cambiar la referencia analgica, las primeras lecturas de
AnalogRead() podran no ser precisas.

Advertencia:
No aplicar menos de 0V o ms de 5V al pin AREF. Es necesario declarar la
referencia externa antes de llamar a analogRead()

Alternativamente, es posible conectar el voltaje de referencia externa al pin


AREF a travs de una resistencia de 5k, permitiendo alternar entre los
voltajes de referencia interna y externa. Ntese que el uso de esta resistencia
altera el valor del voltaje de referencia ya que el pin AREF est conectado a
una resistencia de 32k formndose un divisor de tensin.
Lee el valor de un pin analgico.

Sintaxis:
analogRead(pin)

Parmetros:
pin: el nmero de la entrada analgica a ser leda: 0 5 para la mayora de
tarjetas, 0 7 para Mini y Nano y 0 15 para Mega.

Retorno:
valor entre 0 y 1023 (int).
analogRead()

Nota:
Cada pin analgico est formado por un conversor A/D de 10 bits, por
lo que es posible convertir valores de voltaje entre 0 y 5 a valores
enteros entre 0 y 1023; sin embargo, es posible cambiar la escala de
conversin utilizando analogReference().
Toma alrededor de 100 microsegundos leer una entrada analgica por
lo que es posible realizar hasta 10000 lecturas por segundo.
Si el pin no est conectado, el valor retornado por analogRead()
fluctuar en base a una serie de factores tales como los valores de otras
entradas analgicas y cargas elctricas cercanas.
analogWrite() Escribe un valor PWM en un pin. Despus de la llamada a analogWrite(), el
pin generar una seal PWM con el ciclo de trabajo especificado.

Sintaxis:
analogWrite(pin, valor)

Parmetros:
pin: nmero de pin en el que se va a escribir.
valor: ciclo de trabajo de la seal PWM (0 225)
Retorno:
Ninguno.

Nota:
La frecuencia PWM en casi todos los pines es aproximadamente 490Hz. En el
Arduino UNO y similares, los pines 5 y 6 tienen una frecuencia aproximada de
980Hz.

Entradas y salidas avanzadas

Funcin Descripcin
pulseIn() Retorna el tiempo en microsegundos que ha durado un pulso aplicado a un pin o 0 si el
pulso no se ha completado dentro del tiempo de espera (timeout).

Sintaxis:
pulseIn(pin, valor)
pulseIn(pin, valor, timeout)

Parmetros:
pin: nmero de pin en el que se va a realizar la lectura del pulso (int).
valor: este parmetro tiene dos opciones:
HIGH
Espera a que el pin pase a alto.
Empieza a contar.
Espera a que el pin pase a bajo.
Termina de contar.
LOW
Espera a que el pin pase a bajo.
Empieza a contar.
Espera a que el pin pase a alto.
Termina de contar.
timeout: parmetro opcional que establece el tiempo de espera en microsegundos; el
valor por defecto es 1 segundo (unsigned long).

Retorno:
La duracin del pulso en microsegundos o 0 si no se ha completado el pulso durante el
tiempo de espera (unsigned long).

Tiempo

Funcin Descripcin
Retorna el nmero de milisegundos desde que la tarjeta Arduino empez a
ejecutar el programa. Este valor se reinicia despus de 50 das
aproximadamente.

Sintaxis:
millis()
millis()
Parmetros:
Ninguno

Retorno:
Nmero de milisegundos que desde que el programa empez a ejecutarse
(unsigned long).
Retorna el nmero de microsegundos desde que la tarjeta Arduino empez a
ejecutar el programa. Este nmero se reinicia despus de 70 minutos
aproximadamente.

Sintaxis:
micros()
micros()
Parmetros:
Ninguno

Retorno:
Nmero de microsegundos que desde que el programa empez a ejecutarse
(unsigned long).
delay() Pausa la ejecucin del programa por una cantidad de milisegundos dada.

Sintaxis:
delay(milisegundos)
Parmetros:
Milisegundos (formato unsigned long)

Retorno:
Ninguno
Pausa la ejecucin del programa por una cantidad de microsegundos dada.

Sintaxis:
delayMicroseconds(microsegundos)

Parmetros:
delayMicroseconds() Microsegundos (formato unsigned int)

Retorno:
Ninguno

Nota:
El valor ms grande que producir una pausa precisa es 16383.

Matemtica

Funcin Descripcin
min() Calcula el menor de dos nmeros dados.

Sintaxis:
min(valor_1, valor_2)

Parmetros:
valor_1: nmero de cualquier tipo
valor_2: nmero de cualquier tipo

Retorno:
El menor de dos nmeros dados.

Nota:
Evtese utilizar funciones dentro de los parntesis de esta funcin.
Calcula el mayor de dos nmeros dados.

Sintaxis:
max(valor_1, valor_2)

Parmetros:
valor_1: nmero de cualquier tipo
max()
valor_2: nmero de cualquier tipo

Retorno:
El mayor de dos nmeros dados.

Nota:
Evtese utilizar funciones dentro de los parntesis de esta funcin.
Calcula el valor absoluto un nmero dado.

Sintaxis:
abs(valor)

Parmetros:
abs() valor: nmero de cualquier tipo

Retorno:
El valor absoluto de un nmero dado.

Nota:
Evtese utilizar funciones dentro de los parntesis de esta funcin.
constrain() Restringe un nmero dentro de un rango.

Sintaxis:
constrain(valor, lmite_inferior, lmite_superior)

Parmetros:
valor: nmero de cualquier tipo.
lmite_inferior: lmite inferior del rango.
lmite_superior: lmite superior del rango.

Retorno:
El mismo nmero si se encuentra dentro del rango.
El lmite superior si el nmero es mayor al lmite superior.
El lmite inferior si el nmero es menor al lmite inferior.
Transforma linealmente un nmero desde una escala hacia otra.

Sintaxis:
map(valor, xL, yH, xL, yH)

map()

Parmetros:
valor: nmero a transformar.
xL: lmite inferior inicial.
xH: lmite superior inicial.
yL: lmite inferior final.
yH: lmite superior final.

Retorno:
El nmero transformado.
Calcula el valor de un nmero elevado a una potencia

Sintaxis:
pow(base, exponente)

pow() Parmetros:
base: nmero tipo float
exponente: nmero tipo float

Retorno:
Resultado de la exponenciacin (float)
Calcula la raz cuadrada de un nmero dado.

Sintaxis:
pow(valor)

sqrt()
Parmetros:
valor: nmero de cualquier tipo

Retorno:
Raz cuadrada del nmero dado (double)

Trigonometra

Funcin Descripcin
Calcula el seno de un ngulo dado en radianes.

Sintaxis:
sin(ngulo)

sin()
Parmetros:
ngulo: valor en radianes (float)

Retorno:
El seno del ngulo (double)
cos() Calcula el coseno de un ngulo dado en radianes.
Sintaxis:
cos(ngulo)

Parmetros:
ngulo: valor en radianes (float)

Retorno:
El coseno del ngulo (double)
Calcula la tangente de un ngulo dado en radianes.

Sintaxis:
tan(ngulo)

tan()
Parmetros:
ngulo: valor en radianes (float)

Retorno:
La tangente del ngulo (double)

Caracteres

Funcin Descripcin
Analiza si una variable almacena un carcter alfanumrico.

Sintaxis:
isAlphaNumeric(char)

isAlphaNumeric()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
isAlpha() Analiza si una variable almacena un carcter alfabtico.

Sintaxis:
isAlpha(char)

Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
Analiza si una variable almacena un carcter ASCII.

Sintaxis:
isAscii(char)

isAscii()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
Analiza si el carcter contenido en una variable es un espacio en blanco.

Sintaxis:
isAscii(char)

isWhitespace()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
isControl() Analiza si una variable contiene un carcter de control

Sintaxis:
isAscii(char)

Parmetros:
char: variable tipo char.
Retorno:
Verdadero o falso.
Analiza si una variable contiene un dgito.

Sintaxis:
isDigit(char)

isDigit()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
Analiza si una variable contiene un carcter imprimible.

Sintaxis:
isDigit(char)

isGraph()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
Analiza si una variable contiene una minscula.

Sintaxis:
isDigit(char)

isLowerCase()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
isPrintable() Analiza si una variable contiene un carcter imprimible.

Sintaxis:
isDigit(char)

Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
Analiza si una variable contiene un signo de puntuacin.

Sintaxis:
isDigit(char)

isPunct()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
Analiza si el contenido en una variable es un espacio.

Sintaxis:
isAscii(char)

isSpace()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.
isUpperCase() Analiza si una variable contiene una mayscula.

Sintaxis:
isDigit(char)

Parmetros:
char: variable tipo char.
Retorno:
Verdadero o falso.
Analiza si una variable contiene un nmero hexadecimal.

Sintaxis:
isDigit(char)

isHexdecimalDigit()
Parmetros:
char: variable tipo char.

Retorno:
Verdadero o falso.

Nmeros aleatorios

Funcin Descripcin
random() Genera nmeros seudo-aleatorios.

Sintaxis:
random(max)
random(min, max)

Parmetros:
min: lmite inferior (inclusivo)
max: lmite superior (exclusivo)

Retorno:
Nmero aleatorio entre los lmites inferior y superior.

Nota:
Esta funcin devuelve la misma lista de nmero aleatorios cada vez que el
microcontrolador se reinicia.
Causa que el generador de nmeros aleatorios se inicialice en una posicin
arbitraria de su secuencia. Esta funcin debe ser declarada antes de random().

Sintaxis:
randomSeed(semilla)

Parmetros:
semilla: nmero para inicializar el generador (int long).
randomSeed()
Retorno:
Ninguno

Notas:
Al utilizar est funcin junto con random(), se obtendr la misma lista de nmeros
aleatorios cada vez que el microcontrolador se reinicie.
Para modificar la lista cada vez que el microcontrolador se reinicie, se recomienda
emplear la lectura de un pin analgico que no se est utilizando como semilla.

Bits y Bytes

Funcin Descripcin
lowByte Extrae el bit bajo de una variable.

Sintaxis:
lowByte(x)

Parmetros:
x: variable de cualquier tipo.

Retorno:
Byte
Extrae el bit alto de una variable tipo word o el segundo ms bajo de una variable
ms larga.

Sintaxis:
highByte(x)
highByte
Parmetros:
x: variable de cualquier tipo.

Retorno:
Byte
Lee un bit de un nmero.

Sintaxis:
bitRead(x,n)

bitRead() Parmetros:
x: nmero a leer
n: posicin del bit a leer (0 es la posicin del bit menos significativo).

Retorno:
El valor del bit.
bitWrite() Escribe el valor de un bit de una variable numrica.

Sintaxis:
bitWrite(x,n,b)

Parmetros:
x: variable numrica en la que se va a escribir.
n: posicin del bit en el que se va a escribir (0 es la posicin del bit menos
significativo).
b: valor a escribir (0 o 1)

Retorno:
Ninguno
Escribe 1 en un bit de una variable numrica.

Sintaxis:
bitSet(x,n)

Parmetros:
bitSet()
x: variable numrica en la que se va a escribir.
N: posicin del bit en el que se va a escribir (0 es la posicin del bit menos
significativo).

Retorno:
Ninguno
Escribe 0 en un bit de una variable numrica.

Sintaxis:
bitSet(x,n)

Parmetros:
bitClear()
x: variable numrica en la que se va a escribir.
n: posicin del bit en el que se va a escribir (0 es la posicin del bit menos
significativo).

Retorno:
Ninguno
bit() Calcula el valor de un bit especfico.

Sintaxis:
bit(n)
Parmetros:
n: posicin del bit cuyo valor va a calcularse (0 es la posicin del bit menos
significativo).

Retorno:
Ninguno

Interrupciones externas

Funcin Descripcin
attachInterrupt Configura una interrupcin.

Sintaxis:
attachInterrup(interrupcin, ISR, modo)

Parmetros:
interrupcin: nmero de la interrupcin.

ISR (Interrupt Service Routine): Funcin que se ejecuta cuando la


interrupcin se dispara. Est funcin no recibe parmetros y no tiene
retorno.
modo: define el evento que dispara la interrupcin, los valores aceptados
son:
LOW: dispara la interrupcin cunado el pin est en bajo.
CHANGE: dispara la interrupcin cuando el pin cambia de valor.
RISING: dispara la interrupcin cuando el pin pasa de bajo a alto.
FALLING: dispara la interrupcin cuando el pin pasa de alto a bajo.
Retorno:
Ninguno

Notas:
Dentro de la ISR, delay() no funciona y el valor retornado por millis() no
incrementa.
Datos recibidos por el puerto serial mientras la funcin se ejecuta podran
perderse.
Todas las variables que se modifiquen dentro de la ISR deben ser
declaradas como volatile.
Desconecta una interrupcin.

Sintaxis:
detachInterrupt(interrupcin)

detachInterrupt
Parmetros:
interrupcin: nmero de la interrupcin.

Retorno:
Ninguno

Interrupciones

Funcin Descripcin
Activa las interrupciones previamente deshabilitadas por noInterrupts().

Sintaxis:
interrupts()

interrupts()
Parmetros:
Ninguno

Retorno:
Ninguno
noInterrupts() Desactiva las interrupciones previamente deshabilitadas por noInterrupts().

Sintaxis:
noInterrupts()

Parmetros:
Ninguno
Retorno:
Ninguno

Comunicacin

Librera Serial

Esta librera se utiliza para comunicar la tarjeta Arduino con computadoras u otros dispositivos.
Mientras la librera se est utilizando, los pines 0 (RX) y 1 (TX) no pueden ser utilizados como
entradas o salidas.

Funcin Descripcin
Indica si un puerto serial especifico est listo para la comunicacin.

Sintaxis:
if(Serial)

if(Serial)
Parmetros:
Ninguno

Retorno:
Valor booleano: verdadero si el puerto est preparado.
Captura el nmero de bytes disponibles para leer en el puerto serial (datos
que han arribado y han sido almacenados).

Sintaxis:
Serial.available()
available()
Parmetros:
Ninguno

Retorno:
El nmero de bytes disponibles para leer.
availableForWrite() Obtiene el nmero de bytes disponibles para escribir en el buffer sin bloquear
la operacin de escritura.
Sintaxis:
Serial.availableForWrite()

Parmetros:
Ninguno

Retorno:
Nmero de bytes disponibles para escribir.
begin() Indica la velocidad de transferencia de datos en bits por segundo (baudios)
para la transmisin serial de datos.

Sintaxis:
Serial.begin(velocidad)
Serial.begin(velocidad, config)

Parmetros:
velocidad: velocidad de transferencia de datos en baudios; para la
comunicacin con computadoras debe utilizarse uno de los siguientes
valores:
300
600
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
config: parmetro opcional para configurar los bits de datos, paridad y
bits de parada; valores por defecto son: 8 bits, sin paridad y 1 bit de
parada; pueden especificarse los siguientes valores:
SERIAL_5N1
SERIAL_6N1 SERIAL_7N1 SERIAL_8N1 (valor por defecto)
SERIAL_5N2
SERIAL_6N2
SERIAL_7N2
SERIAL_8N2
SERIAL_5E1
SERIAL_6E1
SERIAL_7E1
SERIAL_8E1
SERIAL_5E2
SERIAL_6E2
SERIAL_7E2
SERIAL_8E2
SERIAL_5O1
SERIAL_6O1
SERIAL_7O1
SERIAL_8O1
SERIAL_5O2
SERIAL_6O2
SERIAL_7O2
SERIAL_8O2

Retorno:
Ninguno
end() Desactiva la comunicacin serial.

Sintaxis:
Serial.end()

Parmetros:
Ninguno
Retorno:
Ninguno
Lee los datos del buffer hasta encontrar una cadena de caracteres indicada;
retorna verdadero si la cadena se encuentra o falso si no se encuentra dentro
de un plazo establecido.

Sintaxis:
Serial.find(objetivo)
find()

Parmetros:
objetivo: cadena de caracteres a buscar (char)

Retorno:
booleano
Lee los datos del buffer hasta encontrar una cadena de caracteres indicada o
la cadena de caracteres indicada como fin.

Sintaxis:
Serial.findUntil(objetivo, fin)

findUntil()
Parmetros:
objetivo: cadena que caracteres a buscar (char)
fin: cadena de caracteres que marca el fin (char)

Retorno:
booleano
flush() Limpia el buffer una vez que todos los caracteres de salida han sido enviados.
parseFloat() Busca el primer nmero en coma flotante (float) vlido a partir de la posicin
actual. Los caracteres iniciales que no son dgitos (o el signo menos) son
ignorados. parseFloat() termina cuando se encuentra el primer carcter que no
es un nmero en coma flotante.

Sintaxis:
Serial.parseFloat()
Parmetros:
Ninguno

Retorno:
Float
Busca el primer nmero entero (int) vlido a partir de la posicin actual. Los
caracteres iniciales que no son dgitos (o el signo menos) son ignorados.
parseFloat() termina cuando se encuentra el primer carcter que no es un
dgito.

Sintaxis:
Serial.parseInt()
parseInt()
Serial.parseInt(char skipChar)

Parmetros:
skipChar: argumento opcional que indica un carcter a ser ignorado.

Retorno:
Long
Retorna el siguiente byte (carcter) de datos seriales sin removerlo del buffer
interno.

Sintaxis:
Serial.peek()
peek()
Parmetros:
Ninguno

Retorno:
El siguiente byte o -1 si no hay bytes disponibles.
print() Imprime datos en el puerto serial en formato texto ASCII. Esta funcin puede
tomar diferentes formas. Los nmeros se imprimen usando un carcter ASCII
para cada dgito. Lo mismo sucede con los nmeros en coma flotante (que
por defecto se imprimen con dos decimales). Bytes se imprimen como
caracteres individuales. Caracteres y cadenas de caracteres se imprimen tal
como son.
El segundo parmetro de esta funcin especifica la base (formato) usado. Los
valores permitidos son: BIN (binario, o base 2), OCT (octal, o base 8), DEC
(decimal, o base 10), HEX (hexadecimal, o base 16). Para nmeros en coma
flotante, este parmetro especifica el nmero de lugares decimales que se van
a usar.

Sintaxis:
Serial.print(val, formato).

Parmetros:
val: el valor a imprimir (cualquier tipo de dato).
formato: parmetro opcional que especifica la base (para enteros) o el nmero
de decimales (para flotantes).

Retorno:
size_t (long): print() devuelve el nmero de bytes escritos, aunque leer este
nmero es opcional.
Imprime datos en el puerto serial en formato texto ASCII. La impresin
termina con un retorno de carro (carriage return). Esta funcin usa las mismas
modalidades que Serial.print().

Sintaxis:
Serial.print(val, formato).

println() Parmetros:
val: el valor a imprimir (cualquier tipo de dato).
formato: parmetro opcional que especifica la base (para enteros) o el nmero
de decimales (para flotantes).

Retorno:
size_t (long): print() devuelve el nmero de bytes escritos, aunque leer este
nmero es opcional.
read() Lee los datos de entrada presentes en el puerto serial.
Sintaxis:
Serial.print(val, formato).

Parmetros:
Ninguno

Retorno:
El primer byte de entrada disponible o -1 si no existen datos disponibles.
Lee caracteres del puerto serie y los deposita en un vector. La funcin termina
cuando el nmero de caracteres especificados han sido ledos o cuando el
tiempo de espera ha sido agotado.
Serial.readBytes() devuelve el nmero de caracteres depositados en el buffer.
Un 0 significa que no se pudieron leer datos vlidos

Sintaxis:
readBytes() Serial.readBytes(buffer, length)

Parmetros:
buffer: el vector dnde se almacenarn los bytes (char[] o byte[])
length: el nmero de byte a leer (int)

Retorno:
Byte
readBytesUntil() Lee caracteres del buffer serial y los deposita en un vector. La funcin
termina si: a) el carcter especificado ha sido encontrado (character), b) se ha
ledo el nmero de caracteres especificados (lenght) o c) el tiempo mximo
de lectura ha expirado (ver la funcin setTimeout()). readBytesUntil()
devuelve el nmero de bytes depositado en el buffer. Un 0 significa que no se
encontraron datos vlidos en la entrada.

Sintaxis:
Serial.readBytes(character, buffer, length)

Parmetros:
character: el carcter a buscar (char)
buffer: el vector dnde se almacenarn los bytes (char[] o byte[])
length: el nmero de byte a leer (int)

Retorno:
Byte
Lee caracteres desde el buffer serial y los almacena en una cadena de
caracteres (string). La funcin termina cuando el tiempo de espera se agota.

Sintaxis:
Serial.readString()
readString()
Parmetros:
Ninguno

Retorno:
Cadena leda desde el buffer serial.
Lee caracteres desde el buffer serial y los almacena en una cadena de
caracteres (string). La funcin termina cuando el carcter finalizador es
detectado o el tiempo de espera se agota.

Sintaxis:
Serial.readString(finalizador)
readStringUntil()

Parmetros:
finalizador: carcter a buscar para finalizar la funcin (char)

Retorno:
Cadena leda desde el buffer serial.
setTimeout() Establece el mximo de milisegundos a esperar por datos de entrada del
puerto serial.

Sintaxis:
Serial.setTimeout(tiempo)

Parmetros:
tiempo: tiempo de espera en milisegundos (long)

Retorno:
Ninguno
Escribe datos binarios en el puerto serial. Este dato es como un byte o series
write() de bytes. Para enviar los caracteres que representan los dgitos de un nmero
se debe utilizar la funcin print().
Esta funcin es llamada cuando existen datos disponibles en el puerto serial.
Para capturar los datos debe utilizarse Serial.read().

Sintaxis:
void serialEvent(){
instrucciones;
serialEvent() }

Parmetros:
instrucciones: cualquier instruccin vlida.

Retorno:
Ninguno

Vous aimerez peut-être aussi