Está en la página 1de 26

ARQUITECTURA

ARDUINO
Jerson Antonio Enamorado

20091001600

Universidad Nacional
Autnoma de Honduras

Ing. Elmer Padilla


IS603 ARQUITECTURA DE
COMPUTADORAS

Contenido
Introduccin.......................................................................................................... 2
Objetivo.............................................................................................................. 3
Arduino................................................................................................................. 4
Formatos y desarrollos disponibles de Arduino...................................................5
Arquitectura del microcontrolador:...................................................................10
Entradas y Salidas............................................................................................. 18
Seales Analgicas y Digitales..........................................................................19
Funcionamiento del microcontrolador...............................................................19
Circuitos para conectar las entradas y las salidas............................................19
Software: el lenguaje y entorno de programacin............................................21
Estructura general............................................................................................ 22

Introduccin
Arduino es una placa electrnica programable que se puede configurar por una
variedad de lenguajes de programacin, arquitectura de la placa Arduino
conoceremos los compone y presentamos los diferentes tipo de Arduino que existe
en el mercado.
Para la utilizacin de este tipo de placa se debe tener en cuenta conocimiento
bsico de electrnica y el manejo de algn lenguaje compartible con Arduino.

Objetivo

Conocer que es Arduino.


Conocer la arquitectura de Arduino.
Saber cmo es la estructura de un programa para la configuracin de Arduino.

Arduino

ARDUINO es una placa basada con un microcontrolador o chip: ATmega168


(Duemilanov=Atmega 328) que permite conectar sensores y actuadores mediante
sus entradas y salidas, analgicas y digitales.
Los proyectos pueden ser autnomos o conectados con software (Flash,
Processing, MaxMSP, etc) a travs del puerto serie Arduino es una:
Plataforma de recurso abierto (open source) basada en un software y hardware
de amistoso utilizada ampliamente por artistas, diseadores, etc.
Software - ARDUINO - se inspira en Wiring y un entorno de desarrollo integrado
(IDE integrated development environment) propio -basado en Processing.

La placa es una placa de circuito impreso donde va instalado el microprocesador,


la memoria, las conexiones de entrada y salida y la conexin para el puerto USB.
Puerto USB: a travs de l se cargan las instrucciones a ejecutar, el programa que
es realizado en el entorno de programacin de Arduino. Comunicacin ArduinoOrdenador.
Microprocesador: realiza las instrucciones almacenadas en el programa de forma
cclica. Es un circuito integrado que contiene muchas de las mismas cualidades
que una computadora. Escribe en los pines DS2-13 y lee en los DE2-13 AE0-5.
Botn de reset: permite resetear el programa Pines de entrada y salida: Permiten y
permite cargar uno nuevo. Conectar elemento que dan informacin y crean
actuaciones.
Entradas salidas, alimentacin, conexionado.

Formatos y desarrollos disponibles de Arduino.

Tipos de Arduino boards

Arduino LilyPad:
El LilyPad Arduino es una placa con microcontrolador diseado para prendas y etextiles. Puede utilizar con complementos similares como fuentes de alimentacin,
sensores actuadores unidos por hilo conductor. La placa esta basada en
el ARmega168V (la versin de baja consumo del ATmega168)(hoja de datos), o
el ATmega328V (datasheet). ElLilyPad Arduino ha sido diseado y desarrollado
por Leah Buechley y SparkFun Electronics.

Arduino Mega:
El Arduino Mega es una placa microcontrolador basada ATmeg1280 (datasheet).
Tiene 54 entradas/salidas digitales (de las cuales 14 proporcionan salida PWM),
16 entradas digitales, 4 UARTS (puertos serie por hardware), un cristal oscilador
de 16MHz, conexin USB, entrada de corriente, conector ICSP y botn de reset.
Contiene todo lo necesario para hacer funcionar el microcontrolador; simplemente
conectlo al ordenador con el cable USB o alimntalo con un trasformador o
batera para empezar. El Mega es compatible con la mayora de shields diseados
para el Arduino Duemilanove o Diecimila
Arduino Fio:
El Arduino Fio is una placa para microcontrolador basada en el ATmega328P (hoja
de informacin) Funciona a 3.3V y 8MHz. Tiene 14 pines de E/S digitales (de los
cuales 6 pueden usarse como salidas PWM), 8 entradas analgicas,
unresonator en placa, un botn de reinicio (reset), y agujeros para montar
conectores de pines. Tiene conexiones para una batera de polmero de Litio e
incluye un circuito de carga a travs de USB. En el reverso de la placa tiene
disponible un zcalo para mdulos XBee.

Arduino Pro:
La Arduino pro es una placa con un microcontrolador ATmega168 (datasheet) o en
el ATmega328 (datasheet). La Pro viene en versiones de 3.3v / 8 MHz y 5v /

16 MHz. Tiene 14 E/S digitales (6 de las cuales se puedes utilizar como salidas
PWM), 6 entradas analgicas, un resonador interno, botn de reseteo y agujeros
para el montaje de tiras de pines. Vienen equipada con 6 pines para la conexin a
un cable FTDI o a una placa adaptadora de la casa Sparkfun para dotarla de
comunicacin USB y alimentacin

Arduino Nano:
El Arduino Nano es una pequea y completa placa basada en
el ATmega328 (Arduino Nano 3.0) o ATmega168 (Arduino Nano 2.x) que se usa
conectndola a una protoboard. Tiene ms o menos la misma funcionalidad que el
Arduino Duemilanove, pero con una presentacin diferente. No posee conector
para alimentacin externa, y funciona con un cable USB Mini-B en vez de el cable
estandar. El nano fue diseado y est siendo producido por Gravitech.

Arduino BT:
El mdulo Bluetooth utilizado es el Bluegiga WT11, la versin iWrap
(detalles y hoja de informacin [pdf]). El mdulo Bluetooth se puede configurar con
comandos enviados a travs del puerto serie del ATmega168 (consulta la gua del
usuario iWrap para ms detalles). Un programa para configurar el nombre y cdigo
del mdulo bluetooth se ejecuta una vez en cada BT Arduino. El nombre se
establece en ARDUINOBT y el cdigo de acceso en 12345.
Arduino Mini:
Arduino Mini es una placa con un pequeo microcontrolador basada en
el ATmega168 (datasheet), pensada para ser usada en placas de prototipado y
donde el espacio es un bien escaso. Cuenta con 14 entradas/salidas digitales (de
las cuales 6 pueden ser usadas como salidas PWM ), 8 entradas analgicas y un
cristal de 16 MHZ. Puede ser programada con eladaptador Mini USB u otros
adpatadores USB o RS232 a TTL serial.

Arduino Pro Mini:


La Arduino Mini pro es una placa con un
microcontrolador ATmega168 (datasheet). Tiene 14 E/S digitales (6 de las cuales
se puedes utilizar como salidas PWM), 6 entradas analgicas, un resonador
interno, botn de reseteo y agujeros para el montaje de tiras de pines. Se le puede
montar una tira de 6 pines para la conexin a un cable FTDI o a una placa
adaptadora de la casa Sparkfun para dotarla de comunicacin USB y
alimentacin.
USB/Serial Light Adapter:
Es una placa bsica que utiliza una interfaz RS232 para comunicarse con el
ordenador o para la carga de sketches. Esta placa es fcil de montar, incluso
como ejercicio de aprendizaje. Se ha diseado para utilizar los componentes ms
simples posibles, de manera que sea fcil de construir, incluso si buscas las
componentes en la tienda de la esquina.
Official Arduino Shields
Arduino Ethernet Shield:

La Arduino Ethernet Shield permite a una placa Arduino


conectarse a internet. Est basada en el chip ethernet Wiznet W5100 (datasheet).

El Wiznet W5100 provee de una pila de red IP capaz de TCP y UDP. Soporta
hasta cuatro conexiones de sockets simultneas. Usa la librera Ethernet para
escribir programas que se conecten a internet usando la shield.
Arduino Wireless SD Shield:El Wireless SD protector permite una placa Arduino
para comunicarse de forma inalmbrica mediante un mdulo inalmbrico. Se basa
en los mdulos XBee de Digi, pero puede utilizar cualquiera de los mdulos con la
misma huella. El mdulo se puede comunicar hasta 100 pies en interiores o al aire
libre de 300 pies (con lnea de visin). Puede ser utilizado como un reemplazo de
serial / USB o puede ponerlo en un modo de comandos y configurarlo para una
variedad de opciones de transmisin y redes de malla. Los escudos estalla cada
uno de los pins el XBee a una almohadilla de soldadura a travs de orificios.
Arduino Wireless Proto Shield: El Wireless escudo Proto permite una placa
Arduino para comunicarse de forma inalmbrica mediante un mdulo
inalmbrico. Se basa en los mdulos XBee deDigi, pero puede utilizar cualquiera
de los mdulos con la misma huella. El mdulose puede comunicar hasta
100 pies en interiores o al aire libre de 300 pies (con lnea de visin). Puede ser
utilizado como un reemplazo de serial / USB o puedeponerlo en un modo de
comandos y configurarlo para una variedad de opciones de transmisin y redes de
malla. Los escudos estalla cada uno de los pins el XBee a una almohadilla
de soldadura a travs de orificios.
Arduino Motor Shield:

El Arduino protector del motor se basa en la L298 (hoja de


datos), que es un doble puente completo controlador diseado para
manejar cargas inductivas tales como rels, solenoides y motores de corriente
continua paso a paso. Le permitemanejar dos motores de corriente continua con
su placa Arduino, el control de la velocidad y direccin de cada uno de forma

independiente. Tambin se puede medir la absorcin de corriente del motor de


cada motor, entre otras caractersticas. El escudo es TinkerKit compatible, lo que
significa que puede crear rpidamente proyectos conectando mdulos TinkerKit a
la junta.
Arduino Proto Shield: El Arduino Shield prototipos hace que sea fcil para
usted para disear circuitospersonalizados. Se puede soldar piezas en el rea de
prototipo para crear su proyecto, ni lo use con un pequeo breadboard (no
incluido) para probar rpidamente las ideas de circuitos sin necesidad
de soldadura. Tiene conexiones adicionales para todos los Arduino pines I / O, y
tiene espacio para montar a travs de agujero y la superficie de montaje de
circuitos integrados. Es una forma conveniente de hacer el circuito de la
costumbre y la Arduino en un nico mdulo.

Arquitectura del microcontrolador:

Aref- Pin de referencia analgica (naranja)


GND- Seal de tierra digital (verde claro)
Pines digitales 2-13. Entrada y salida (verde)
Pines digitales 0-1 / entrada y salida del puerto serie: TX/RX (verde oscuro)
Botn de reset- Pulsador(azul oscuro)
Pines de entrada analgica 0-5 (azul claro)
Pines de alimentacin y tierra (fuerza: naranja, tierra: naranja claro)
Entrada de la fuente de alimentacin externa (9-12V DC) X1 (rosa) Puerto
USB (amarillo)
Tiene 14 pins D I/O (6 pueden ser usados como PWM O o A/O), y 6 A/I .
Cada uno, puede ser usado como I o O, usando las funciones pinMode(),
digitalWrite() y digitalRead().
Conector USB

Jack de poder
Cabezal ICSP o In Circuit Serial Programmer
Botn reseteo

Cabezal ICSP o In Circuit Serial Programmer


Es un mtodo para programar microcontroladores AVR y PIC sin tener que
desmontarlos del circuito impreso Sirve para poder programar el bootloader de
Arduino.
Bootloader es el programa bsico que escucha al puerto serie y as poder
descargar programas desde el IDE.
Chips con programador externo son:

PIC
Basic Stamp
ARM
MSP430

VIN.
input voltaje.

Cuando se

usa poder

Externo (en vez de 5V), se puede suplir V usando este pin o, si se utiliza el jack de
poder, accede va este pin.

5 V.
Fuente de poderr egulada para dar energa
a microcontrolador y otros componentes de la placa. Este puede venir desde VIN o
suplido por USB u otro componente de 5V.

3V3.
Una fuente de 3.3 Volts generada por el chip FTDI chip. Corriente mxima de 50
mA.

GND.
Pin tierra.

0 (RX) y 1 (TX).
Recibe y transmite
data serial.

PWM: 3, 5, 6, 9, 10 y

PWM o utputs de 8-bits utilizando


funcinanalogWrite().
(.

* LED: pin 13.


Led integrado cuando pin esta en valor
HIGH,
led est on y cuando pin est en LOW, est

Entradas y Salidas
El microcontrolador recibe informacin de las entradas (read), la procesa y escribe
un 1 o un 0 (5v 0v) en las salidas (Write), actuando sobre el dispositivo que
tenemos conectado.
Al microcontrolador por lo tanto conectamos unos sensores a la entrada y unos
actuadores a la salida, para que en funcin del programa y de la lectura de los
sensores se produzcan una serie de actuaciones.
Entrada-

Microc ontrolad or sensores

Pulsadores
LDR, Piezoelctrico...

salidas-actuadores
leds, motores
zumbadores....

Seales Analgicas y Digitales


Una seal es analgica cuando puede tomar infinitos valores entre su valor
mnimo y mximo.
Elementos anlogicos: Potencimetro, ldr, ntc, Zumbador, motor electrico, Led?.
Una seal es digital cuando solo puede tomar 2 valores, el mximo asociado a 1
o a cierto on y el mnimo asociado a cero, falso o off.
Elementos digitales: pulsador, detector de presencia, led?, timbre.
Ejercicio: Realizar una tabla clasificando a los elementos en entradas y salidas y a
su vez en analgicas o digitales.

Funcionamiento del microcontrolador


Funcin DigitalWrite
Funcin Write: Pines de salida (escribir)
High: el microntrolador escribe un 1 en el pin de
salida, es decir 5v. El led se enciende.
Low: el microntrolador escribe un 0 en el pin de
salida, es decir 0v. El led no se enciende.
Funcin DigitalRead
El microcontrolador lee la tensin en el pin de
entrada si V>3,5v asigna un 1, si V<3,5v asigna
un 0.

Circuitos para conectar las entradas y las salidas


Los circuitos para conectar los principales elementos de entrada y salida son:

Software: el lenguaje y entorno de programacin


Para comunicarnos con el microcontrolador y cargarle los programas usamos IDE
(Integrated Development Environment), sistema de desarrollo de Arduino, sirve
para escribir programas, compilarlos y descargar los programas a la placa de
arduino.
Un programa es una secuencia de instrucciones que son ejecutadas por una
computadora o un microcontrolador, es una secuencia especfica para realizar
una tarea. Los programas son escritos en diferentes tipos de lenguajes, tales
como C, Fortran o BASIC.
El programa (lenguaje de alto nivel, humano) se compila (se transforma en 1 y 0)
y se carga en el microprocesador que lo ejecuta de forma cclica.
Para programar el micro se utiliza el IDE de Arduino, en el se escribe un programa
que se carga en el microprocesador mediante el puerto usb.
Para ello ejecutar arduino.exe desde la carpeta c:/arduino. Se debe configurar el
puerto a usar (previamente hay que instalar el driver de la placa para que
reconozca el puerto, buscarlo en c:/arduino/drivers/FTDI USB Drivers).Para mirar
el puerto a usar Mi Pc>Propiedades del Sistema>Herramientas> Administrador de
dispositivos> Puertos. Ej: COM3. Adems se debe configurar el tipo de placa. Ej:
ATMega168
Cargar el ejemplo Blink File>Sketchbook>examples>digital>Blink
El lenguaje de programacin de Arduino es muy sencillo. Un programa puede
tener una estructura como:

Es importante el orden y la limpieza en la realizacin de los programas y el uso de


los comentarios //, y la tabulacin en los bucles para facilitar su comprensin.

Estructura general
Declaracin de variables: en esta parte declaramos todas las variables que
vamos a usar en el programa. Nos permite asociar nombres a nmeros lo que nos
ser de mucha utilidad a la hora de modificar los programas.
Void setup{} es la funcin de configuracin de los pines de Arduino y slo se
ejecuta una vez, mientras que loop() se ejecuta una y otra vez hasta que
apaguemos el sistema, o se gasten las bateras Bucle infinito Void loop{} es la
parte del programa que se ejecuta de forma cclica.

Comandos bsicos
HIGH - 5V - TRUE (Verdadero) - 1 lgico LOW - 0V - FALSE (Falso) - 0 lgico

Variables int entero corto

Los vectores son conjuntos de variables, se declaran como las variables


normales, pero con unos corchetes y se dan los valores entre llaves, ejemplo: int
vector[] = {1, 5, 23}. En ingls se llaman arrays

Estructuras de control
bucle for(condicin inicial; condicin final; incremento) es un comando para
repetir la misma operacin un cierto nmero de veces.
if (condicin) {} es un comando que sirve para discriminar si se dio una
determinada condicin. Las comparaciones son: == igualdad, != desigualdad, >
mayor que, < menor que, >= mayor o igual que, y <= menor o igual que. Todo lo
que figure entre las llaves ser ejecutado slo si se da la condicin entre
parntesis.
if else
Verifica si se cumple una condicin y ejecuta lo que esta entre llaves, sino se
cumple ejecuta lo que esta debajo del else.
while
Ejecuta el conjunto de intrucciones entre llaves mientras se cumpla la condicin.
Temporizadores
delay(ms tiempo), sirve para parar los procesos de la placa durante un cierto
tiempo en milisegundos.
delayMicroseconds(us tiempo), sirve para parar los procesos de la placa
durante un cierto tiempo en microsegundos.
millis() Devuelve el tiempo en milisegundos, desde que la tarjeta Arduino activ el
programa que se est ejecutando.
long time;
// entero de tipo largo. void setup()
{ Serial.begin(9600);
}
void loop(){
Serial.print("Time: ");
time = millis(); //muestra el tiempo desde que el programa comenz
Serial.println(time); // espera un segundo para no enviar una cantidad masiva de
datos delay(1000);
}
Pines digitales
pinMode(pin, modo), sirve para declarar un pin como entrada (INPUT) o como
salida
(OUTPUT)
digitalWrite(pin, valor), sirve para escribir un valor al pin, el valor podr ser 1
lgico
(HIGH) o 0 lgico (LOW) digitalRead (pin), lee un valor de 0 o 1 de la entrada
digital.
Pines analgicos analogRead (pin)

analogWrite(pin, valor) escribe una seal al pin 9, 10, u 11 cuyo ancho de pulso
se controla con valor. El ancho se codifica en 256 niveles, es decir, podremos
introducir nmeros del 0 al 255.
- PWM (Pulse Width Modulation), la modulacin por anchura de pulso es una
tcnica que empleamos para producir seales digitales que, filtradas, se
comportarn como seales analgicas. El PWM en Arduino funciona a una
frecuencia constante por encima de los 60Khz. Mediante el comando.
Comunicacin con el Puerto Serie
Serial.begin (speed)
Inicializa o abre el puerto serie asignndole una velocidad de transmisin de datos
(bits por segundo). Dicha funcin debe ser llamada desde dentro de la estructura o
seccin setup(). Equivaldra a la funcin beginSerial().
int speed: velocidad de datos, en bits por segundo (baudios)
Serial.print (data, data type)
Vuelca o enva un nmero o una cadena de carateres, al puerto serie. Dicho
comando puede tomar diferentes formas, dependiendo de los parmetros que
utilicemos para definir el formato de volcado de los nmeros. data: el nmero o la
cadena de caracteres a volcar o enviar.
data type: determina el formato de salida de los valores numricos (decimal, octal,
binario, etc...)
#Serial.print(b, DEC) vuelca o enva el valor de b como un nmero decimal en
caracteres ASCII. Equivaldra a printInteger().
#Serial.print(str) vuelca o enva la cadena de caracteres como una cadena ASCII.
Equivaldra a printString().
Serial.println (data, data type) es igual que serial.print pero con un retorno de
carro.