Sunteți pe pagina 1din 8

INTRODUCCION A ARDUINO

QUE ES UN ARDUINO
QU QUIERE DECIR QUE ARDUINO SEA SOFTWARE Y HARDWARE LIBRE?
PLATAFORMAS DE ARDUINO

HARDWARE DE ARDUINO UNO


CARACTERSTICAS DE LA MICRO PLACA
MODELO DEL MICROCONTROLADOR
FUNCIONAMIENTO DE PINES
SHIELD ARDUINOS
HARDWARE ANEXO (MODULOS, SENSORES Y ACTUADORES)

SOFTWARE ARDUINO UNO


INTALACION DE SOFTWARE (Cualquier Sistema Linux, Window , Mac OS x)
FUNCIONES DEL SOFTWARE DE ARDUINO

LENGUAJE ARDUINO
IDE O SKETCH
IDES ALTERNATIVOS
TIPOS DE VARIABLES
LIBRERIAS
ESTRUCTURA GENERAL DE UN SKETCH
EJEMPLOS NIVEL BASICOS
EJEMPLOS NIVEL USUARIO
EJEMPLO NIVEL AVANZADO

CONTENIDOS HARDWARE LIBRE

CONTENIDOS

ROBOTICA UBB

- HARDWARE LIBRE: ARDUINO

Contenidos en Lenguaje Arduino

Estructura General

Declaracion de
variables
Estructura de codigo

Tipos de variables

Lenguaje

Comunicacion
Serie a la placa

Comunicacion

Enviar datos desde


la placa

Gestion de tiempo

Recibir datos
desde el exterior
Selectivos

Bloques

Repetitivos
https://123d.circuits.io/circuits/957588-the-unnamed-circuit#breadboard

ESCRITURA GENERAL DE UN SKETCH


Declaracin de variables.

ROBOTICA UBB

- HARDWARE LIBRE: ARDUINO

Declaracin global se ha de declarar al principio de nuestro sketch; es


decir, antes (y fuera) de las secciones void setup() y void loop().
Declaracin local se ha de declarar en el interior de alguna de las
secciones de nuestro sketch (es decir, dentro de void setup() o de
void loop() o de otras que puedan existir).

Para declarar: tipovariable nombrevariable;


Para inicializar una VAR: tipoVar nombreVar=555;
Void Setup: Pre configuraciones, ejecuta una
instruccin
Void loop: Se realiza la ejecucin continua y
repetida infinitas veces hasta que se apague la
placa

Estructura y sintaxis del Cdigo


-

Empezar con maysculas cada instruccion


No es necesario tabular
Acabar con ;
Comentarios /* o //
Llamar o leer variables con ()
Designar ecuaciones con signo =

TIPOS DE VARIABLES
Variables generales
El tipo boolean: las variables de este tipo solo pueden tener dos
valores: cierto o falso. Se utilizan para almacenar un estado de entre
esos dos posibles, y as hacer que el skech reaccione segn detecte en
ellas uno u otro. Una variable booleana con un valor cualquiera
diferente de 0 ya se interpreta que tiene un valor cierto.
El tipo char: el valor que puede tener una variable de este
tipo es siempre un solo carcter (una letra, un dgito, un
signo de puntuacin...). Los dispositivos electrnicos son
incapaces de trabajar con letras directamente: las han de
traducir siempre primero a nmeros para entonces
poderlas almacenar y procesar.
Para saber a qu nmero interno corresponde un determinado carcter, y viceversa, la placa Arduino utiliza la
llamada tabla ASCII, la cual es una simple lista de equivalencias que asocia cada carcter con un nmero
determinado.

ROBOTICA UBB

- HARDWARE LIBRE: ARDUINO

El tipo byte: el valor que puede tener una variable de este tipo es siempre un nmero ENTERO entre 0 y 255.
Al igual que las variables de tipo char, las de tipo byte utilizan un byte (8 bits) para almacenar su valor y, por
tanto, tienen el mismo nmero de combinaciones numricas posibles diferentes (256), pero a diferencia de
aquellas, los valores de una variable byte no pueden ser negativos.
El tipo int: el valor que puede tener una variable de este tipo
es un nmero entero entre -32768 (-215) y 32767 (215-1),
gracias a que utilizan 2 bytes (16 bits) de memoria para
almacenarse. Esto es as para todas las placas Arduino excepto
para la Due.
El tipo word: Se puede tener una variable word en todas
las placas excepto la Arduino Due es un nmero entero entre 0
y 65535 (216-1).
El tipo float: el valor que puede tener una variable de este
tipo es un NMERO DECIMAL. Los valores float posibles
pueden ir desde el nmero -3,40282351038 hasta el nmero
3,40282351038. Debido a su grandsimo rango de valores
posibles, los nmeros decimales son usados frecuentemente
para aproximar valores analgicos continuos. No obstante,
solo tienen 6 o 7 dgitos en total de precisin. Es decir, los
valores float no son exactos, y pueden producir resultados
inesperados, como por ejemplo que, 6.0/3.0 no d exactamente 2.0.
El tipo array: Un array es una coleccin
indexada (como un diccionario) de variables del
mismo tipo. En el caso de un array el ndice es
simplemente un nmero (que corresponde al
nmero de orden de la variable concreta dentro
del array).
Constantes: Es posible declarar una variable de
tal forma que consigamos que su valor (Del tipo
que sea) permanezca siempre inalterado. Const
int mivariable; o #mivariable;

Variables de tiempo
Millis(): devuelve el nmero de milisegundos (ms) desde que la placa Arduino empez a ejecutar el sketch actual.
Este nmero se resetear a cero aproximadamente despus de 50 das (cuando su valor supere el mximo
permitido por su tipo, que es unsigned long). No tiene parmetros.
Micros(): devuelve el nmero de microsegundos (s) desde que la placa Arduino empez a ejecutar el sketch
actual. Este nmero de tipo unsignedlong se resetear a cero aproximadamente despus de 70 minutos.
Esta instruccin tiene una resolucin de 4 s (es decir, que el valor retornado es siempre un mltiplo de cuatro).
Recordar que 1000 s es un milisegundo y por tanto, 1000000 s es un segundo. No tiene parmetros.
Delay(): pausa el sketch durante la cantidad de milisegundos especificados como parmetro.
DelayMicroseconds(): pausa el sketch durante la cantidad de microsegundos especificados como parmetro de
tipo unsigned long . Actualmente el mximo valor que se puede utilizar con precisin es de 16383. Para
esperas mayores que esta, se recomienda usar la instruccin delay(). El mnimo valor que se puede utilizar con
precisin es de 3 s. No tiene valor de retorno.

ROBOTICA UBB

- HARDWARE LIBRE: ARDUINO

Variables Selectivas
If: Un bloque if sirve para

comprobar si una
condicin determinada es cierta (true,1) o falsa
(false,0). Si la condicin es cierta, se ejecutarn
las instrucciones escritas en su interior (es decir,
dentro de las llaves de apertura y cierre). Si no se
cumple, puede no pasar nada, o bien, si existe
tras el bloque if un bloque else (opcional), se
ejecutarn las instrucciones escritas en el interior
de ese bloque else.
Es decir, si solo escribimos el bloque if, el
sketch tendr respuesta solamente para cuando
s se cumple la condicin; pero si adems
escribimos un bloque else, el sketch tendr
respuesta para cuando s se cumple la condicin y
para cuando no se cumple tambin. En general, la
sintaxis del bloque if/else.
Es posible anidar bloques if uno dentro de otro
sin ningn lmite (es decir, se pueden poner ms
bloques if dentro de otro bloque if o else, si
as lo necesitamos).

Switch case: Es la opcin ideal cuando tenemos que elegir entre un nmero ms o menos elevado de
opciones. De algn modo es como el panel de botones en un ascensor dentro de unos grandes almacenes (si
pulsas 1 vas a la planta deportes, 2 a la de moda, 3 a la de electrodomsticos, etc).
El break al final de cada bloque de instrucciones
dentro de cada case es opcional. De no ponerlo, tras
haber ejecutado ese bloque se seguiran analizando los
dems casos hasta el final. Por tanto, es conveniente
incluir la instruccin break al final de cada bloque si
queremos impedir que el sketch se siga ejecutando
dentro del switch (esto har nuestro sketch ms
eficiente).La instruccin default es tambin opcional.
Se utiliza cuando queremos que se realicen una serie de
acciones concretas en caso de que ninguno de los casos
anteriores haya sido activado.

ROBOTICA UBB

- HARDWARE LIBRE: ARDUINO

Variables repetitivas
El bloque while: El bloque while (mientras, en ingls) es un
bloque que implementa un bucle; es decir, repite la ejecucin de las
instrucciones que estn dentro de sus llaves de apertura y cierre.
Cuntas veces? No hay un nmero fijo: se repetirn mientras la
condicin especificada entre sus parntesis sea cierta (true,1).
Si se llega por primera vez a una sentencia while y la condicin resulta
falsa directamente, no se ejecutarn las sentencias interiores ninguna
vez. Este detalle es importante tenerlo en cuenta.
Las sentencias interiores a un bucle while pueden ser tantas como se
quieran y de cualquier tipo, incluyendo, por supuesto, nuevos bucles
while.

El bloque do while: El bucle


do funciona exactamente
igual que el bucle while, con
la excepcin de que la
condicin es evaluada despus
de ejecutar las instrucciones
escritas dentro de las llaves.
Esto hace que las instrucciones siempre sean ejecutadas como mnimo una vez aun cuando la condicin sea falsa,
porque antes de llegar a comprobar esta, las instrucciones ya han sido ledas (a diferencia del bucle while,
donde si la condicin ya de entrada era falsa las instrucciones no se ejecutaban nunca)

El

bloque for La
diferencia entre un bucle
while (o do) y un bucle
for est en que en el
primero el nmero de
iteraciones
realizadas
depende del estado de la
condicin definida, pero en
un bucle for el nmero de
iteraciones se puede fijar a
un valor exacto. Por tanto,
usaremos el bucle for para
ejecutar un conjunto de
instrucciones
(escritas
dentro de llaves de apertura
y
cierre) un nmero
concreto de veces. Tiene un inicio y final.

ROBOTICA UBB

- HARDWARE LIBRE: ARDUINO

COMUNICACION
Comunicacin Serie a la placa
La placa Arduino se puede conectar a otros dispositivos mediante una conexin serie para poder transferir datos
entre s. Esta conexin se pude hacer de dos formas: usando el cable USB, o mediante los pines digitales 0 (RX) y
1 (TX). Para la conexin al PC usaremos simplemente el cable USB, mientras que los pines TX/RX los
guardaremos para usarlos como entrada/salida o para comunicarse con otro dispositivo segn se requiera.
Dentro de nuestros sketches podemos hacer uso de este receptor/transmisor para enviar datos al
microcontrolador (o recibirlos de l) gracias al elemento del lenguaje Arduino llamado Serial. Serial es un
objeto, o en otras palabras, un contenedor de instrucciones con alguna relacin entre ellas. A continuacin, es
explica la sintaxis y funcionamiento de las instrucciones incluidas en el objeto Serial:

Serial.begin(): Abre el canal serie para que pueda empezar la comunicacin por l. Por ello, su ejecucin es
imprescindible antes de realizar la cualquier transmisin, y se suele escribir dentro de la seccin void setup().
Su nico parmetro especifica la velocidad en bits/s a la que se producir la transferencia serie de los datos.
Para la comunicacin con un computador, se suele utilizar el valor de 9600.
Serial.end(): No tiene ningn argumento ni devuelve nada, y se encarga de cerrar el canal serie; de esta manera,
la comunicacin serie se deshabilita y los pines RX y TX vuelven a estar disponibles para la entrada/salida general.
Para reabrir el canal serie otra vez, se debera usar de nuevo serial.begin().
Las siguientes instrucciones serial corresponden a conjuntos de instrucciones que permiten enviar datos desde
el microcontrolador hacia el exterior.

Comunicacin desde la placa al exterior


Serial.print(): Enva a travs del canal serie un dato desde el microcontrolador hacia el exterior. Ese dato puede
ser de cualquier tipo: carcter, cadena, nmero entero, nmero decimal (por defecto de dos decimales), etc. Si
el dato se especifica explcitamente (en vez de a travs de una variable), hay que recordar que los caracteres se
han de escribir entre comillas simples y las cadenas entre comillas dobles.
La transmisin realizada por Serial.print() es asncrona. Eso significa que el sketch pasar a la siguiente
instruccin y seguir ejecutndose sin esperar a que empiece a realizarse el envo de los datos. Si se desea que la
transmisin se complete antes de continuarse ejecutando el sketch, se puede aadir justo despus de
Serial.print() la instruccin Serial.flush(), que no tiene ningn parmetro ni devuelve ningn valor de retorno.
Serial.println(): Hace exactamente lo mismo que Serial.print(), pero se efecta un salto de lnea al finalizar su
ejecucin.
Serial.write(): enva un dato desde el microcontrolador al exterior , este solo puede ocupar un byte esdecir la
variable ha de ser char o byte.

Comunicacin para recibir datos desde el exterior


Serial.available(): Devuelve el nmero de bytes caracteres disponibles para ser ledos que provienen del
exterior a travs del canal serie (va USB o va pines TX/RX). Estos bytes ya han llegado al microcontrolador y
permanecen almacenados temporalmente en una pequea memoria de 64 llamada buffer bytes hasta ser
procesados por la instruccin Serial.read().Si no hay bytes para leer, esta instruccin devolver 0. No tiene
parmetros.
Serial.read(): Devuelve el primer byte an no ledo de los que estn almacenados en el buffer de entrada. Al
hacerlo, lo elimina de ese buffer. Para devolver (leer) el siguiente byte, se ha de volver a ejecutar Serial.read(). Y
hacer as hasta que se hayan ledo todos. Cuando no haya ms bytes disponibles, Serial.read() devolver -1. No
tiene parmetros.

ROBOTICA UBB

- HARDWARE LIBRE: ARDUINO

Serial.peek(): devuelve el primer byte an no ledo de los que estn almacenados en el buffer de entrada. No
obstante, a diferencia de Serial.read(), ese byte ledo no se borra del buffer, con lo que las prximas veces que
se ejecute Serial.peek() se volver a leer el mismo byte. Si no hay bytes disponibles para leer, Serial.peek()
devolver -1. Esta instruccin no tiene parmetros.

S-ar putea să vă placă și