Вы находитесь на странице: 1из 14

ARDUINO

Arduino es una plataforma de hardware libre (open source hardware, OSHW) basada en un
microcontrolador y un entorno de desarrollo. El hardware consiste en una tarjeta con un
microcontrolador ATmel AVR y varios puertos de entrada y salida, tanto digitales como
analgicas, as como salidas PWM y de comunicaciones, para el control de objetos fsicos
(motores, leds etc.)
Los microcontroladores ms usados son ATmega 328 y ATmega 168 para las tarjetas bsicas, el
ATmega 1280 para tarjetas de mayor capacidad y Atmega 8 para las tarjetas ms antiguas. Todos
estos microcontroladores incluyen un cargador de arranque (boot loader) de manera que es ms
fcil empezar a trabajar con ellos.
El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin
Arduino (basado en wiring) y el entorno de desarrollo (basado en processing).
El hardwate open-source (fuente abierta o libre) comparte mucho de los principios y metodologas
del software libre y cdigo abierto.
Tarjetas Arduino
Arduino Uno
Arduino Mega
Arduino Mega ADK
Arduino Pro
Arduino Ethernet
Arduino Fio
Arduino Lilypad
Arduino BT
Arduino nano
Arduino Serial
Arduino Mini
Arduino Pro Mini



Figura 1. Arduino Mega y Arduino Uno

Shields y otras placas de terceros
Los shields son placas son placas que se colocan encima de la placa Arduino y que amplan una
nueva funcin para que sea controlada desde Arduino, para realizar otras funciones, como se
muestra en la figura 2.

Figura 2. Arduino con tres Shields


Eleccin de la tarjeta Arduino
Para el desarrollo del proyecto de sistemas embebidos de los cursos de Sistemas digitales,
circuitos elctricos y electrnicos, electricidad y electrnica industrial de la Facultad de Ingeniera
Industrial y de Sistemas de la UNI se seleccion la tarjeta Arduino UNO.

Arduino UNO

Figura 3. Arduino UNO, vista frontal Arduino UNO, vista posterior

Caractersticas
Microcontrolador ATmega 328
Voltaje de funcionamiento 5V
Voltaje de entrada 7V 12V
Pines E/S digitales 14 (6 proporcionan salid PWM)
Pines de entrada analgica 6
Intensidad mxima por pin 40 mA
Intensidad en pin 3.3V 50 mA
Memoria Flash 32 K (ATmega 328) de los cuales 0.5KB en el sector de arranque
(Boot Loader)
SRAM 2 KB (ATmega 328)
EEPROM 1 KB (ATmega 328)
Velocidad de reloj 16 Mhz.
La tarjeta Arduino Uno puede ser alimentada va la conexin USB o con una fuente de
alimentacin externa. El origen de la alimentacin es seleccionado automticamente.
El ATmega 328 en las placas Arduino UNO viene precargado con un gestor de arranque (boot
loader) que permite cargar nuevo cdigo sin necesidad de un programador por hardware externo.
La carga de un nuevo cdigo se realiza a travs del entorno de desarrollo Arduino y la c onexin
serie USB. Tambien es posible saltar el gestor de arranque y programar directamente el
microcontrolador a travs del puerto ICSP (In Circuit Serial Programming). En tal caso se debe
utilizar un programador externo.
Microcontrolador ATmega 328


Descripcin de entradas y salidas digitales y analgicas
VIN. La entrada de tensin a la placa Arduino cuando est usando una fuente de alimentacin
externa (al contrario de los 5 voltios de la conexin USB u otra fuente de alimentacin regulada).
Puedes suministrar tensin a travs de este pin, o, si suministra tensin a travs del conector de
alimentacin, acceder a l a travs de este pin.
5V. El suministro regulado de energa usado para alimentar al microcontrolador y otros
componentes de la placa. Este puede venir o desde VIN a travs de un regulador en la placa, o ser
suministrado por USB u otro suministro regulado de 5 V.
3V3. Un suministro de 3.3 V generado por el chip FTDI de la placa. La corriente mxima es de 50
mA.
GND. Pines de Tierra.
Serial: 0 (Rx) y 1 (Tx). Usados para recibir (Rx) y transmitir (Tx) datos TTL en serie. Estos pines estn
conectados a los pines correspondientes del chip FTDI USB-a-TTL Serie.
Interruptores externos: 2 y 3. Estos pines pueden ser configurados para disparar un interruptor en
un valor bajo, un margen creciente o decreciente, o un cambio de valor. Mirar la funcin
attachInterrupt().
PWM: 3, 5, 6, 9, 10 y 11. Proporcionan salida PWM de 8 bits con la funcin analogWrite()
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines soportan comunicacin SPI, la cual,
aunque proporcionada por el hardware subyacente, no est actualmente incluida en el lenguaje
Arduino.
LED: 13. Hay un LED empotrado conectado al pin digital 13. Cuando el pin est a valor HIGH, el LED
est encendido, cuando el pin est a LOW, est apagado.

Descripcin de funciones
setup()
La funcin setup() se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar los
modos de trabajo de los pins, o el puerto serie. Debe ser incluido en un programa aunque no haya
declaracin que ejecutar. As mismo se puede utilizar para establecer el estado inicial de las salidas
de la placa.


loop()
Despus de llamar a setup(), la funcin loop() hace precisamente lo que sugiere su nombre, se
ejecuta de forma cclica, lo que posibilita que el programa este respondiendo continuamente ante
los eventos que se produzcan en la placa.
Instrucciones usadas en las aplicaciones
pinMode(pin, mode)
Esta instruccin es utilizada en la parte de configuracin setup () y sirve para configurar el modo
de trabajo de un PIN pudiendo ser INPUT (entrada) u OUTPUT (salida).
digitalRead(pin)
Lee el valor de un pin (definido como digital) dando un resultado HIGH (alto) o LOW (bajo). El pin
se puede especificar ya sea como una variable o una constante (0-13).
digitalWrite(pin, value)
Enva al pin definido previamente como OUTPUT el valor HIGH o LOW (poniendo en 1 o 0 la
salida). El pin se puede especificar ya sea como una variable o como una constante (0-13).
analogRead(pin)
Lee el valor de un determinado pin definido como entrada analgica con una resolucin de 10 bits.
Esta instruccin slo funciona en los pines (0-5). El rango de valor que podemos leer oscila de 0 a
1023.
analogWrite(pin, value)
Esta instruccin sirve para escribir un pseudo-valor analgico utilizando el procedimiento de
modulacin por ancho de pulso (PWM) a uno de los pins de Arduino marcados como pin PWM.
El ms reciente Arduino, que implementa el chip ATmega168, permite habilitar como salidas
analgicas tipo PWM los pines 3, 5, 6, 9, 10 y 11. Los modelos de Arduino ms antiguos que
implementan el chip ATmega8, solo tiene habilitadas para esta funcin los pines 9, 10 y 11. El valor
que se puede enviar a estos pines de salida analgica puede darse en forma de variable o
constante, pero siempre con un margen de 0-255.
delay(ms)
Detiene la ejecucin del programa la cantidad de tiempo en ms que se indica en la propia
instruccin. De tal manera que 1000 equivale a 1seg.
millis()
Devuelve el nmero de milisegundos transcurrido desde el inicio del programa en Arduino hasta el
momento actual. Normalmente ser un valor grande (dependiendo del tiempo que este en
marcha la aplicacin despus de cargada o despus de la ltima vez que se puls el botn reset
de la tarjeta).
Serial.begin(rate)
Abre el puerto serie y fija la velocidad en baudios para la transmisin de datos en serie. El valor
tpico de velocidad para comunicarse con el ordenador es 9600, aunque otras velocidades pueden
ser soportadas.
Serial.println(data)
Imprime los datos en el puerto serie, seguido por un retorno de carro automtico y salto de lnea.
Este comando toma la misma forma que Serial.print(), pero es ms fcil para la lectura de los datos
en el Monitor Serie del software.
Serial.Read()
Lee o captura un byte (un caracter) desde el puerto serie. Devuelve el siguiente byte (carcter)
desde el puerto serie, o -1 si no hay ninguno.














Laboratorios
Laboratorio 1
Lectura de una seal analgica (curso: electricidad y electrnica Industrial - TP 103)
Objetivo
Tomar muestras de una seal analgica con la tarjeta Arduino
Materiales
Tarjeta Arduino UNO
Potencimetro de 10 KOhm
LED y cables de conexin
Computadora digital
Programa de aplicacin

Procedimiento
El potencimetro es un dispositivo electromecnico que consta de una resistencia de valor fijo
sobre la que se desplaza un contacto deslizante, el cursor, que la divide elctricamente. Como se
muestra en el siguiente grfico:

Un potencimetro es especificado por su resistencia total, R, entre los terminales externos 1 y 3; El
movimiento del cursor origina un cambio en la resistencia medida entre el terminal central, 2, y
uno cualquiera de los extremos. Este cambio de resistencia puede utilizarse para medir
desplazamientos lineales o angulares de una pieza acoplada al cursor. Se conectan en paralelo al
circuito y se comporta como un divisor de tensin.


Diagrama de flujo del programa y tarjeta Arduino

Se conectan tres cables a la tarjeta Arduino. El primero va a tierra desde el terminal 1 del
potencimetro. El terminal 3 va a la salida de 5 voltios. El terminal 2 va desde la entrada analgica
#2 hasta el terminal interno del potencimetro.
Girando el dial o ajustando el potencimetro, cambiamos el valor de la resistencia variable. Esto
produce oscilaciones dentro del rango de 5 y 0 voltios, que son capturados por la entrada
analgica.


Programa de aplicacin
/* Enciende y apaga un LED conectado al pin digital #13, La cantidad de tiempo que el LED
Parpadear depende del valor obtenido mediante analogRead(). En este caso al pin 2 */

int potPin = 2; // seleccionar el pin de entrada analgico para el potencimetro
int ledPin = 13; // seleccionar el pin de salida digital para el LED
int val = 0; // variable para almacenar el valor capturado desde el sensor
void setup() {
pinMode(ledPin, OUTPUT); // declara el ledPin en modo salida
}
void loop() {
val = analogRead(potPin); // lee el valor del sensor
digitalWrite(ledPin, HIGH); // enciende LED
delay(val); // detiene el programa por un tiempo val
digitalWrite(ledPin, LOW); // apaga el LED
delay(val); // detiene el programa por un tiempo val
}













Laboratorio 2
Contador de pulsaciones (Curso: Circuitos digitales -TP 123)
Objetivo
Contar el nmero de veces que se presiona un pulsador
Materiales:
Tarjeta Arduino UNO
Resistencia 10 k Ohm,
LED, cables de conexin
Computador digital
Pulsador

Procedimiento
Se trata de contar las veces que se pulsa un botn conectado en la entrada 7 de Arduino a la vez
que cada vez que contamos encendemos el led conectado en la salida 13. El valor de la variable
que almacena el nmero de impulsos generados se enva al PC para que se visualice en la pantalla.
Con este laboratorio se muestra la funcin de un circuito contador digital, que es uno de los
temas a tratar en el curso de Sistemas digitales.

Diagrama de flujo del programa de aplicacin


Tarjeta Arduino

Programa de aplicacin
/* Programa Contador
Detecta si el botn conectado a la entrada 7 ha sido presionado y enciende el LED
Enva al PC el valor de la variable de cuenta ""Contador" va puerto serie. */

int LED = 13;
int Boton = 7;
int valor = 0;
int contador = 0;
int estadoanteriorboton = 0;
void setup()
{
beginSerial(9600); // Configura velocidad de transmisin a 9600
pinMode(LED, OUTPUT); // inicializa como salida digital el pin 13
pinMode(Boton, INPUT); // inicializa como entrada digital el 7
}
void loop()
{
valor = digitalRead(Boton); // lee el valor de la entrada digital pin 7
digitalWrite(LED, valor);
if(valor != estadoanteriorboton){
if(valor == 1){
contador++;
printInteger(contador);
serialWrite(10);
serialWrite(13);
}
}
estadoanteriorboton = valor;
}

Вам также может понравиться