Vous êtes sur la page 1sur 17

El API de Arduino

SISTEMAS DE TIEMPO REAL http://www.arcos.inf.uc3m.es/~infostr


Grupo de Arquitectura y Tecnologa de Computadores (ARCOS)
1

Funciones del API de Arduino


Entrada/Salida digital Entrada/Salida analgica Entrada/Salida avanzada Tiempo y temporizadores Funciones matemticas Funciones trigonomtricas Funciones para generar nmeros aleatorios Comunicacin con el PC Interrupciones
http://www.arcos.inf.uc3m.es/~infostr
2

Entrada/Salida digital
Configurar un pin digital como entrada o salida
pinMode(pin, mode)

pin es el nmero de pin a configurar [0..13] mode es INPUT, OUTPUT Lectura digital de un pin especificado
val digitalRead(pin)

pin es el nmero de pin digital a leer Devuelve: val es HIGH (1), LOW (0) (valor devuelto) Escritura digital de un pin especificado
digitalWrite(pin,val)

pin es el nmero de pin digital a escribir val es HIGH (1), LOW (0)
http://www.arcos.inf.uc3m.es/~infostr
3

Entrada/Salida analgica
Lectura analgica de un pin especificado
val analogRead(pin)

pin es el nmero de pin analgico a leer [06] Devuelve: val es un nmero entero (int) entre 0 y 1023 Escritura analgica de un pin especificado
analogWrite(pin,val)

pin es el nmero de pin analgico a escribir Devuelve: val es un valor entre 0 (off) y 255 (on) Configurar el voltaje de referencia usado por Arduino
analogReference(voltage)

voltage es el voltaje de referencia (ver http://arduino.cc/en/Reference/AnalogReference)


http://www.arcos.inf.uc3m.es/~infostr
4

Entrada/Salida avanzada
Devuelve la longitud del pulso (pulse width) en un pin
val pulseIn(pin,mode)

pin es el nmero de pin digital a leer (int) mode es HIGH o LOW Devuelve: val es la duracin del puso en microsegundos (unsigned long) Genera una onda cuadrada con la frecuencia especificada en un pin determinado
tone(pin,frequency) tone(pin,frequency,duration)

pin es el nmero de pin donde generar el tono (int) frequency es la frecuencia del tono en hertzios (unsigned int) duration es la duracin del tono en milisegundos (unsigned long) Parar la generacin del tono iniciado mediante tone()
noTone(pin)

pin es el nmero de pin donde se gener el tono(int)


http://www.arcos.inf.uc3m.es/~infostr
5

Tiempo
Obtener el tiempo en milisegundos que transcurre desde que Arduino comenz a ejecutar el programa actual
val millis()

Devuelve: val es el nmero de milisegundos (unsigned long) Obtener el tiempo en microsegundos que transcurre desde que Arduino comenz a ejecutar el programa actual
val micros()

Devuelve: val es el nmero de microsegundos (unsigned long)

http://www.arcos.inf.uc3m.es/~infostr

Tiempo
Detiene la ejecucin del programa durante un tiempo especificado en milisegundos
delay(milisec)

milisec es el nmero de milisegundos (unsigned long) Detiene la ejecucin del programa durante un tiempo especificado en microsegundos
delayMicroseconds(microsec)

microsec es el nmero de microsegundos (unsigned long)

http://www.arcos.inf.uc3m.es/~infostr

Funciones matemticas I
Calcular el mnimo entre dos nmeros
val min(num1,num2)

num1 es el primero de los nmeros (cualquier tipo) num2 es el segundo de los nmeros (cualquier tipo) Devuelve: val es el menor de num1 y num2 Calcular el mximo entre dos nmeros
val max(num1,num2)

num1 es el primero de los nmeros (cualquier tipo) num2 es el segundo de los nmeros (cualquier tipo) Devuelve: val es el mayor de num1 y num2
http://www.arcos.inf.uc3m.es/~infostr
8

Funciones matemticas II
Calcular el valor absoluto de un nmero
val abs(num)

num es un nmero entero Devuelve: val es el valor absoluto de num Calcular la potencia de un nmero
val pow(base,exponente)

base es la base del nmero exponente es el exponente Devuelve: val es el resultado de la potencia (double)

http://www.arcos.inf.uc3m.es/~infostr

Funciones matemticas III


Calcular la raz cuadrada de un nmero
val sqrt(num)

num es un nmero entero val es el resultado de la raz cuadrada (double)

http://www.arcos.inf.uc3m.es/~infostr

10

Funciones matemticas IV
Restringir un nmero a un intervalo dado
val constrain(num,min,max)

num es un nmero (cualquier tipo de datos) min es el lmite inferior del intervalo (cualquier tipo de datos) max es el lmite superior del intervalo (cualquier tipo de datos) Devuelve: val
donde val=num si min <=num<=max donde val=min si num<min donde val=max si num>max

Mapear un nmero desde un rango de valores a otro


val map(num,fromRange1Min,fromRange1Max,toRange2Min,toRange2Max)

num es un nmero entero fromRange1Min es el lmite inferior del rango actual fromRange1Max es el lmite superior del rango actual toRange2Min es el lmite inferior del rango destino toRange2Max es el lmite superior del rango destino Devuelve: val es el valor mapeado en el rango de destino
http://www.arcos.inf.uc3m.es/~infostr
11

Funciones trigonomtricas
Devuelve el seno de un ngulo especificado en radianes
val sin(rad)

rad es el ngulo en radianes Devuelve: val es el valor del seno (double) Devuelve el coseno de un ngulo especificado en radianes
val cos(rad)

rad es el ngulo en radianes Devuelve: val es el valor del coseno (double) Devuelve la tangente de un ngulo especificado en radianes
val tan(rad)

rad es el ngulo en radianes Devuelve: val es el valor de la tangente(double)

http://www.arcos.inf.uc3m.es/~infostr

12

Generar nmeros aleatorios


Inicializa la semilla para generar nmeros pseudo-aleatorios
randomSeed(seed)

seed es el valor de la semilla Devuelve un nmero pseudo-aleatorio


val random(max)

max-1 es el lmite superior y 0 el lmite inferior Devuelve: val es el valor del nmero generado entre max-1 y 0 (long)
val random(min,max)

max -1 es el lmite superior min es el ngulo en radianes min es el lmite inferior Devuelve: val es el valor del nmero generado entre min y max-1 (long)
http://www.arcos.inf.uc3m.es/~infostr
13

Comunicacin serie con el PC


Inicializa la placa para enviar y recibir datos por el puerto serie
Serial.begin(speed)

speed es la velocidad de transferencia (tpicamente 9600) Enviar datos a travs del puerto serie (Arduino
Serial.print(data) Serial.println(data)

PC)

data es el dato a enviar (por defecto, texto plano) Leer datos a travs del puerto serie (Arduino PC)
val Serial.available()

Devuelve: val es un valor entero (int) que representa el nmero de elementos disponibles (sin leer) en el buffer de datos entrantes

val Serial.read()

Devuelve: val es un valor entero (int) recibido desde el puerto serie (cuando el dato es ledo se elimina del buffer) Limpiar el buffer de datos entrantes
Serial.flush()

http://www.arcos.inf.uc3m.es/~infostr

14

Interrupciones: externas
Asignar una funcin manejadora a una interrupcin externa
attachInterrupt(interrupt,function,mode)

interrupt es el valor (int) del pin donde se genera la interrupcin: 0 (pin digital2) o 1 (pin digital 3) function es el nombre de la funcin manejadora, e.d. la que se ejecuta cuando se produce la interrupcin especificada mode define cuando la interrupcin se sealiza: LOW dispara la interrupcin cuando el valor de pin es LOW (0) CHANGE dispara la interrupcin cuando el pin cambia de valor RISING dispara la interrupcin cuando el valor del pin cambia de LOW a HIGH FALLING dispara la interrupcin cuando el valor del pin cambia de HIGH a LOW

Deshabilitar la interrupcin sobre un pin


dettachInterrupt(interrupt)

interrupt es el valor (int) del pin donde se genera la interrupcin: 0 (pin digital2) o 1 (pin digital 3)

http://www.arcos.inf.uc3m.es/~infostr

15

Interrupciones
Habilitar interrupciones para que puedan recibirse
interrupts()

Deshabilitar interrupciones
noInterrupts()

http://www.arcos.inf.uc3m.es/~infostr

16

Bibliografa
Referencia completa del lenguaje de programacin de Arduino http://arduino.cc/en/Reference/HomePage

http://www.arcos.inf.uc3m.es/~infostr

17

Vous aimerez peut-être aussi