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

Microcontroladores

Nombre del profesor: Elmar Montiel Jimnez Nombre del alumno: Emmanuel Murueta Sampayo

Practica n.(2,3,4): Comunicando con:

arduino
Fecha:01-03-2013

Introduccin:
Arduino es una herramienta, para hacer que los ordenadores puedan sentir y controlar el mundo fsico, es una plataforma de desarrollo, computacin fisca. (physical computing) el cdigo abierto basado en una placa , con un sencillo micro -controlador y un entorno de desarrollo para crear software programas para la placa . se puede usar arduino para crear objetos interactivos , leer datos de una gran variedad de sensores e interruptores y controlar una multitud de tipos de luces y otros actuadores fsicos , los proyectos con arduino pueden ser autnomos o comunicarse con un programa software que se ejecuta en una computadora la placa arduino 1 viene lista para poderla usar y as comenzar a realizar un gran nmero de aplicaciones ,con el software de desarrollo abierto , que es fcil de descargar desde la pgina oficial arduino , la tarjeta arduino puede ser alimentada atraves de la conexin USB o con una fuente de alimentacin externa .

Caractersticas generales de la placa:


Se trata de unas placas Open Hardware, por lo que su diseo es de libre distribucin y utilizacin, que incluso podemos construir nosotros mismos. El programa se implementar haciendo uso del entorno de programacin propio de arduino y se transferir empleando un cable USB. Si bien en el caso de la placa USB no es preciso utilizar una fuente de alimentacin externa, ya que el propio cable USB la proporciona, para la realizacin de algunos de los experimentos prcticos ,s que ser necesario disponer de una fuente de alimentacin externa ya que la alimentacin proporcionada por el USB puede no ser suficiente. El voltaje de la fuente puede estar entre 6 y 25 Voltios.

En la siguiente web puede encontrarse el software y mucha informacin relativa a la placa:


http://arduino.cc/

Aspecto de Mi placa ARDUINO board model UNO R3:

Lnea de pines, los pines 0 y 1 son entrada y salida del puerto serie: TX y RX . Los otros 12 son : Entradas / salidas digitales pines del 2 a 13 , de los cuales 6 de ellos pueden ser usados como pwm ~ los Cuales son: 3,5,6,9,10,11

Botn reset Conector jack USB

Conexin ICSP (In-Circuit-SerialProgramming) para Programacin y Conexin. regulador de voltaje micro controlador ATMEGA328P

Lnea de Entradas Analgicas (De la A0 a la A5).

Plug de alimentacin de la tarjeta (Para voltajes entre 7 a 12 volts mximo).

Lnea de alimentacin:

Podemos encontrar Pines de alimentacin y tierra (Reset, 3V (+), 5V (+), Gnd o tierra (-) (x2) y Externa (+)): Vin, GND, 5V, 3.3V y reset.

Cable USB :

ESPECIFICACIONES TECNICAS :

Micro controlador

ATMEGA 328 P

Voltaje de operacin 5V. Voltaje de entrada Voltaje de entrada Entrada/salida digital Entrada/salida analgica Corriente entrada/salida Corriente de pin Flash memory Sram EEprom Clock Speed 7-12V. 6-20V. 14(6 pwm.) 6 de 40 mA. 50 mA. 32KB. 2KB. 1KB. 60 mHz.

Iniciando con arduino en Windows:


Lo primero y ms importante, es tener una tarjeta arduino , en este caso es una placa arduino modelo UNO R3, esta puede ser comprada o elaborada por nosotros mismo con su respectivo cable estndar USB (conexin A a conexin B), como los que se usan para conectar, por ejemplo, una impresora USB. , Este documento explica cmo conectar nuestra placa Arduino al ordenador y cargar el cdigo de nuestro primer programa a nuestra placa. Para ello necesitamos descargar el software y los drivers para el control y programacin de nuestra placa arduino:

Descarga del software:


Primero necesitamos conectar nuestro ordenador a internet y descargar todo el material que necesitamos, lo bajamos de un sitio de confianza del propio inventor de Arduino, lo que nos da garanta de que no tiene virus ni programas Malaware de ningn tipo entramos a la pgina oficial de arduino:

http://arduino.cc/

y nos dirigirnos a la opcin de descarga (downloand),

A continuacin se abrir una pgina como la siguiente imagen :

Encontraremos la zona de descargas (Download) que nos permite descargar sin problemas la versin Arduino 1.0.3 que por el momento es la ms reciente, que se encuentra para cada uno de los siguientes sistemas operativos: Windows, Mac OS X, Linux: 32 bit y 64 bit y las fuentes de esos programas, (sources), para que cualquiera que quiera pueda copiarlos, cambiarlos, o mejorarlos pues no nos olvidemos que estamos hablando de un mundo OPEN SOURCE.

Despus solo basta con dar click en la opcin, que segn nos convenga, en mi caso es windows

Despus de que le damos click. Inicia la descarga del archivo, este ser un archivo comprimido .zip , nos aseguramos de guardar el archivo donde nos sea fcil de encontrar, al terminar la descarga solo nos bastara con descomprimir los archivos e instalar los drivers:

Al descomprimir el archivo aparecer una carpeta siguientes archivos:

llamada arduino-1.0.3 que contendr los

Hay que tener en cuenta la direccin de nuestro archivo ya que nos ser necesario para el proceso de instalacin de los drivers:

Instalacin de los drivers en Windows.


Como trabajamos con el sistema operativo Windows, tendremos que instalar los drivers o controladores. La razn es que vamos a engaar al PC para que el puerto USB donde conectamos Arduino le aparezca al ordenador como un puerto serie. Los programas que se llaman drivers, engaan al PC, y le hacemos creer que lo hemos conectado la placa a un puerto serie. (Emulamos el funcionamiento de USB como si fuera una entrada de puerto serie)

Para instalar los drivers en el Sistema Operativo de Microsoft Realizaremos los siguientes pasos:

Paso 1: Conectamos nuestra placa arduino a nuestra pc.

En nuestra barra de inicio aparecer un aviso sobre un Nuevo Hardware encontrado.

Debido a que detecta el dispositivo e intentar instalar los drivers.

Emerger siguiente:

una

pantalla

como

la

Nos mostrara 1 ventana en la cual el asistente de instalacin para hardware nuevo encontrado, nos muestra dos opciones

Paso 2: Seleccionamos la segunda opcin instalar desde una lista o Ubicacin especifica (avanzado).Emerger una nueva ventana:

En automtico Windows nos selecciona opciones por default y nos muestra la direccin de los drivers

En caso de que no encuentre la carpeta de los drivers , damos click en examinar y localizamos la carpeta y damos click en el botn siguiente, en caso de que esta opcin este deshabilitada , seleccionamos la casilla que dice no buscar ,seleccionare el controlador que se va a instalar , despus presionamos siguiente.

Y emerger otra ventana, que nos mostrara como se instalan los drivers. Despus de unos segundos emerger una ventana encima de la anterior, con un mensaje de preventivo sobre la seguridad de Windows para confirmar ,este muestra 2 opciones , una es para continuar y la otra para detener la instalacin . Le damos en continuar

Continuar

Despus de presionar el botn de continuar terminara la instalacin emerger una ventana como la que se muestra a continuacin y le damos click en la opcin finalizar:

De igual forma podemos ingresar la siguiente direccin para tener ms informacin sobre el tema: http://arduino.cc/es/Guide en donde nos mostrara una gua de como descargar e instalar el software y los drivers que necesitamos , segn sea nuestro sistema operativo

Despus de haber finalizado la instalacin de los drivers, solo verificaremos que Windows encuentre he identifique nuestra placa arduino, para ello se mostraran los siguientes pasos:

Paso 1:

Abrimos la ventana de mi pc equipo y damos click derecho con el mouse en el rea donde encontramos las unidades de almacenamiento ,usb`s ,cmaras discos externos etc. ,pero sin seleccionar nada ,y emerger una ventana de dialogo con varias opciones , y elegimos la opcin: propiedades .

Despus emerger una nueva ventana que nos mostrara las propiedades del sistema: y elegimos la pestaa con la opcin de hardware

Y damos click en el botn de administrador de dispositivos

Desplegamos las opciones de Puertos (COM&LPT) ah tenemos Que encontrar a nuestra placa arduino Con nombre: Arduino UNO R3 (COM3)

Como se muestra a continuacin:

Una vez instalados los drivers, procedemos con la ejecucin del programa arduino.exe que se encuentra en la carpeta de descarga que se extrajo junto con los drivers localizamos el icono y damos doble click.

De inmediato aparecer la ventada de inicio de arduino y despus de unos segundos aparecer la ventana de edicin.

a hora podemos iniciar con la programacin para la prctica:

Estructura de programacin void setup() { } void loop() { Ejecutamos seguidamente el cdigo } Configuracin de puertos Creacin de variables Uso de libreras Funciones Etc.

NOTA:

antes de realizar alguna prctica fsica primero Debemos realizar una simulacin en este caso Nos apoyaremos con proteus

Uno de los mejores programas para simular la placa Arduino UNO y las dems que existen, es Proteus. Por una parte se necesita el programa con la plantilla de Arduino, y por otra se necesita el programa que queremos simular con la extensin .hex. Proteus y Arduino

Una vez instalado el programa proteus, descargaremos el fichero correspondiente a la placa de Arduino que queramos simular. En esta pgina encontramos el link:

http://elektronikadonbosco.blogspot.mx/2012/02/como-simular-arduino-en-proteus.html Si abrimos el esquema correspondiente al Arduino UNO con el Proteus, (versin 7.7 o superior) nos encontraremos con la siguiente vista:

El Arduino UNO con sus pines de conexin En ella se puede ver el modelo UNO de Arduino con los elementos que componen dicha placa, como el LED de indicacin de encendido, el led 'L' conectado a la patilla digital 13, las patillas nombradas, etc. Para poder simular el cdigo, deberemos decirle al chip qu cdigo y dnde se encuentra y para ello deberemos acceder al Microcontrolador del Arduino. Esto lo conseguiremos haciendo clic encima del Arduino, con la combinacin de teclas 'CTRL+C' accederemos al circuito que forma el Arduino en s y

haciendo doble clic sobre el Microcontrolador se nos abrir la ventana de configuracin del ATmega328P.

El ATmeg328p que compone el Arduino Uno Una vez all slo nos queda cargar el cdigo hecho con arduino haciendo click derecho sobre el Microcontrolador, emerger una ventana de dialogo y seleccionamos la opcin de edit propieties de igual forma podemos teclear Ctrl+E. Para que aparezca la ventana de edicin de propiedades:

Aparecer la ventana edicin de propiedades, donde introduciremos la direccin del archivo '.hex' generado por el Arduino durante la compilacin. la direccin del archivo creado con la compilacin del programa en el software arduino se selecciona , se copia tecleando Ctrl+C y se pega en la seccin donde dice: program file: El Microcontrolador ya sabe que tiene que ejecutar, por lo que salimos de la ventana aceptando los cambios, pulsamos 'Ctrl+X' para volver al circuito del Arduino y hacemos clic sobre el botn de play para iniciar la ejecucin del cdigo, pudiendo ver su resultado si todo ha salido bien.

Una vez que hayamos indicado la ruta al archivo .hex no hace falta que se la volvamos a indicar, directamente si modificamos el cdigo en arduino, le damos a verificar en el software

arduino y al darle play en el Proteus, automticamente tomar la nueva versin del cdigo. Tambin se puede verificar el cdigo mientras la simulacin est en curso sin ningn problema. Obteniendo el .hex Por defecto, al verificar el cdigo (compilar) el archivo .hex se guarda en una carpeta temporal, por lo que su acceso no ser sencillo. Tenemos dos posibilidades: se puede cambiar para siempre donde guardar el archivo .hex de Arduino o sino que Arduino diga en que carpeta se ha creado el archivo. Ambas formas se describirn a continuacin:

nos

Para conocer la ruta en que el compilador guarda el '.hex' mantendremos pulsada la tecla 'Mayus' o 'Shift' mientras hacemos clic sobre el botn de compilar, obteniendo en la pantalla de depuracin la direccin de dicho archivo. para conocer la ruta, hay que ir a la pestaa 'archivo', y seleccionamos la opcin 'Preferencias' , teclear ctrl+ comman

Emerger la ventana donde modificaremos la direccin para la creacin del `.hex` seleccionamos la opcin: Navegar y buscamos donde queremos que se cree el archivo para localizarlo y seleccionamos la casilla de : Compilacin. Se podra seleccionar Carga pero no tiene demasiado sentido ya que si estamos simulando es porque no queremos tener la placa Arduino conectada al PC,

En ambos casos obtendramos la ruta del archivo en el propio IDE.

Hay que tener en cuenta que la ruta del archivo puede pasar por carpetas ocultas y para mostrarlas haremos la siguiente secuencia: 1. Inicio -> Panel de control -> Opciones de carpeta 2. Abrimos la pestaa 'Ver' 3. Activamos 'Mostrar todos los archivos y carpetas ocultas' Podemos ver paso a paso la creacin de un circuito en Proteus y la simulacin con el archivo .hex Despus de ver cmo podemos simular la carga del cdigo para nuestra placa arduino en proteus, antes de cargarlo a la placa fsica, ha ora si podemos iniciar analizando las estructuras de control para la tarjeta arduino.

Practica n.2:
La prctica consiste en prender y apagar un led por un tiempo , el cual ser modificado para ver su comportamiento . Materiales: 1 placa Arduino uno con su respectivo cable USB. 1 led rojo. NOTA: puede ser de cualquier color 1 resistencia de 330 (colores: naranja, naranja, marrn, dorado) . 1 protoboar. (Placa de pruebas para circuitos electrnicos). 1 pc con los programas instalados (proteus/arduino). Cable telefnico para conectar los dispositivos en el protoboar.
Estructura bsica del cdigo de programacin arduino: void setup() { } void loop() { Ejecutamos seguidamente el cdigo } Configuracin de puertos Creacin de variables Uso de libreras Funciones Etc.

NOTA: Para la primer practica con arduino emplearemos algunos trminos que arduino
reconozca, simularemos en proteus para verificar que el cdigo sea realmente sea el correcto,

de la forma que se menciono anteriormente y procederemos a cargar el cdigo a nuestra placa fsica.

Trminos que reconoce arduino:


pinMode : en este indicaremos el pin y el modo de estado OUTPUT: configuracin modo salida INPUT: configuracin modo digitalWrite: esta instruccin escribir en dato digital la salida o entrada (0 1) HIGH: instruccin que da una salida de voltaje LOW): instruccin que corta la salida de voltaje delay ( x): instruccin que indica el tiempo de la instruccin

Cdigo en arduino:
//Practica N2 prender un led void setup() { //seleccion del pin que emplearemos como salida pinMode (13,OUTPUT); } void loop() { //instruccion para prender el led digitalWrite (13,HIGH); delay (1000); //intruccion para apagar el led digitalWrite (13,LOW); delay (1000); }

Procedemos a copiar el cdigo y copilamos para verificar que no tenga errores

Despus de verificar que no hay errores, procedemos a introducir las ordenes a la placa arduino simulacin proteus, para esto solo basta con copilar, no es necesario tener la placa fsica conectada al CPU para la simulacin esta la conectamos despus, para cargar el programa a nuestra placa fsica, ha hora simulamos en proteus:

Nota:

El proceso de cmo hacerlo Se mostro con anterioridad

A continuacin se muestran los estados del led en la simulacin con proteus y abajo las fotos de la placa arduino fsica conectada

Estructuras de control para la placa Arduino


Operadores de comparacin
Las comparaciones de una variable o constante con otra se utilizan con frecuencia en las estructuras condicionales del tipo if.. para desir si una condicin es verdadera. En los ejemplos que siguen en las prximas pginas se ver su utilizacin prctica usando los siguientes tipo de condicionales: x == y // x es igual a y x != y // x no es igual a 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 Asignaciones compuestas Las asignaciones compuestas combinan una operacin aritmtica con una variable asignada. Estas son comnmente utilizadas en los bucles tal como se describe ms adelante. Estas asignaciones compuestas pueden ser: x ++ // igual que x = x + 1, o incrementar x en + 1 x -- // igual que x = x - 1, o decrementar x en -1 x += y // igual que x = x + y, o incrementra x en +y x -= y // igual que x = x - y, o decrementar x en -y x *= y // igual que x = x * y, o multiplicar x por y x /= y // igual que x = x / y, o dividir x por y Nota: Por ejemplo, x * = 3 hace que x se convierta en el triple del antiguo valor x y por lo tanto x es reasignada al nuevo valor .

if (condicional)

se utiliza para probar si una determinada condicin se ha alcanzado, como por ejemplo averiguar si un valor analgico est por encima de un cierto nmero, y ejecutar una serie de declaraciones (operaciones) que se escriben dentro de llaves, si es verdad. Si es falso (la condicin no se cumple) el programa salta y no ejecuta las operaciones que estn dentro de las llaves, El formato para if es el siguiente: if(alguna variable >50) { //Realiza una operacin } Nota: Tenemos que tener en cuenta el uso especial del smbolo '=', poner dentro de if (x = 10), Podra parecer que es vlido pero sin embargo no lo es ya que esa expresin asigna el Valor 10 a la variable x, por eso dentro de la estructura if se utilizara X==10 que en Este caso lo que hace el programa es comprobar si el valor de x es 10.. Ambas cosas son Distintas por lo tanto dentro de las estructuras if, cuando se pregunte por un valor se Debe poner el signo doble de igual ==

If else if else if . if else viene a ser un estructura que se ejecuta en respuesta a la idea si esto no se cumple haz esto otro. Por ejemplo, si se desea probar una entrada digital, y hacer una cosa si la entrada fue alto o hacer otra cosa si la entrada es baja, Ejemplo 1 de estructura: If (pin cinco input<500) { // Accin A } else { // Accion B }

Ejemplo 2 de estructura: If (pin cinco input<500)

{ // Ejecutar A } else if (pin cinco input<=10000) { // Ejecutar B else { //Ejecutar C } }

Switch /Case:
Switch (valor){ Case 1: //hacer algo cuando sea = 1 Break; Case 2: //hacer algo cuando sea = 2 Break; Default: //si nada coincide ejecuta default //default es opcional } While: Un bucle del tipo while es un bucle de ejecucin continua mientras se cumpla la expresin colocada entre parntesis en la cabecera del bucle. La variable de prueba tendr que cambiar para salir del bucle. La situacin podr cambiar a expensas de una expresin dentro el cdigo del bucle o tambin por el cambio de un valor en una entrada de un sensor

Var=0 While(var<200 veses) { Var++ }

do While: El bucle do while funciona de la misma manera que el bucle while, con la diferencia de que la condicin se prueba al final del bucle, por lo que el bucle siempre se ejecutar al menos una vez. Do { Delay(50)//espera aque los sensores se estabilicen X= read sensors (); //comprueba los sensores } While(x<100); Si se cumple la condicin se repite el bucle

for:

La declaracin for se usa para repetir un bloque de sentencias encerradas entre llaves un nmero determinado de veces. Cada vez que se ejecutan las instrucciones del bucle sevuelve a testear la condicin. La declaracin for tiene tres partes separadas por (;) vemos el ejemplo de su sintaxis: For (int x = 0;x<100;++){ //se repite accin 100 veces La inicializacin de una variable local se produce una sola vez y la condicin se testea cada vez que se termina la ejecucin de las instrucciones dentro del bucle. Si la condicin sigue cumplindose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condicin no se cumple, el bucle termina.

Prctica numero 3:
Entradas digitales : Nota: antes de comenzar con la prctica, se mostrara como polarizar el botn y conexin con arduino , para tener una lectura estable:

Caso 1: lectura del pin igual a 0v.

Caso 2: lectura del pin igual a 5v.

NOTA: en el caso de lectura ,el pin , no

va a leer 5 v. como tal ,el valor depender de a Que pin gamos la conexin ya que esta puede ser a un pin digital o en su defecto a un Anlogo,

En el caso de ser un pin anlogo nuestro arduino registrara un valor de 1023 esto es Equivalente a 5v. Para responder al porque, solo hace falta hacer un pequeo Parntesis y decir, que nuestra placa arduino tiene registros de datos con combinaciones De diez dgitos para cada pin anlogo, ya que estas corresponden al sistema binario, para ser mas exactos nos referimos a numeros de base 2 elevado aun exponente , en este caso es 10 ,

20 21 22 23 24 25 26 27 28

= = = = = = = = =

1 2 4 8 16 32 64 128 256

la suma de estos nmeros nos da como resultado : 1+2+4+8+16+32+64+128+256+512=1023 1023 es el valor mximo que se puede obtener al hacer combinaciones en binario con 10 digitos por lo tanto: 1024 es equivalente a 5v, pero nuestro arduino solo mostrara 1023

29 = 512 210 = 1024


esto nos puede ayudar cuando trabajemos con sensores ya que estos nos mandaran una variacin de voltaje como respuesta , para tener los equivalentes del voltaje cuando este sea diferente a 5v. solo basta con hacer una regla de 3. Hay 2 casos k nos ayudan a saber el dato que buscamos 1.-para saber de que voltaje hablamos : (valor que muestra arduino cuando se lee en la entrada analgica) Voltaje 1024 Voltaje de entrada en el pin arduino

(( 512 * 5v) / 1024) = 2.5v.


2.-para saber que valor nos arrojara arduino en el monitor: Voltaje de entrada en el pin arduino 1024 Voltaje mximo para la entrada de pin (valor que muestra arduino cuando se lee en (( 2.5v * 1024) / 5v) = 2.5v. la entrada analgica)

En el caso del botn, es ms cmodo trabajar con los pines digitales , ya que estos trabajan solo con dos estados 1 (con voltaje) y 0 (con ausencia de voltaje) ,

Cdigo en arduino:
// PROGRAMA 2
//Detecta si el botn ha sido presionado o no y enciende el led en consecuencia int ledPin=13; //pin del led int inPin=10; // pin del pulsador int valor=0; //valor del pulsador void setup() { pinMode (ledPin, OUTPUT); // inicializa el pin 13 como salida digital pinMode(inPin, INPUT); // inicializa el pin 10 como entrada } void loop(){ valor=digitalRead (inPin); //lee el valor de entrada digital digitalWrite(ledPin,valor); }

Simulacin con proteus

Como se puede observar al mantener presionado el botn, el led se mantiene encendido, ya que este es el reflejo del estado del botn

Al dejar de presionar el botn , el led se apaga ,y al presionarlo se prende , como se comento con anterioridad el led es el reflejo del estado del botn

Practica 4: Programacin de pwm


PWM significa Pulso de Amplitud Modulada. Arduino utiliza esta potente tcnica de PWM para el control de circuitos analgicos con sus salidas digitales. Control digital suele ser slo encender (full 5v) o apagado (0 V) en formato binario, y esto on / off patrn puede generar una seal de onda cuadrada.

PW (ancho de pulso) o ancho de pulso, representante al ancho (en Tiempo) del pulso. Perodo / longitud (Periodo), o Ciclo, es EL TIEMPO total Que dura La Seal. La Frecuencia s define Como la CANTIDAD de pulsos (Estado de encendido / apagado) Por Segundo y Su Expresin matemtica es la inversa del Periodo, Como Muestra la siguiente equacin.

El Periodo es Medido en Segundos, de Este Modo La Unidad en la Cual se mide la Frecuencia (Hz) es la inversa a la Unidad de Tiempo (Segundos). EXISTE Otro Parmetro Asociado o Que define a la Seal PWM, denominado "Ciclo de trabajo", el Cual es determinacin el PORCENTAJE de Tiempo Que el pulso (o Voltaje Aplicado) est en Estado activo (a) Durante la ON Ciclo. Por EJEMPLO, Si Una Seal Tiene PERIODO DE 10 ms y Sus pulsos de ancho (PWM) 2ms, dicha ciclo Seal Tiene sin impuestos de 20% (20% on y 80% off). El siguiente grfico Muestra tres Seales PWM con Diferentes "ciclos".

El valor del PWM Es de 0 a 255 ,ya que este valor esta representado o mejor dicho amacenado como un byte ,recordemos kque un byte esta constituido por 255

23 24 25 26 27 28 29 210

= 8 = = 16 = = 32 = = 64 = = 128 = = 256 = = 512 = = 1024 =

0.0390625v. 0.078125v. 0.15625v. 0.3125v. 0.625v 1.25v. 2.5v. 5v.

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