En paypal.me/10electronica Pueden colaborar con un aporte voluntario para poder continuar con el blog. Muchas gracias por visitar la página.

Entradas populares

jueves, 28 de octubre de 2010

El lenguaje Arduino

El lenguaje


El lenguaje del Arduino está basado en C/C++ y soporta todos las cobstrucciones C estandar y algunas características de C++. Lo vincula con el AVR Libc y permite el uso de cualquiera de sus funciones: mira el manual del usuario para más detalles. Texto extraido de arduino.cc.

[A] Estructura

void setup()

La función setup() es llamada cuando un sketch comienza. Se usa para inicializar variables, modos de pines, etc. La función setup solo se ejecutará una vez, despues de cada encendido o reseteo de la placa Arduino.

void loop()

Despues de crear la función setup(), la cual inicializa y establece los valores iniciales, la función loop() hace precisamente lo que su nombre sugiere, y realiza un bucle infinito, permitiendo a tu programa cambiar y responder.

(1) Estructuras de Control

if
if...else
for
switch case
while
do...while
break
continue
return
goto

(2) Sintaxis Adicional

; (punto y coma)
{} (llaves)
// (comentario de una linea)
/* */ (comentario de múltiples lineas)
#define (mejor usar const)
#include

(3) Operaciones Aritméticas

= (asignamiento)
+ (adición)
- (substracción)
* (multiplicación)
/ (división)
% (módulo)

(4) Operadores de Comparación

== (igual)
!= (no igual)
< (menor)
> (mayor)
<= (menor o igual)
>= (mayor o igual)

(5) Operadores Booleanos

&& (and)
|| (or)
! (not)

(6) Operadores de Acceso a Punteros

* (dereference operator)
& (reference operator)

(7) Operaciones con Bits

& (and)
| (or)
^ (xor)
~ (not)
<< (left)


>> (right)
(8) Operadores de composición

++ (incremento)
-- (decremento)
+= (adición)
-= (substracción)
*= (multiplicación)
/= (división)
&= (and)
|= (or)

[B] Funciones

pinMode(pin, mode)

Configura el pin especificado para ser de entrada o salida. PIN (el número de pin), MODE (o INPUT o OUTPUT).


digitalWrite(pin, value)

Escribe un valor ALTO o BAJO en el pin digital. Si el pin ha sido configurado como OUTPUT, su voltaje se pondrá al valor correspondiente: 5v (o 3.3v) para un valor ALTO, y 0v para un valor BAJO. Si el pin se configuró como INPUT, escribiendo un valor ALTO activará una resistencia pull-up interna de 20K, escribiendo un valor BAJO desactivará el pull-up. PIN (el número de pin), MODE (o INPUT o OUTPUT).


int digitalRead(pin)

Lee el valor del pin digital especificado, o ALTO o BAJO. PIN (el número de pin).


analogReference(type)

Configura el voltaje de referencia usado en la entrada analoógica. Las opciones son: DEFAULT (5v), INTERNAL (1.1v en el ATmega168 y 2.56v en el ATmega8) y EXTERNAL (el voltaje aplicado al pin AREF es usado como referencia).


int analogRead(pin)

Lee el valor del pin analógico especificado. Convierte la entrada entre 0 y 5v en un valor entero entre 0 y 1023. PIN (el número de pin).


analogWrite(pin, value) - PWM

Escribe un valor analógico (onda PWM) en un pin. Puede ser usado para variar la intensidad de un LED o mover un motor a diferentes velocidades. PIN (el número del pin), VALUE (entre 0 y 255).


shiftOut(dataPin, clockPin, bitOrder, value)

Desplaza un byte de datos un bit de cada vez. Empieza por el mas (el de la izquierda) o el menos (el de la derecha) bit significante. Cada bit es escrito por oden en un pin de datos, despues de que un pin reloj conmute para indicar que el bit esta listo. DATAPIN (el pin el cual devuelve cada bit, int), CLOCKPIN (el pin que conmuta cuando el DATAPIN se pone al valor correcto, int), BITORDER (que ordena el desplazamiento de los bit, o MSBFIRST o LSBFIRST), VALUE (el dato a desplazar).


unsigned long pulseIn(pin, value)

Lee un pulso (o ALTO o BAJO) de un pin. Por ejemplo, si el valor es ALTO, pulseIn() espera a que el pin se ponga en ALTO, empieza a contar, espera a que el pin se ponga BAJO y para de contar. PIN (número de pin), VALUE (tipo de pulso a leer, ALTO o BAJO), TIMEOUT (el número de microsegundo a esperar para que empiece el pilso, es opcional, por defecto es de un segundo, unsigned long). Devuelve la longitud del pulso en microsegundos o 0 si no ha empezado el pulso despues del TIMEOUT (unsigned long).


unsigned long millis()

Devuelve el número de milisegundos desde que la placa Arduino empezó a ejecutar el programa. Este número se pondrá a 0 despues de aproximadamente 50 días. Devuelve un unsigned long.


unsigned long micros()

Devuelve el número de microsegundos desde que la placa Arduino empezó a ejecutar el programa. Este número se pondrá a 0 despues de aproximadamente 70 minutos. Devuelve un unsigned long.


delay(ms)

Pausa el programa por un tiempo (en milisegundos) especificado por el parámetro. MS (el número de milisegundos, unsigned long).


delayMicroseconds(us)

Pausa el programa por un tiempo (en microsegundo) especificado por el parámetro. Para delays de mas de unos cuantos microsegundos, deberías usar la función delay(). US (el número de microsegundo, unsigned int).


min(x, y)

Calcula el mínimo de dos números. X (el primer número, de cualquier tipo), Y (el segundo número, de culquier tipo).


max(x, y)

Calcula el máximo de dos números. X (el primer número, de cualquier tipo), Y (el segundo número, de culquier tipo).


abs(x)

Computa el valor absluto de un número. X (el número). Devuelve X si X es mayor o igual a 0, -X si X es menor que 0.


constrain(x, a, b)

Restringe un número para estar en un rango. X (el número a restringir, de cualquier tipo), A (el valor bajo del rango, de cualquier tipo), B (el valor alto del rango, de cualquier tipo). Devuelve X si X esta entre a y b, A si X es menor que A, B si X es mayor que B.


pow(base, exponent)

Calcula el valor de un número elevado a una potencia. BASE (el número, float), EXPONENT (el exponente, float). Devuelve un double.


sqrt(x)

Calcula la raiz cuadrada de un número. X (el número, de cualquier tipo). Devuelve un double.


sin(rad)

Calcula el seno de un ángulo (en radianes). El resultado será entre 1 y -1. RAD (el angulo en radianes, float). Devuelve el seno del ángulo (double).


cos(rad)

Calcula el coseno de un ángulo (en radianes). El resultado será entre 1 y -1. RAD (el angulo en radianes, float). Devuelve el coseno del ángulo (double).


tan(rad)

Calcula la tangente de un ángulo (en radianes). El resultado será entre ifinito y -infinito. RAD (el angulo en radianes, float). Devuelve la tangente del ángulo (double).


randomSeed(seed)

Inicializa el generador de números pseudo-aleatorios, causando que empiece en un punto arbitrario de su secuencia aleatoria. Esta secuencia, aunque es muy larga, y aleatoria, es siempre la misma. LONG, INT (pasa un número para generar la secuencia).


long random(max)

Genera un número pseudo-aleatorio. MAX (valor del límite superior, exlusive). Devuelve un número aleatorio entre 0 y MAX-1, (long)


long random(min, max)

Genera un número pseudo-aleatorio. MIN (valor del límite inferior, inclusive), MAX (valor del límite superior, exlusive). Devuelve un número aleatorio entre MIN y MAX-1, (long)


lowByte()

Extrae el byte de menor orden (el de la derecha) de una palabra (2 bytes). X (un valor de cualquier tipo). Devuelve un byte.


highByte()

Extrae el byte de mayor orden (el de la izquierda) de una palabra (2 bytes). X (un valor de cualquier tipo). Devuelve un byte.


bitRead()

Lee un bit de un número. X (el número del cual leer el bit), N (que bit leer, empezando en 0 para el bit menos significante, el de la derecha). Devuelve el valor del bit (0 o 1).


bitWrite()

Escribe un bit de una variable numérica. X (la variable numérica en la cual escribir), N (que bit del número escribir, empezando en 0 para el bit menos significante), B (el valor a escribir en el bit, 0 o 1).


bitSet()

Activa (escribe un 1) un bit de una variable numérica. X (la variable numérica), N (que bit poner a 1, empezando por 0 para el bit menos significante (el de la derecha).

bitClear()

Desactiva (escribe un 0) un bit de una variable numérica. X (la variable numérica), N (que bit poner a 0, empezando por 0 para el bit menos significante (el de la derecha).


bit()

Computa el valor del bit especificado (bit 0 es 1, bit 1 es 2, bit 2 es 4, etc.). N (el bit cuyo valor queremos computar). Devuelve el valor del bit.


attachInterrupt(interrupt, function, mode)

Especifica una función a llamar cuando una interrupción externa ocurre. INTERRUPT (el número de la interrupción), FUNCTION (la función a la que se llama con la interrupción ocurre), MODE (LOW: lanzar la interrupcion cuando el pin está en bajo, CHANGE: activar la interrupción cuando el pin cambia de valor, RISING: activar la interrupción cuando el pin cambia de bajo a alto, FALLING: activar la interrupción cuando el pin cambia de alto a bajo.


detachInterrupt(interrupt)

Desactiva la interrupción dada. INTERRUPT (número de la interrupción a desactivar (0 o 1).


interrupts()

Reactiva las interrupciones despues de que hayan sido desactivadas por noInterrupts().


noInterrupts()

Desactiva las interrupciones.


Serial: begin(), available(), read(), flush(), print(), println(), write().


[C] Variables

(1) Constantes

HIGH | LOW
INPUT | OUTPUT
true | false
integer constants
floating point constants

(2) Tipos de datos

void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long
float
double
string
array

(3) Conversion

char()
byte()
int()
word()
long()
float()

(4) Variable Scope & Qualifiers

variable scope
static
volatile
const

(5) Utilidades

sizeof() (sizeof operator)

No hay comentarios:

Publicar un comentario