0% encontró este documento útil (0 votos)
12 vistas

Manual de Arduino (2)

Este manual proporciona una guía completa sobre los conceptos básicos de Arduino, incluyendo la estructura de programas, funciones, variables, y tipos de datos. Está diseñado para principiantes y permite la impresión y distribución con reconocimiento al autor, pero prohíbe su comercialización. La primera edición fue publicada en septiembre de 2014 bajo una licencia Creative Commons.

Cargado por

pale.lat27
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas

Manual de Arduino (2)

Este manual proporciona una guía completa sobre los conceptos básicos de Arduino, incluyendo la estructura de programas, funciones, variables, y tipos de datos. Está diseñado para principiantes y permite la impresión y distribución con reconocimiento al autor, pero prohíbe su comercialización. La primera edición fue publicada en septiembre de 2014 bajo una licencia Creative Commons.

Cargado por

pale.lat27
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

Est e manual aborda t odos los concept os básicos de Arduino y es una excelent e guía para

t odo aquel que quiera iniciarse en est e apasionant e mundo.

El manual ha sido confeccionado por Raúl Diosdado usando para ello la siguient e
información y recursos:

ht t p:/ / w w w .arduino.cc (Pagina oficial de Arduino)

Frit zing (Elaboración de esquemát icos y mont ajes) ht t p:/ / frit zing.org

ht t p:/ / w w w .zonamaker.com (Recursos propios)

Est á permit ida la impresión, dist ribución y modificación de est e manual siempre que se
reconozca a su aut or y las fuent es de las que se ext rajo su información.

No est á permit ida la comercialización o vent a de est e manual.

Un profes or s olía decirm e, "No inventes la rueda, eso ya se preocupo alguien en


inventarla, tu tan solo úsala" Ha ced que Arduino s ea vues t ra rueda

Primera edición publicada en Sept iembre de 2014

Est e manual est a bajo licencia Creat ive Commons Reconocimient o-NoComercial-Compart irIgual

ht t p:/ / creat ivecommons.org/ licenses/ by-nc-sa/ 4.0/ legalcode


INDICE

1. Estructura de un programa

1.1 Funciones
1.1.1 Set up()
1.1.2 Loop()

1.2 Llaves {}

1.3 Punt o y coma ;

1.4 Bloque de coment ario / * ...* /

1.5 Línea de coment ario / /

2. Variables

2.1 Ut ilización de las variables

2.2 Tipos de variables

3. Constantes

4. Operadores

4.1 Operadores arit mét icos

4.2 Asignaciones compuest as

4.3 Operadores de comparación

4.4 Operadores boleanos

5. Estructuras de control

5.1 Condicionales
5.1.1 If (si...)
5.1.2 If...else (si... si no...)

5.2 Bucles
5.2.1 For
5.2.2 While
5.2.3 Do... w hile

5.3 Element os de cont rol de flujo


5.3.1 Got o
5.3.2 Ret urn
5.3.3 Break
6. Entradas y salidas E/ S

6.1 E/ S digit ales


6.1.1 Lect ura de ent radas digit ales (digit alRead)
6.1.2 Escrit ura de salidas digit ales (digit alWrit e)

6.2 E/ S Analógicas
6.2.1 Lect ura de ent radas analógicas (analogRead)
6.2.2 Escrit ura de salidas analógicas (analogWrit e)

7. Puerto serie

7.1 Inicialización de la comunicación serie (Serial.begin)

7.2 Escrit ura del puert o serie (Serial.print )

7.3 Lect ura del puert o serie (Serial.read)

8. Otras instrucciones de interés

8.1 Delay (ms)

8.2 DelayM icroseconds (µs)

8.3 M illis ()

8.4 M in(x,y)

8.5 M ax(x,y)

ANEXO

Conexionado de ent radas y salidas en Arduino

Inst alación de Arduino y ent orno de programación


M anual de Arduino
Programación y concept os básicos

1. Estructura de un programa
La est ruct ura de un programa en Arduino puede llegar a ser muy diferent e en función
de la complejidad de la aplicación que queramos crear, pero como en la mayoría de
lenguajes de programación est a est ruct ura est á formada por funciones, sent encias,
bucles y ot ros element os que conforman la est ruct ura de programa.

1.1 Funciones

Una función es un bloque de código con un nombre y un conjunt o de est ament os que
son ejecut ados cuando se llama a dicha función. Las funciones de usuario se crean para
realizar t areas repet it ivas reduciendo de esa manera el t amaño del programa.

Las funciones est án asociadas a un t ipo de valor " t ype" , est e es el valor que devolverá
la función una vez t ermine su ejecución.

t ype nombreFunción (parámet ros)


{
Est ament os o inst rucciones;
}

Si la función no devuelve ningún valor, se le asignará el t ipo "void" o función vacía.


No es obligat orio pasarles parámet ros a la función, se pueden crear funciones
independient es que obt engan sus propios parámet ros para t rabajar.

Ejemplo de función:

/ * Define la función " mult iplicar" a la que se le pasarán los 2 números que
se deseen mult iplicar devolviendo un valor ent ero (int ). * /

int mult iplicar (int x, int y) / / función mult iplicar


{
int result ado; / / declara la variable donde se almacena el result ado
result ado = x * y; / / ejecut a la operación de mult iplicar
ret urn result ado; / / devuelve el result ado de la mult iplicación
}

Para hacer uso de la función ant erior, t an solo habrá que llamarla desde
cualquier part e del programa. Est a llamada a la función se realiza de la siguient e
manera:

void loop()
{
int i =2;

1
M anual de Arduino
Programación y concept os básicos

int j =3;
int k;

k = mult iplicación(i, j); / / llama a la función mult iplicación pasándole los


/ / parámet ros " i" y " j"
}

En Arduino los programas pueden est ar compuest os por infinidad de funciones,


pero exist e una est ruct ura básica que deben de cumplir t odos los programas.
Est a est ruct ura básica, est á formada por dos funciones t ot alment e
necesarias para la ejecución del programa, la función set up() y loop().

1.1.1 Set up ()

La función set up() se invoca una sola vez al comienzo del programa. Est a función
se usa para realizar la configuración inicial, dent ro de est a configuración
podemos est ablecer el modo de t rabajo de los pines o inicializar la comunicación
serie ent re ot ras cosas.

void setup()
{
Est ament os o inst rucciones;
}

1.1.2 Loop ()

La función loop() es la función principal dent ro del programa. Est a función se va a


ejecut ar cont inuament e de manera cíclica, ejecut ando t odas las inst rucciones
que se encuent ren en su int erior.

void loop()
{
Est ament os o inst rucciones;
}

Además de las funciones principales, exist en ot ros element os de la est ruct ura de
programa que ayudan a definir, delimit ar, est ruct urar y a hacer más claro el
cont enido del programa.

1.2 Llaves {}

Las llaves definen el principio y el final de un bloque de inst rucciones. Se usan para
delimit ar el inicio y fin de funciones como set up()o para delimit ar el alcance de los
bucles y condicionales del programa.

2
M anual de Arduino
Programación y concept os básicos

funcion()
{
Est ament os o inst rucciones;
}

1.3 Punto y coma ;

El punt o y coma " ;" se ut iliza para definir el final de una inst rucción y separarla de
la siguient e. Si no colocamos punt o y coma, el programa va a int erpret ar mal las
inst rucciones y se va a producir un error de compilación.

digit alWrit e (10, HIGH);

El error más común a la hora de programar suele ser olvidar poner punt o y coma
al final de la inst rucción.

1.4 Bloque de comentarios / * ...* /

Los bloques de coment arios son áreas de t ext o que nos ayudan a describir o
coment ar un programa, est os bloques serán ignorados a la hora de compilar el
programa en nuest ro Arduino.

/ * El bloque de coment ario ayuda


al programador a describir el programa
*/

Se pueden int roducir t odas las líneas de t ext o que se deseen siempre que se
encuent ren ent re los caract eres / * ...* / .

Se recomienda el uso de bloques de coment arios siempre que se pueda, ya que


ayudan a la comprensión del programa a personas ajenas al mismo, además, est os
coment arios no van a ocupar espacio de programa, ya que son ignorados a la hora
de compilar.

1.5 Línea de comentarios / /

La línea de coment arios t ienen la misma función que los bloques de coment arios,
la única diferencia es que las líneas de coment arios suelen usarse para coment ar
inst rucciones ya que solo afect an a una línea.

int x = 10; / / declara la variable 'x' como t ipo ent ero de valor 13

3
M anual de Arduino
Programación y concept os básicos

2. Variables
Las variables son element os donde se almacenan valores numéricos que serán usados
por el programa. Como su nombre indica, las variables van a cambiar de valor con la
evolución del programa y nos van a permit ir crear la lógica del programa en función de
est os cambios.

int variable_ent rada = 0; / / declara una variable y le asigna el valor 0


variable_ent rada = analogRead(2); / / la variable t oma el valor de la ent rada analógica 2

Una variable debe ser declarada y opcionalment e asignarle un valor ant es de ser usada
por el programa, si no hemos declarado la variable o lo hemos hecho con post erioridad
a su uso va a dar un error al compilar el programa.

Es recomendable asignarle un valor inicial a las variables para no t ener un valor


indet erminado que pudiera ocasionar algún error a la hora de la ejecución del
programa.

Cuando se asignen nombres a las variables, se deben de usar nombres que


ident ifiquen clarament e a dichas variables, para ello se usan nombres como
" pulsador" , " led" , " ent rada_1" .... est o va a ayudar a hacer un código legible y fácil de
ent ender.

2.1 Utilización de las variables

Las variables pueden ser declaradas en diferent es lugares del programa, en


función del lugar donde sean declaradas, las variables van a ser de t ipo global o
local, det erminando est o el ámbit o de aplicación o la capacidad de ciert as part es
del programa para hacer uso de las mismas.

Una variable global es aquella que puede ser vist a y ut ilizada por cualquier función
yest ament o de un programa. Las variables globales se declaran al comienzo del
programa, ant es de la función set up().

Una variable local es aquella que se define dent ro de una función o como part e de
un bucle. Solo será visible y podrá ut ilizarse dent ro de la función o bucle donde es
declarada.

La exist encia de variables globales y locales, permit e el uso de variables con el


mismo nombre en part es diferent es del programa, est as variables podrán
almacenar valores dist int os sin que se produzca ningún conflict o, ya que a las
variables locales solo t endrán acceso las funciones donde se declaren dichas
variables.

4
M anual de Arduino
Programación y concept os básicos

Ejemplo de variables globales y locales:

int led = 10; / / " led" es una variable global visible para cualquier función
void setup()
{
pinM ode (led, OUTPUT); / / est ablece el pin " led" como salida
}
void loop ()
{
float valor; / / " valor" es una variable local solo visible dent ro de " loop"
for (int i=0; i<20; i++) / / " i" es una variable local usada por el bucle for
{
digit alWrit e (led, HIGH); / / uso de la variable global " led"
}
}

2.2 Tipos de variables

A la hora de usar una variable dent ro del programa debemos de pararnos a pensar
que información o qué t ipo de operaciones vamos a aplicar a est as variables y en
función de est o asignarle un t ipo u ot ro. Debemos de asegurarnos que el t ipo de
variable que est emos usando t iene rango suficient e para almacenar los dat os sin
llegar a ser desproporcionada, ya que usar variables grandes va a consumir más
recursos de memoria.

Tipo de variables M emoria que ocupa Rango de valores


boolean 8 bit 's 0 o 1 (t rue o false)
char* 8 bit 's -128 a 127
int 16 bit 's -32.768 a 32.767
unsigned int 16 bit 's 0 a 65.535
long 32 bit 's -2.146.483.648 a 2.147483.647
unsigned long 32 bit 's 0 a 4.294.967.295
float * 32 bit 's -3'4028235 E+38 a 3'4028235 E+38

* char: el t ipo " char" se ut iliza para almacenar caract eres en format o ASCII
* float : el t ipo " float " se ut iliza para dat os con decimales, aunque cuent a con 32bit 's, t an
solo t iene una precisión de 7 dígit os en sus decimales.

3. Constantes
La diferencia fundament al ent re una variable y una const ant e es que la const ant e va a
ser un valor de solo lect ura que no va a poder ser modificado con la evolución del
programa.

5
M anual de Arduino
Programación y concept os básicos

Si queremos definir una const ant e, podemos hacerlo de manera muy similar a como
definíamos las variables, t an solo hay que indicar al programa que se t rat a de un valor
" no modificable" , para ello hay que añadir ant es del " t ipo" la palabra " const " , que va a
hacer que la variable sea de solo lect ura.

const float pi = 3.1415; / / crea una const ant e de t ipo " float " y le asigna el valor 3.1415

Es posible crear const ant es usando #define, est a sent encia va a nombrar las const ant es
ant es de ser compiladas por Arduino. Las const ant es creadas de est a manera no van a
ocupar memoria de programa, ya que el compilador va a remplazar est as const ant es
con el valor definido en el moment o de compilar.

#define pi 3.1415 / / crea una const ant e usando #define a la que le asigna el valor 3.1415

Hay que t ener cuidado a la hora de usar #define, ya que la sint axis es diferent e, no hay
que poner el operador de asignación " =" ni cerrar sent encia con el punt o y coma " ;" .

Usar #define puede ser problemát ico, ya que si exist e en cualquier part e del programa
alguna const ant e o variable con el mismo nombre que t engamos asignado en #define,
el programa lo va a sust it uir con el valor que t engamos asignado a est a const ant e, por
ello se debe t ener cuidado a la hora de asignar const ant es con #define y no crear
const ant es muy genéricas como #define x 10,ya que " x" es muy común usarlo como
variable dent ro de alguna función o bucle.

4. Operadores
Los operadores son los element os con los que vamos t ransformar las variables del
programa, hacer comparaciones, cont ar un número det erminado de event os… .Los
operadores se pueden considerar como uno de los element os más import ant es junt o
con las est ruct uras de cont rol. Dent ro de los operadores, podemos encont rarlos de
varios t ipos.

4.1 Operadores aritméticos

Los operadores arit mét icos son operadores que nos van a permit ir realizar
operaciones básicas como sumar, rest ar, dividir, mult iplicar...

x = x + 5; / / suma x+5 y guarda el valor en x


y = y - 8; / / rest a 8 a el valor " y" almacena el result ado en " y"
z = z * 2; / / mult iplica z* 2 y guarda el valor en z
k = k / 3; / / divide k ent re 3 y guarda el valor en k
p = 10; / / asigna a p el valor 10

6
M anual de Arduino
Programación y concept os básicos

Hay que t ener en cuent a el t ipo de variable que est amos usando a la hora de
realizar operaciones, ya que si vamos a efect uar una operación que da como
result ado un numero con decimales y hemos definido est as variables como int
(ent ero), el result ado no va a most rar la part e decimal (10 / 3 va a devolver 3 en
lugar de 3.33).

4.2 Asignaciones compuestas

Las asignaciones compuest as combinan una operación arit mét ica con una variable
asignada. Est as asignaciones son usadas comúnment e en bucles.

x ++; / / equivale a x = x + 1 (increment a x en 1)


x --; / / equivale a x = x - 1 (decrement a x en 1)
x += y; / / equivale a x = x + y
x -= y; / / equivale a x = x - y
x * = y; / / equivale a x = x * y
x / = y; / / equivale a x = x / y

4.3 Operadores de comparación

Los operadores de comparación se usan con frecuencia en est ruct uras


condicionales para comprobar si una condición se cumple o no. Normalment e
est os condicionales realizan la comparación ent re las variables y const ant es del
programa.

x == y; / / x es igual a y
x != y; / / x es dist int o de y
x < y; / / x es menor que y
x > y; / / x es mayor que y
x <= y; / / x es menor o igual que y
x >=y; / / x es mayor o igual que y

4.4 Operadores Boleanos

Son operadores lógicos que se usan para comparar 2 o más expresiones y que no
devuelven un valor, sino que dan un est ado de “ verdadero” (si se cumple la
expresión) o “ falso” (si no se cumple). Exist en 3 operadores lógicos, AND " & & " , OR
" | | " y NOT " !" .

if (x<3 & & x>0) / / Ciert o si se cumplen las dos expresiones


if (x<7 | | x=20) / / Ciert o si se cumple alguna de las dos expresiones
if (!x=3) / / Ciert o si x es dist int o de 3

7
M anual de Arduino
Programación y concept os básicos

5. Estructuras de control
Dent ro de las est ruct uras de cont rol se engloban t odos los est ament os que sirven para
guiar al programa en una u en ot ra dirección en función de si se cumplen o no las
condiciones que le marquemos al programa. Dent ro de est as est ruct uras podemos
encont rar condicionales, bucles o element os de cont rol de flujo.

5.1 Condicionales

Los condicionales son element os que chequean un est ado o condición y si est a
condición se cumple se pasa a ejecut ar las sent encias englobadas dent ro de la
condición.

5.1.1 If (si...)

If es un est ament o que se ut iliza para comprobar si una det erminada


condición se cumple. Si la condición se cumple, se pasará a ejecut ar las
sent encias encerradas dent ro del bloque if , si no se cumple la condición, el
programa salt ará est e bloque sin ejecut ar ninguna inst rucción.

if (x==10) / / Si x es igual a 10 ejecut a la inst rucción


{
ejecut a inst rucciones;
}

5.1.2 If... else (si... si no...)

If... elsefunciona de igual forma que if , pero añade la posibilidad de que la


condición no se cumpla,pasando a ejecut ar las inst rucciones encerradas
dent ro de else.

if (y != 10) / / Si " y" es dist int o de 10 ejecut a las inst rucciones


{
ejecut a inst rucciones;
}
else / / si no, ejecut a est a inst rucción
{
ejecut a inst rucciones;
}

Est e condicional puede ir precedido de ot ras est ruct uras condicionales del
mismo t ipo, anidando unas dent ro de ot ras y haciendo que sean
mut uament e excluyent es.

8
M anual de Arduino
Programación y concept os básicos

if (valor < 100) / / Si valor es menor que 100 ejecut a la inst rucción
{
ejecut a inst rucciones;
}
else if (valor >=500) / / Si valor es mayor o igual que 500 ejecut a la inst rucción
{
ejecut a inst rucciones;
}
else / / si no se cumplen las condiciones ant eriores, ejecut a est a inst rucción
{
ejecut a inst rucciones;
}

5.2 Bucles

Los bucles son element os que hacen que el programa ent re en un ciclo de
repet ición mient ras se cumplan las condiciones del bucle.

5.2.1 For

El bucle for se usa para repet ir un bloque de sent encias un número


det erminado de veces. Cada vez que se t erminan de ejecut ar las sent encias
encerradas dent ro del bucle, se comprobará la condición inicial, repit iéndose
el buche mient ras se cumpla dicha condición.

for (inicialización; condición; expresión)


{
ejecut a inst rucciones;
}

El buche for est á formado por 3 part es, la inicialización, la condición del
bucle y una expresión (la expresión no es necesaria o puede ponerse dent ro
de las sent encias del bucle).
Ejemplo de bucle for :

for (int x=0; x<10; x++) / / declara la variable x y la inicializa a 0, comprueba la


/ / condición (x<10), increment a x en 1
{
digit alWrit e (13, HIGH); / / envía un 1 al pin 13
delay (500); / / espera 500ms
digit alWrit e (13, LOW); / / envía un 0 al pin 13
delay (500); / / espera 500ms
}

5.2.2 While

El bucle w hile es un bucle que se repet irá const ant ement e mient ras se
cumpla la expresión del bucle. Dent ro de la expresión del bucle se pueden

9
M anual de Arduino
Programación y concept os básicos

usar variables que cambien dent ro del propio bucle o que t omen el valor de
alguna de las ent radas de Arduino que podemos t ener asociadas a sensores
u ot ros element os.

w hile (sensor < 150) / / ejecut a el bucle mient ras " sensor" sea menor a 150
{
ejecut a inst rucciones;
}

5.2.3 Do... w hile

El bucle do... w hile funciona de la misma manera que w hile, con la única
diferencia de que va a ejecut ar al menos 1 vez el bucle, ya que la condición
del mismo se comprueba al final.

do
{
sensor = analogRead (1); / / asigna a " sensor" el valor de la ent rada analógica 1
}w hile (sensor < 150) / / repit e el bucle mient ras " sensor" sea menor que 150

5.3 Elementos de control de flujo

El lenguaje de programación de Arduino, como muchos lenguajes de


programación, ha heredado caract eríst icas de los primeros lenguajes de
programación BASIC, est as caract eríst icas incluyen sent encias para el cont rol del
flujo como Got o , Ret urn y Break . Est as sent encias no son muy apreciadas a la hora
de programar, ya que en muchas ocasiones rompen el flujo de programa y
dificult an la comprensión del mismo. Además en lenguajes de programación de
alt o nivel como el que usa Arduino se pueden usar funciones y ot ros element os
alt ernat ivos para realizar las mismas t areas, aunque conviene conocer la
exist encia de est as funciones ya que pueden ser de ut ilidad en algunasocasiones.

5.3.1 Got o

Est a sent encia realiza un salt o a cualquier part e del programa que est e
marcada con la et iquet a correspondient e, la posición desde la que
realicemos el salt o quedará almacenada en la pila del programa para que
podamos regresar al lugar desde donde realicemos el salt o.

if (x == 110)
{
got o marca1; / / salt a a la et iquet a " marca1"
}

10
M anual de Arduino
Programación y concept os básicos

marca1: / / et iquet a a la que se salt ará (puede est ar en cualquier part e)

Los salt os que podemos realizar con Arduino est án limit ados a la pila de
programa, no pueden ser infinit os, por lo que no es recomendable anidar
bucles y salt os, ya que podemos romper el flujo de programa

5.3.2 Ret urn

Est a sent encia se usa para volver de un salt o got o . En el moment o que es
leída por el programa, se cargará la ult ima dirección almacenada en la pila
de programa, est o hará que se regrese a la posición desde la que se realizó el
últ imo salt o.

5.3.3 Break

La sent encia break es una sent encia que se debe de evit ar a t oda cost a, t an
solo debemos usarla cuando sea t ot alment e necesario. Est a sent encia
rompe la it eración del bucle donde se encuent re, haciendo salir al programa
del bucle sin t ener en cuent a que se cumplan las condiciones para salir del
mismo.

for (x = 0; x < 255; x ++)


{
w hile (sensor < 100)
{
x = 0;
break; / / Rompe el bucle w hile saliendo al bucle for
}
}

6. Entradas y salidas E/ S
Arduino es una plat aforma de desarrollo Hardw are que cuent a con pines E/ S para
comunicarse con el ext erior. Est os pines E/ S t ienen caract eríst icas especiales que los
hacen propicios para una u ot ra t area en función del t ipo de pin. Est as E/ S pueden
englobarse en 3 t ipos básicos, E/ S analógicas, E/ S digit ales y E/ S para la comunicación
serie. Exist en t ambién pines de propósit o especiales como salidas de reloj u
osciladores y pines de aliment ación con los que podemos suminist rar diferent es
t ensiones a placas ext ernas

11
M anual de Arduino
Programación y concept os básicos

Ant es de empezar a t rabajar con Arduino, deben de ser configurados los pines de la
placa que vayan a ser usados, asignándolos como ent radas o como salidas. En ningún
caso un mismo pin podrá hacer de ent rada y de salida al mismo t iempo.

La configuración de los pines se hará dent ro de la función set up(), est ableciendo el
modo de t rabajo del pin como ent rada o como salida.

La inst rucción que se ut iliza para realizar la configuración de los pines es pinM ode,
donde habrá que asignarle el pin que queremos configurar y si queremos que act úe
como ent rada (INPUT) o como salida (OUTPUT).

void setup()
{
pinM ode (10, OUTPUT); / / configura el pin 10 como salida
}

Los pines de Arduino est án configurados por defect o como ent radas, por lo que no es
necesario indicarles el modo de t rabajo si vamos a t rabajar con ellos como ent radas.

La razón de t ener los pines configurados por defect o como ent radas, es que las
ent radas se encuent ran en un est ado de alt a impedancia, lo que va a evit ar en muchos
casos que dañemos la placa al realizar una mala conexión. Si est ablecemos un pin
como salida y por error ent ra corrient e por dicho pin lo más seguro es que dañemos el
microcont rolador de manera irreversible.

12
M anual de Arduino
Programación y concept os básicos

Los pines que t engamos configurados como salida (OUTPUT) van a suminist rar una
corrient e máxima de 40mA por separado, sin que la corrient e t ot al de las salidas pueda
superar los 200mA. Est a corrient e es suficient e para hacer brillar un led, pero
insuficient e para act ivar element os de mayor pot encia.

6.1 E/ S Digitales

Los pines asignados a E/ S digit ales, son pines que t rabajan con dos est ados HIGH
(alt o) o LOW (BAJO). Según el modelo de Arduino que est emos usando, va a t omar
el est ado HIGH (alt o) como 5v o como 3.3v, el est ado LOW (bajo) est á asociado a
un nivel de volt aje 0.

6.1.1 Lect ura de ent radas digit ales (digit alRead)

Al hacer una lect ura digit al, vamos a leer el valor de un pin almacenando el
result ado como HIGH (alt o o 1) o como LOW (bajo o 0).

valor = digit alRead (pin); / / la variable " valor" t oma el est ado asociado al pin

Podemos especificar el pin asignándole direct ament e la numeración del pin


digit al que queremos leer o con una variable o const ant e previament e
definida.

6.1.2 Escrit ura de salidas digit ales (digit alWrit e)

Cuando hacemos una escrit ura digit al vamos a mandar al pin definido
previament e como salida el valor HIGH o LOW. El valor HIGH se va a t raducir
(en función del t ipo de Arduino) por una señal de 5 o 3.3 volt ios.

digit alWrit e (pin, HIGH); / / Est ablece el pin en est ado alt o (5 o 3.3v)

Ejemplo E/ S digit al

#define led 13 / / asigna a " led" el valor 13


#define pulsador 7 / / asigna a " pulsador" el valor 7
boolean valor;

void setup()
{
pinM ode (led, OUTPUT); / / est ablece led (pin 13) como salida
pinM ode (pulsador, INPUT); / / est ablece pulsador (pin 7) como ent rada
}

13
M anual de Arduino
Programación y concept os básicos

void loop()
{
valor = digit alRead (pulsador); / / lee el est ado del pulsador y lo asigna a valor
digit alWrit e (led, valor); / / asigna a led el est ado de la variable valor
}

6.2 E/ S Analógicas

Vivimos en un mundo analógico, y en muchas ocasiones, para poder int eract uar
con el ent ono no nos es suficient e con det ect ar o no una señal o poder act ivar o
desact ivar cosas, sino que necesit amos cuant ificar el valor de magnit udes reales y
responder en proporción.

Para poder leer y escribir valores analógicos, Arduino cuent a con una serie de E/ S
dest inadas a est e fin, con las que podremos leer y escribir niveles de t ensión que
irán de 0 a 5 o 3.3v (dependiendo del modelo de Arduino que est emos usando).

6.2.1 Lect ura de ent radas analógicas (analogRead)

La función analogRead realizará una lect ura del pin analógico que se le
indique, almacenando el valor leído en un regist ro de 10bit 's. Almacenar
est e valor en un regist ro de 10 bit 's va a implicar que t engamos un rango de
valores que va de 0 a 1023, asignándole el 0 a un nivel de 0 volt ios y el 1024
a un nivel de 5 volt ios, lo que va a det erminar la resolución que podemos
obt ener al hacer lect uras analógicas.

valor = analoRead (pin); / / la variable valor t oma el nivel del pin analógico

Los pines de ent rada analógicos no necesit an ser declarados como ent rada
(INPUT), ya que son siempre ent radas.

6.2.2 Escrit ura de salidas analógicas (analogWrit e)

Las salidas analógicas est án asociadas a los pines PWM (Pulse Widt h
M odult at ion) o modulación por ancho de pulso, est os pines, son pines
digit ales, pero con la part icularidad de poseer el PWM , y es que realment e
Arduino no ent rega a la salida una señal analógica pura, sino que consigue
un nivel de t ensión det erminado por medio de la modulación del ancho de
pulso.

14
M anual de Arduino
Programación y concept os básicos

El nivel de t ensión que t endremos a la salida del pin, va a ser igual al nivel de
t ensión promedio proporcional al ancho de los pulsos.

Como se observa en la imagen superior, variando en ancho del pulso,


podemos obt ener una señal promedio equivalent e. Para la primera señal,
cuyo ancho de pulso es del 10%, nos daría una señal analógica de 0.5v (el
10% de 5V), para la segunda una señal de 2.5v y para la t ercera señal
obt endríamos una señal equivalent e de 4.5v.

Las salidas analógicas t rabajan con regist ros de 8bit 's, o lo que es lo mismo,
pueden t omar valores comprendidos ent re 0 y 255, correspondiendo el 0 a
un nivel de 0 volt ios y el 255 al máximo volt aje (5 o 3.3 volt ios dependiendo
de la placa que est emos usando).

analogWrit e (pin, valor); / / saca por el pin el nivel de t ensión equivalent e a valor

Cuando t rabajemos con ent radas y salidas analógicas hay que t ener en
cuent a que al realizar una lect ura analógica el result ado se guarda en una
variable de 10 bit 's, pero la escrit ura se hace con una variable de 8 bit 's, por
lo que si queremos usar el valor leído para escribir en algún pin, primero
deberemos de adapt ar la variable de 10 a 8 bit 's, si no hacemos est o, el valor
que escribamos va a est ar fuera de rango y no va a most rar el nivel de
t ensión correct o.

15
M anual de Arduino
Programación y concept os básicos

7. Puerto serie
Arduino cuent a con una serie de pines que t ienen la capacidad de comunicarse con
ot ros disposit ivos usando la comunicación serie para ello. Con est a comunicación serie
se puede realizar t ambién una comunicación con el ordenador a t ravés del USB gracias
al chip FDTI que incorpora la placa y que realiza la conversión USB-serie.

La capacidad de comunicarse con ot ros disposit ivos, hace de Arduino una herramient a
muy pot ent e, ya que se pueden crear proyect os muy complejos con mult it ud de
disposit ivos que se comuniquen e int eract úen ent re sí, pero cuando se empieza a
programar, es mucho más int eresant e el poder est ablecer una comunicación ent re
nuest ro ordenador y Arduino, ya que de est a forma podemos int ercambiar
información con la placa, pudiendo ver cómo evolucionan las variables del sist ema y de
est a forma poder det ect ar posibles problemas de programación.

7.1 Inicialización de la comunicación serie (Serial.begin)

Para poder ut ilizar el puert o serie hay que inicializarlo est ableciendo la velocidad
de la conexión. Est a inicialización se hace siempre dent ro de la función set up() .

Un valor t ípico para realizar la conexión es 9600 baudios , aunque se pueden


asignar ot ros muchos valores.

void setup()
{
Serial.begin (9600); / / abre el puert o serie est ableciendo la velocidad en 9600
} / / baudios

Según el modelo de Arduino que est emos usando, puede t ener 1 o más puert os
para la comunicación serie, est os puert os est arán numerados y deberán de abrirse
de manera independient e según los que queramos usar.

En el Arduino M EGA se disponen de 4 puert os para la conexión serie, si se desean


abrir los 4 puert os el programa quedará de la siguient e manera:

void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
Serial3.begin(9600);
}

16
M anual de Arduino
Programación y concept os básicos

Debe de t enerse en cuent a que si se inicializa la comunicación serie, los pines


asociados al puert o serie que est emos ut ilizando no podrán ser usados para ot ro
propósit o.

7.2 Escritura en el puerto serie (Serial.print)

Si queremos que Arduino muest re información a t ravés del puert o serie, debemos
de usar inst rucciones que " impriman" en pant alla dicha información.

Para imprimir est os dat os se usa el comando Serial.print , que mandará a t ravés del
puert o serie el dat o o la cadena de caract eres que le indiquemos. Est a inst rucción
t iene algunas variant es, que veremos a cont inuación.

Serial.print (dat o, t ipo de dat o)

Est a es la inst rucción más común a la hora de enviar dat os a t ravés del puert o
serie, t an solo hay que indicar el dat o que queremos enviar y el format o en el que
queremos que muest re dicho dat o.

* not a: el t ipo de dat o es un campo opcional, si no le indicamos ningún t ipo,


most rará el dat o en format o decimal.

El " t ipo de dat o" puede t omar los valores BIN (binario), OCT (oct al), DEC (decimal)
y HEX (hexadecimal). En versiones ant iguas de Arduino, t ambién est aba disponible
el sacar los dat os en format o " BYTE" , pero est e format o fue eliminado, si
queremos sacar un byt e en pant alla, podemos ut ilizar la función
Serial.w rit e(valor) .

Serial.print (78, BIN); // manda el dat o " 1001110"


Serial.print (78, OCT); // manda el dat o " 116"
Serial.print (78, DEC); // manda el dat o " 78"
Serial.print (78, HEX); // manda el dat o " 4E"

Si est amos t rabajando con dat os que t ienen decimales (float ) y queremos
most rar un número concret o de ellos, podemos hacerlo poniendo en t ipo de
dat o el número de decimales que queremos most rar. Por defect o most rará dos
decimales.

Serial.print ln(1.23456, 0); / / manda por el puert o serie el valor " 1"
Serial.print ln(1.23456, 1); / / manda por el puert o serie el valor " 1.2"
Serial.print ln(1.23456, 2); / / manda por el puert o serie el valor " 1.23"
Serial.print ln(1.23456, 3); / / manda por el puert o serie el valor " 1.234"
Serial.print ln(1.23456, 4); / / manda por el puert o serie el valor " 1.2346"

17
M anual de Arduino
Programación y concept os básicos

Además de most rar dat os en pant alla, t ambién es posible mandar cadenas de
caract eres, para ello t an solo hay que encerrar el t ext o que queramos most rar
ent re comillas.

Serial.print (" Hola mundo" ); / / muest ra en pant alla " hola mundo"

Cuando mandamos dat os a t ravés del puert o serie y queremos visualizar est os
dat os en pant alla, es recomendable int roducir espacios y salt os de línea, ya que si
no lo hacemos los dat os nos van a aparecer de manera cont inua y no vamos a
poder diferenciar unos de ot ros. Para ordenar est os dat os, podemos int roducir
t abulaciones o salt os de línea con los siguient es comandos:

Serial.print (" \ t " ); / / int roduce una t abulación ent re los dat os
Serial.print (" \ n" ); / / int roduce un salt o de línea

Si queremos crear dat os en líneas diferent es, se puede opt ar por una variant e del
Serial.print que int roduce aut omát icament e un salt o de línea, haciendo que el
siguient e dat o que se vaya a escribir aparezca en la siguient e línea.

Serial.print ln(dat o, t ipo de dat o)

Como en el caso ant erior, el t ipo de dat o será un campo opcional, si no se rellena
est e campo, el dat o aparecerán en format o decimal.

La función Serial.print ln es equivalent e a poner:

Serial.print (dat o, t ipo de dat o);


Serial.print (" \ n" );

7.3 Lectura del puerto serie (Serial.read)

La inst rucción Serial.read es una inst rucción que va a leer dat os ent rant es del
puert o serie. Est os dat os deben de ser almacenados en variables para poder
t rabajar con ellos.

valor = Serial.read(); / / almacena el dat o del puert o serie en la variable valor


Serial.print (valor); / / " imprime" el dat o valor

Si hacemos uso de las inst rucciones ant eriores, vamos a est ar const ant ement e
leyendo el puert o serie, pero quizás no haya nada que leer y el dat o que est emos
almacenando en la variable " valor" sea un dat o erróneo. Para evit ar est os
problemas y opt imizar el programa, exist e la inst rucción Serial.available() .

18
M anual de Arduino
Programación y concept os básicos

Est a inst rucción se usa para comprobar si hay caract eres disponibles para leer en
el puert o serie. Serial.available va a t omar un valor ent ero con el número de byt es
disponibles para leer que est án almacenados en el buffer del puert o serie. Si no
hay ningún dat o disponible Serial.avaible va a valer 0, por lo que es muy fácil el
uso de est a función combinada con el condicional if.

if (Serial.available() > 0) / / si hay algún dat o disponible para leer


{
valor = Serial.read(); / / almacena el dat o del puert o serie en la variable valor
}

Arduino t iene un buffer que puede almacenar como máximo 64 byt es, una vez
sobrepasada est a capacidad se empezaran a escribir los dat os uno encima de ot ro,
perdiendo la información.

8. Otras instrucciones de interés


Arduino, como ot ros lenguajes de programación, cuent a con una serie de inst rucciones
básicas que son muy frecuent es a la hora de programar y que en muchas ocasiones
nos ayudan a dar una solución sencilla a los diversos problemas que podamos
encont rarnos.

Aquí voy a most rar algunas de las inst rucciones que Arduino t rae por defect o, pero no
son las únicas, ya que se pueden cargar librerías muy int eresant es (como la librería de
mat emát icas) que añaden funciones con las que podemos realizar t areas complejas de
manera muy sencilla.

8.1 Delay(ms)

Est a inst rucción det iene la ejecución del programa un t iempo det erminado. El
t iempo habrá que indicarlo ent re parént esis en milisegundos (1 segundo = 1000
milisegundos).

delay (1000); / / espera durant e 1 segundo (1000ms)

Hay que t ener mucho cuidado cuando se usa est a función, ya que se t rat a de una
función bloqueant e. Est a función va a det ener el flujo de programa, haciendo que
durant e est e t iempo no se det ect en event os como pueden ser presionar un
pulsador o la act ivación de un sensor, est o puede ocasionar graves problemas en
la aplicación, por lo que siempre que se pueda hay que evit ar usar la inst rucción
delay().

19
M anual de Arduino
Programación y concept os básicos

La inst rucción delay () es muy út il cuando ejecut amos t areas que requieren un
t iempo mínimo para dicha ejecución, como por ejemplo, para leer memorias
ext ernas o comunicarnos con algunos disposit ivos vamos a necesit ar un t iempo
mínimo para acceder a la memoria o est ablecer la comunicación, est e t iempo lo
obt enemos det eniendo el programa los milisegundos suficient es para realizar
dichas acciones.

8.2 DelayM icroseconds(µs)

La inst rucción delayM icroseconds() funciona igual que delay(), con la diferencia de
realizar las t emporizaciones usando microsegundos (µs) en lugar de milisegundos
(ms).

Est a inst rucción nos va a permit ir realizar t emporizaciones mucho menores,


haciendo que el t iempo que det enemos el flojo de programa sea práct icament e
impercept ible.

delayM icroseconds (10); / / espera durant e 0'00001 segundos

8.3 M illis ()

La inst rucción millis() va a devolver el t iempo en milisegundos t rascurridos desde


el inicio del programa hast a el moment o act ual. Est a inst rucción es muy
int eresant e, ya que nos permit e realizar t emporizaciones NO bloqueant es basadas
en event os.

t iempo = millis(); / / la variable " t iempo" t oma el valor del t iempo t ranscurrido

M illis est á asociado a un regist ro de 32bit 's, lo que le da la capacidad de


t emporizar unos 4.294.967.296 milisegundos o lo que es lo mismo 49 días y 17
horas. una vez t ranscurrido est e t iempo el regist ro se desbordará comenzando la
cuent a de nuevo.

Un ejemplo de t emporización con millis():

#define led 11
#define puls 10
boolean pulsador;
unsigned long t iempo;

void setup()
{
pinM ode(led, OUTPUT);

20
M anual de Arduino
Programación y concept os básicos

pinM ode(puls, INPUT);


}

void loop()
{
pulsador = digit alRead(puls);
if(pulsador == HIGH)
{
t iempo = millis() + 5000;
digit alWrit e(led, HIGH);
}

if(t iempo == millis())


{
digit alWrit e(led, LOW);
t iempo = 0;
}
}

8.4 M in(x,y)

La inst rucción min(x, y) va a comparar dos valores devolviendo el menor de ellos.

dat o = min(sensor, 100); / / dat o t oma el valor más pequeño ent re " sensor" o 100

En el ejemplo ant erior " dat o" va a t omar el valor del sensor siempre que est e
valga menos de 100, si es mayor t omará el valor 100. Esa inst rucción puede usarse
para limit ar superiorment e el valor de " dat o" .

8.5 M ax (x, y)

La inst rucción max(x, y) va a comparar dos valores devolviendo el mayor de ellos.

dat o =max(sensor, 100);

Est a inst rucción funciona igual que min(x, y), la diferencia es que va a ent rega el
mayor de los dos números, est o puede ser ut ilizado para inferiorment e el valor
que t omará la variable " dat o" .

21
M anual de Arduino
Programación y concept os básicos

22
M anual de Arduino
Programación y concept os básicos

ANEXO
CONEXIONADO DE ENTRADAS Y SALIDAS EN ARDUINO

INSTALACIÓN DE ARDUINO Y ENTORNO DE PROGRAM ACIÓN

23
M anual de Arduino
Programación y concept os básicos

1. Conexionado de entradas y salidas en Arduino


Cuando t rabajamos con Arduino debemos t ener present e que est a placa no t iene
capacidad para cont rolar element os de pot encia o para gest ionar grandes t ensiones en
los pines de ent rada.

Arduino es una plat aforma de desarrollo hardw are que funciona con 5 o 3.3 volt ios
(dependiendo de la placa Arduino que usemos) y que t an solo puede ent regar 40mA
(miliamperios) a las salidas de sus pines de manera independient e sin que se superen
los 200mA en conjunt o. Debido a est as caract eríst icas, podemos considerar a Arduino
como el " cerebro" de nuest ro sist ema, ya que va a realizar t oda la lógica de cont rol
pero no será capaz de cont rolar disposit ivos por sí mismo.

Para realizar el cont rol de est os disposit ivos necesit amos " músculos" que ent reguen la
pot encia que Arduino no puede suminist rar o que adapt en los diferent es niveles de
volt aje, para ello ya exist en una gran cant idad de shields que dan funcionalidad a
Arduino, haciendo posible el cont rol de element os de pot encia, la det ección de señales
ext ernas y la comunicación con ot ros disposit ivos.

En est e bloque se va a t rat ar el conexionado de element os a la placa Arduino de forma


direct a (sin el uso de Shields). El t ipo de conexionado que t engamos que realizar, va a
depender direct ament e de la carga conect ada.

1.1 Salida de pequeña señal (menor de 40mA)

Arduino puede t rabajar con señales de hast a 40mA, est a corrient e va a ser
suficient e para encender un LED o para est ablecer la comunicación con la mayoría
de disposit ivos digit ales.

Cuando t rabajemos con salidas de señales, t an solo debemos de añadir una


resist encia en serie que va a limit ar la corrient e que sale por el pin. Si el element o
al que vamos a conect ar el pin t iene una ent rada de alt a impedancia, est a
resist encia no va a ser necesaria.

El usar una salida digit al o analógica (PWM ) no va a cambiar nada a la hora de


t rabajar con pequeñas señales.

24
M anual de Arduino
Programación y concept os básicos

1.2 Entrada de pequeña señal

Arduino funciona con niveles de volt aje que van de 0 a 5 o 3.3 volt ios
(dependiendo de la placa que est emos usando). Por lo que solo va a poder
manejar señales que est én dent ro de est e rango.

Si la señal con la que est amos t rabajando est a dent ro del rango que puede
soport ar Arduino, no vamos a t ener ningún problema al cualquier t ipo de señal, ya
sea digit al o analógica.

1.2.1 Ent rada digit al por int errupt or o pulsador

Es muy común en Arduino usar pulsadores o int errupt ores que conmut en la
ent rada de los pines ent re los niveles ALTO (señal) y BAJO (sin señal) y para
ello hay dos maneras posibles de realizar el conexionado, usando
resist encias de PullUp o de PullDow n.

Conexión en PullUp
Al conect ar el circuit o mediant e una resist encia de PullUp, la ent rada del pin
va a est ar a nivel ALTO siempre que el pulsador o int errupt or se encuent re
abiert o. Cuando se sierre el pulsador o int errupt or, se va a conect ar el pin
direct ament e a GND, cambiando el est ado del pin de ALTO a BAJO.

Conexión en PullDow n
La conexión en PullDow n es t ot alment e opuest a a la conexión en PullUp,
est a va a poner el pin en est ado BAJO mient ras el int errupt or o pulsador se
encuent ren en reposo (abiert o), pasando a un est ado ALTO al cerrarse el
pulsador o int errupt or.

25
M anual de Arduino
Programación y concept os básicos

El colocar una resist encia de PullUp o PullDow n va a hacer que el pin de


Arduino est é conect ado siempre a un est ado lógico ALTO o BAJO y que al
cerrar el pulsador o int errupt or no se conect en la aliment ación y GND
direct ament e, (lo que ocasionaría un cort ocircuit o) ya que hay una
resist encia de 10KΩ ent re ambos.

1.2.2 Ent rada analógica por pot enciómet ro.

El uso de un pot enciómet ro en una de las ent radas analógicas, nos va a


permit ir adapt ar el volt aje de ent rada en el pin. Dicho nivel de t ensión va a
ser almacenado en un regist ro de 10bit 's, o lo que es lo mismo, va a valer de
0 a 1023, asignando el valor 0 a un nivel de t ensión 0 y 1023 al máximo nivel
de t ensión de la placa (5 o 3.3volt ios).

26
M anual de Arduino
Programación y concept os básicos

1.3 Salidas de potencia

La mayoría de las veces t endremos que cont rolar element os que requieren más de
los 40mA que es capaz de suminist rar cada pin como máximo, para ello debemos
de colocar un " driver" que suminist re la pot encia necesaria con el nivel de t ensión
adecuado.

En función de la carga que vayamos a colocar y de la regulación de la misma,


vamos a opt ar por un element o u ot ro para realizar est e cont rol, siendo los
element os más comunes para dicho cont rol los mosfet de pot encia, relés y
t ransist ores en configuración darlingt on.

M osfet de potencia

Los mosfet de pot encia se han popularizado mucho en los últ imos años, ya que
permit en el cont rol de grandes corrient es y velocidades de conmut ación muy
alt as, est o los hace muy adecuados para su uso en fuent es de aliment ación y en
reguladores de pot encia. Ot ra caract eríst ica muy import ant e es que no t ienen
consumo de corrient e en la puert a (se act ivan por t ensión), haciendo que el pin de
Arduino no t enga que suminist rar corrient e.

Los mosfet se comport an como int errupt ores, cuando se aplica una t ensión a la
puert a permit en el paso de corrient e a t ravés de él.

Los mosfet son muy usados junt o con los pines PWM , ya que est o va a permit ir
t ener un cont rol de la pot encia que se ent rega a la carga, pudiendo pudiéndose
adapt ar a las necesidades de cada moment o cambiando el ciclo de t rabajo.

27
M anual de Arduino
Programación y concept os básicos

Est a regulación es posible gracias a que el mosfet no t iene element os móviles en


su int erior, lo que permit e t ener ciclos de conmut ación muy elevados. Est o mismo
no sería posible con element os mecánicos como relés.

Relés

Los relés son int errupt ores mecánicos act ivados por corrient e. Est a corrient e de
act ivación suele superar la corrient e que es capaz de suminist rar Arduino, además
la bobina de relé crea flujos de corrient e peligrosos para la placa, por lo que en
cualquier caso hay que aislar la act ivación de la bobina de la placa Arduino usando
para ello opt oacopladores o t ransist ores en configuración darlingt on.

Los relés suelen usarse para cont rolar cargas de t odo t ipo, ya que es muy amplio el
cat alogo de relés que exist e. La única limit ación que t ienen los relés frent e a los
mosfet de pot encia es el ciclo de t rabajo, los relés no est án pensados para
conmut ar a mucha velocidad, ni para funcionar como reguladores con el PWM .
Los relés se ut ilizan para act ivar o desact ivar cargas de t odo t ipo siempre que los
ciclos de conmut ación no sean demasiado elevados.

Transistores en configuración darlington

Los t ransist ores dispuest os en configuración darlingt on est án pensados para


suminist rar pequeñas pot encias. Suelen ut ilizarse como drivers de relés, para
mover pequeños mot ores o para adapt ar diferent es et apas.

28
M anual de Arduino
Programación y concept os básicos

Est a configuración se consigue usando 2 t ransist ores bipolares en t ándem. Es muy


común el uso de int egrados que poseen en su int erior t ransist ores configurados de
est a manera y que ahorran t iempo y espacio a la hora de crear circuit os
complejos.

29
M anual de Arduino
Programación y concept os básicos

1. Instalación de Arduino y entorno de programación


Ant es de empezar a t rabajar con nuest ro Arduino, será necesario inst alar los drivers,
ya que nuest ro ordenador no va a reconocer la placa cuando la conect emos a alguno
de los USB del ordenador. Además de est o t ambién necesit amos el ent orno de
programación de Arduino, en el que vamos a escribir los programas que
post eriorment e cargaremos en Arduino.

1.1 Descarga del entorno de desarrollo y drivers

Para empezar hay que ir a la página oficial de Arduino (ht t p:/ / w w w .arduino.cc)
donde podemos descargar las últ imas versiones del soft w are. Según nuest ro
sist ema operat ivo, t endremos que descargar una versión u ot ra, y dent ro de la
opción de Window s, podemos hacer la descarga como un archivo ejecut able o
como un archivo ZIP.

Dent ro del archivo ejecut able, se encuent ra t ant o el ent orno de desarrollo para
Arduino, como los driver necesarios para que el disposit ivo sea reconocido por
nuest ro ordenador.

1.2 Instalando los drivers

Para que nuest ro ordenador reconozca correct ament e la placa Arduino, es


necesario inst alar los drivers para el procesador FTDI, est os drivers se encuent ran
dent ro de los archivos que hemos descargado, si hemos realizado la descarga en
format o ZIP, t endremos que descomprimir la carpet a para acceder a los drivers.

Al conect ar Arduino mediant e USB al PC, veremos cómo se enciende un LED verde,
est o nos indica que la placa est á siendo aliment ada correct ament e. Al moment o

30
M anual de Arduino
Programación y concept os básicos

de conect ar nuest ra placa al ordenador, Window s most rará el mensaje de que


hemos conect ado un nuevo disposit ivo y ejecut ara aut omát icament e el inst alador.

En el asist ent e de la inst alación le diremos que no se conect e a int ernet para
buscar los drivers y en la siguient e pant alla, que los inst alaremos desde una
localización especifica, que se encont rará dent ro de la carpet a que hemos
descargado ant eriorment e, en nuest ro caso será la carpet a " drivers" que se
encuent ra dent ro de la carpet a arduino-1.0.5 (la que hemos descargado).

31
M anual de Arduino
Programación y concept os básicos

Se deberá de indicar al asist ent e de inst alación la ubicación de la carpet a que


hemos descargado, en cuyo int erior se encuent ran los drivers necesarios para que
el ordenador reconozca nuest ro Arduino.

32
M anual de Arduino
Programación y concept os básicos

1.3 Entorno de Trabajo

Ahora que nuest ro ordenador reconoce perfect ament e nuest ra placa, es hora de
abrir el ent orno de t rabajo donde programaremos nuest ras aplicaciones. El
ent orno de programación de Arduino no necesit a inst alación, t an solo t endremos
que ir a la carpet a que descargamos y hacer doble clic sobre el icono que pone
" arduino" .(Recomiendo guardar la carpet a de Arduino en algún lugar de nuest ro
disco donde creamos que est e segura y crear un acceso direct o en el escrit orio.)

Al hacer est o nos aparecerá la pant alla principal el Sket ch, donde podemos
diferenciar las siguient es part es:

• Área de t rabajo: Est a será el área donde vamos a escribir el programa que
queremos ejecut ar en Arduino.
• Verificación: Cuando redact emos nuest ro programa, podemos verificar que la
sint axis del mismo es correct a y que no hemos comet ido ningún error
pulsando sobre est e icono, si hay algún error, no podremos cargar el
programa en Arduino.
• Carga de programa: Cuando t engamos list o nuest ro programa y no t enga
ningún error, lo cargaremos en Arduino pulsando sobre est e bot ón.
• Archivo nuevo: Abrirá una nueva área de t rabajo.
• Abrir un programa: Al pulsar sobre est e bot ón, t endremos la opción de abrir
un archivo desde una ubicación especifica o cargar en nuest ra área de t rabajo
una serie de programas o librerías ya creadas y que t iene Arduino por defect o.
• Guardar programa: Guardara en una ubicación especificada por el usuario el
cont enido del área de t rabajo

33
M anual de Arduino
Programación y concept os básicos

Cuando t engamos abiert o el ent orno de t rabajo, lo primero que debemos hacer es
seleccionar el t ipo de placa Arduino que est emos usando y el puert o USB al que la
t enemos conect ada. Est as opciones las podemos encont rar dent ro de la pest aña
" herramient as"

34

También podría gustarte