Académique Documents
Professionnel Documents
Culture Documents
Por qu Arduino?
Hay muchos otros microcontroladores y plataformas de
microcontroladores disponibles para computacin fsica. Parallax
Basic Stamp, de Netmedia BX-24, Phidgets, Handyboard del MIT, y
muchos otros ofrecen una funcionalidad similar. Todas estas
herramientas toman los detalles sucios de programacin de
microcontroladores y se envuelve en un paquete fcil de usar.
Arduino tambin simplifica el proceso de trabajar con los
microcontroladores, pero ofrece algunas ventajas para los profesores,
estudiantes y aficionados interesados sobre otros sistemas:
Primer bosquejo
En la gua de instalacin inicial ( en Windows , Mac OS X , Linux ), que ha
subido un boceto que parpadea un LED. En este tutorial, aprenders cmo
funciona cada parte de ese boceto.
Bosquejo
Un bosquejo es el nombre que Arduino utiliza para un programa. Es la
unidad de cdigo que se carga en y ejecutar en una placa Arduino.
Comentarios
Las primeras lneas del Blink boceto son un comentario:
/*
* Blink
*
* El ejemplo bsico Arduino. Se enciende un LED durante un segundo,
[Obtener cdigo]
Hay otro estilo para comentarios cortos, de una sola lnea. Estos
comienzan con // y continan hasta el final de la lnea. Por ejemplo, en la
lnea de:
[Obtener cdigo]
el mensaje "LED conectado al pin digital 13" es un comentario.
Variables
Una variable es un lugar para almacenar una parte de los datos. Tiene un
nombre, un tipo y un valor. Por ejemplo, la lnea desde el boceto Blink
anterior declara una variable con el nombre ledPin , el tipo int , y un valor
inicial de 13. Est siendo usado para indicar que el pin de Arduino el LED
est conectado. Cada vez que el nombre ledPin aparece en el cdigo, se
recuperar su valor. En este caso, la persona que escribe el programa
podra haber optado por no molestar a la creacin de la ledPin variable y en
vez simplemente haber escrito 13 en todas partes que necesitaban para
especificar un nmero de pin. La ventaja de utilizar una variable es que es
ms fcil mover el LED a un pin diferente: slo tiene que editar el una lnea
que asigna el valor inicial a la variable.
Funciones
Una funcin (tambin conocido como un procedimiento o sub-rutina) es una
pieza con nombre de cdigo que puede ser utilizado de otra parte en un
croquis. Por ejemplo, aqu est la definicin de la setup() la funcin del
ejemplo Blink:
void setup ()
{
pinMode (ledPin, OUTPUT); // establece el pin digital como salida
}
[Obtener cdigo]
Usted puede llamar a una funcin que ya ha sido definida (ya sea en su
bosquejo o como parte del lenguaje Arduino ). Por ejemplo, la lnea
pinMode(ledPin, OUTPUT); llama al pinMode() funcin, pasndole dos
parmetros: ledPin y OUTPUT . Estos parmetros son utilizados por el
pinMode() la funcin para decidir qu pin y el modo de configurar.
[Obtener cdigo]
setup () y loop ()
Hay dos funciones especiales que son una parte de cada boceto Arduino:
setup() y loop() . El setup() se llama una vez, cuando se inicia el boceto. Es
un buen lugar para hacer las tareas de configuracin, como los modos de
ajuste de pasador o inicializar las bibliotecas. El loop() funcin se llama una
y otra y es el corazn de la mayora de los bocetos. Es necesario incluir
ambas funciones en su dibujo, incluso si usted no los necesita para nada.
Variables
Una variable es un lugar para guardar un pedazo de datos. Tiene un
nombre, un valor y un tipo. Por ejemplo, esta declaracin (llamado
una declaracin):
int pin = 13;
crea una variable cuyo nombre es pin , cuyo valor es 13 , y cuyo tipo
es int . Ms tarde, en el programa, puede hacer referencia a esta
variable por su nombre, y en ese momento su valor se levant y se
utiliza. Por ejemplo, en esta declaracin:
pinMode(pin, OUTPUT);
Funciones
Ejemplo
Para "llamar" nuestra funcin de multiplicacin simple, le pasamos
los parmetros del tipo de datos que se est a la espera:
void loop {
int i = 2;
int j = 3;
int k;
k = myMultiplyFunction (i, j); // k ahora contiene 6
}
[Obtener cdigo]
Otro ejemplo
Esta funcin leer un sensor de cinco veces con analogRead () y
calcular la media de cinco lecturas. A continuacin, las escalas de los
datos a 8 bits (0-255), y la invierte, devolviendo el resultado invertido.
int ReadSens_and_Condition () {
int i;
int sval = 0;
for (i = 0; i <5; i ++) {
sval = sval + analogRead (0); // sensor en el pin
analgico 0
}
sval = sval / 5; // promedio
sval = sval / 4; // escala de 8 bits (0-255)
Referencia Inicio
Correcciones, sugerencias, y nueva documentacin debern ser
publicadas en el Foro .
El texto de la referencia de Arduino est licenciado bajo una licencia
de Creative Commons 3.0 Reconocimiento-Compartir bajo la misma .
Los ejemplos de cdigo de la referencia estn liberados al dominio
pblico.
Pines digitales
Las clavijas del Arduino se pueden configurar como entradas o
salidas. Este documento explica el funcionamiento de los pasadores
en esos modos. Mientras que el ttulo de este documento se refiere a
los pines digitales, es importante tener en cuenta que gran mayora
de Arduino (Atmega) pines analgicos, puede estar configurado, y se
utiliza, exactamente de la misma manera que los pines digitales.
Esto tambin significa, sin embargo, que los pines configurados como
pinMode (pin, INPUT) sin nada conectado a ellos, o con cables
conectados a los que no estn conectados a otros circuitos,
reportarn cambios aparentemente al azar en el estado de pin, la
captacin de ruido elctrico de la medio ambiente, o capacitivamente
acoplar el estado de un pasador de cerca.
NOTA: pin digital 13 es difcil de usar como una entrada digital que
los otros pines digitales, ya que tiene un LED y una resistencia
conectada que est soldada a la placa en la mayora de las placas. Si
habilita su resistencia pull-up interno 20k, colgar alrededor 1.7V
lugar del 5V esperado porque el bordo LED y resistencia en serie tire
el nivel de tensin hacia abajo, lo que significa que siempre devuelve
BAJO. Si tiene que usar el pin 13 como entrada digital, ajuste su
pinMode () para introducir y utilizar una resistencia de pull down
externo.
pinMode ()
Descripcin
Configura el pin especificado a comportarse ya sea como una
entrada o una salida. Vase la descripcin de los pines digitales para
obtener ms informacin sobre la funcionalidad de los pines.
A partir de Arduino 1.0.1, es posible activar las resistencias de pull-up
internas con la INPUT_PULLUP modo. Adems, el modo de ENTRADA
desactiva explcitamente las dominadas internos.
Sintaxis
pinMode (pin, modo)
Parmetros
pin: el nmero del pin cuyo modo que desea ajustar
modo: ENTRADA , SALIDA , o INPUT_PULLUP . (Ver el pines digitales
pgina para una descripcin ms completa de la funcionalidad).
Devoluciones
Ninguno
Ejemplo
void loop ()
{
digitalWrite (ledPin, HIGH); // establece el LED
retardo (1000); // espera un segundo
digitalWrite (ledPin, LOW); // establece el LED apagado
retardo (1000); // espera un segundo
}
[Obtener cdigo]
Nota
Los pines de entrada analgica se pueden utilizar como pines
digitales, referido como A0, A1, etc.
digitalWrite ()
Descripcin
Escribe una ALTA o una BAJA valor a un pin digital.
Si el pasador se ha configurado como una salida con pinMode (), su
voltaje se establece en el valor correspondiente: 5V (3.3V o en los
tablones de 3,3 V) para HIGH, 0V (tierra) para BAJA.
Si el pin se configura como una entrada, digitalWrite () permitir
(ALTO) o desactivar (BAJO) el pull-up interna en el pin de entrada. Se
recomienda ajustar la pinMode () para INPUT_PULLUP para habilitar la
resistencia de actuacin interna. Ver los pines digitales tutorial para
ms informacin.
NOTA: Si no se establece la pinMode () a SALIDA, y conectar un LED a
un pasador, al llamar digitalWrite (ALTO), el LED puede aparecer
tenue. Sin establecer explcitamente pinMode (), digitalWrite () le han
permitido a la resistencia de actuacin interna, que acta como una
gran resistencia limitadora de corriente.
Sintaxis
digitalWrite (pin, valor)
Parmetros
pin: el nmero de PIN
valor: ALTA o BAJA
Devoluciones
ninguno
Ejemplo
int ledPin = 13; // LED conectado al pin digital 13
void setup ()
{
pinMode (ledPin, OUTPUT); // Establece el pin digital como salida
}
void loop ()
{
digitalWrite (ledPin, HIGH); // Establece el LED en
retardo (1000); // Espera un segundo
digitalWrite (ledPin, LOW); // Establece el LED apagado
retardo (1000); // Espera un segundo
}
Nota
Los pines de entrada analgica se pueden utilizar como pines
digitales, referido como A0, A1, etc.
digitalRead ()
Descripcin
Lee el valor de un pin digital especificado, ya sea ALTA o BAJA .
Sintaxis
digitalRead (pin)
Parmetros
pin: el nmero del pin digital que desee leer (int)
Devoluciones
ALTA o BAJA
Ejemplo
Nota
Si el pasador no est conectada a nada, digitalRead () puede regresar
ya sea alta o baja (y esto puede cambiar aleatoriamente).
Un convertidor A / D
Los controladores Atmega utilizados para el Arduino contienen un
convertidor de analgico a digital (A / D) a bordo de 6 canales. El
convertidor tiene una resolucin de 10 bits, volviendo enteros de 0 a
1023. Si bien la funcin principal de los pines analgicos para la
mayora de los usuarios de Arduino es leer sensores analgicos, los
pines analgicos tambin tienen toda la funcionalidad de entrada de
propsito general / salida (GPIO) pasadores (el mismo que los pines
digitales 0 - 13).
En consecuencia, si un usuario necesita pines de salida de entrada
propsito ms general, y todos los pines analgicos no estn en uso,
los pines analgicos se pueden usar para GPIO.
Mapeo Pin
Los pines analgicos se pueden usar de forma idntica a los pines
digitales, utilizando los alias A0 (para la entrada analgica 0), A1, etc.
Por ejemplo, el cdigo se vera as de configurar el pin analgico 0 a
una salida, y para establecerlo ALTA :
pinMode (A0, OUTPUT);
digitalWrite (A0, HIGH);
Resistencias pullup
Los pines analgicos tambin tienen resistencias de pull-up, que
funcionan de forma idntica a pullup resistencias en los pines
digitales. Ellos estn habilitados mediante la emisin de un comando
como
digitalWrite (A0, HIGH); // Establecer pull-up en el pin analgico 0
Detalles y Advertencias
El comando analogRead no funcionar correctamente si un alfiler se
ha ajustado previamente a una salida, por lo que si este es el caso,
ajuste de nuevo a una entrada antes de usar analogRead. Del mismo
modo, si el pasador se ha establecido en alto como una salida, se
establecer la resistencia de pull-up, cuando se vuelve a una entrada.
Esta hoja de datos ATmega tambin advierte contra el cambio pines
analgicos en proximidad temporal cerca de hacer lecturas A / D
(analogRead) en otros pines analgicos. Esto puede hacer que el
ruido elctrico e introducir jitter en el sistema analgico. Puede ser
deseable, despus de manipular pines analgicos (en modo digital),
para agregar un pequeo retraso antes de usar analogRead () para
leer otros pines analgicos.