Académique Documents
Professionnel Documents
Culture Documents
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)
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)
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()
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)
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
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
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)
http://www.arcos.inf.uc3m.es/~infostr
12
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
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
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