informe final de sd

36
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERÍA DE SISTEMAS E INFORMÁTICA ESCUELA PROFESIONAL DE INGERNIERIA DE SISTEMAS MEDIDOR DE CONDICIONES AMBIENTALES CURSO: SISTEMAS DIGITALES PROFESOR: FÉLIX ARMANDO FERMIN PEREZ INTEGRANTES: -CÁCEDA RODRÍGUEZ, CAROLINA RUBÍ 13200006 - MARTINEZ MORA, MIGUEL ANTONY 12200161 - RAUI FERNANDEZ, AYRTON !ES"S 1220016# - RO!AS CA$ERO, ANT%ONY C%RISTIAN 13200036 - SIL$A USUIZA, LUIS ENRIUE 132001#3 - $ILLANUE$A MONRROY, %ENRY ZAMIR 132001&2 2015

Upload: miguel-antony-martinez-mora

Post on 06-Oct-2015

10 views

Category:

Documents


0 download

DESCRIPTION

ARDUINO

TRANSCRIPT

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERA DE SISTEMAS E INFORMTICAESCUELA PROFESIONAL DE INGERNIERIA DE SISTEMASMEDIDOR DE CONDICIONES AMBIENTALES

CURSO: SISTEMAS DIGITALESPROFESOR: FLIX ARMANDO FERMIN PEREZINTEGRANTES: -CCEDA RODRGUEZ, CAROLINA RUB 13200006- MARTINEZ MORA, MIGUEL ANTONY 12200161- RAQUI FERNANDEZ, AYRTON JESS 12200168- ROJAS CAVERO, ANTHONY CHRISTIAN 13200036- SILVA USQUIZA, LUIS ENRIQUE 13200183- VILLANUEVA MONRROY, HENRY ZAMIR 132001922015INTRODUCCIN:

El proyecto consiste en una unidad electrnica que pueda recopilar datos del ambiente en el que se encuentra, tales como Temperatura, Humedad Relativa, Monxido de Carbono, Calidad de aire y Luminosidad. Esta unida electrnica ser implementada con el dispositivo Arduino y los respectivos sensores de las variables de la cuales queremos obtener los datos. Para trabajar con los datos se desarroll un programa en Java el cual mostrar el comportamiento de datos en tiempo real, esto como apoyo visual, adems de algunas funcionalidades ms que facilitaran el anlisis de datos obtenidos como lo es el uso de grficas que se van actualizando en el tiempo. Todos estos datos sern guardados en una base de datos para poder dar soporte a la pgina web. En la pgina web los usuarios podrn ver el progreso de las mediciones desde cualquier lugar que tenga internet, a partir de esos datos se podr dar recomendaciones e informacin para todos los usuarios.

OBJETIVOS: Aplicar los conocimientos adquiridos en el curso de Sistemas Digitales en un proyecto real. Demostrar de manera prctica los cdigos estudiados en clase. Explorar de una manera visual e instructiva el comportamiento de las condiciones ambientales a la que estamos sujetos. Adquirir experiencias en el desarrollo de proyectos. Aplicar conocimientos adquiridos en otras asignaturas como Circuitos digitales, Algortmica, Base de Datos entre otras. Adquirir destreza en la confeccin de proyectos basados en la tecnologa Arduino. Fomentar la investigacin y el desarrollo de tecnologas entre estudiantes.

HADWARE A USAR:ARDUINO UNOEs una plataforma dehardware libre, basada en unaplacacon unmicrocontroladory unentorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. Elhardwareconsiste en una placa con un microcontroladorAtmel AVRy puertos deentrada/salida.Los microcontroladores ms usados son elAtmega168,Atmega328,Atmega1280,ATmega8por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa ellenguaje de programacinProcessing/Wiring y elcargador de arranqueque es ejecutado en la placa. Arduino se puede utilizar para desarrollar objetos interactivos autnomos o puede ser conectado a software tal comoAdobe Flash,Processing,Max/MSP,Pure Data. Las placas se pueden montar a mano o adquirirse. Elentorno de desarrollo integrado libre se puede descargar gratuitamente.Arduino puede tomar informacin del entorno a travs de sus entradas analgicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador.

APLICACIONES

El mdulo Arduino ha sido usado como base en diversas aplicaciones electrnicas:

Xoscillo:Osciloscopiode cdigo abierto. Equipo cientfico para investigaciones. Arduinome: Un dispositivocontrolador MIDI. OBDuino: uneconmetroque usa una interfaz dediagnstico a bordoque se halla en los automviles modernos. Humane Reader: dispositivo electrnico de bajo coste con salida de seal de TV que puede manejar una biblioteca de 5000 ttulos en una tarjetamicroSD. The Humane PC: equipo que usa un mdulo Arduino para emular un computador personal, con un monitor de televisin y un teclado para computadora. Ardupilot: software y hardware deaeronaves no tripuladas. ArduinoPhone: un telfono mvil construido sobre un mdulo Arduino. Impresoras 3D.

PARTES:ATMEGA328

ElATmega328es unchipmicrocontroladorcreado porAtmely pertenece a la seriemegaAVR.El Atmega328AVR8-bites unCircuito integradode alto rendimiento que est basado un microcontroladorRISC, combinando 32KBISPflashuna memoria con la capacidad de leer-mientras-escribe, 1KB de memoriaEEPROM, 2KB deSRAM, 23 lneas de E/S de propsito general, 32registrosde proceso general, tres temporizadores flexibles/contadorescon modo de comparacin,interrupcionesinternas y externas, programador de modoUSART, una interface serial orientada a byte de 2 cables,SPIpuerto serial, 6-canales 10-bitConversor A/D(8-chanales enTQFPyQFN/MLFpackages), "watchdog timer" programable conosciladorinterno, y cinco modos de ahorro de energa seleccionables por software. El dispositivo opera entre 1.8 y 5.5 voltios. Por medio de la ejecucin de poderosas instrucciones en un solo ciclo de reloj, el dispositivo alcanza una respuesta de 1MIPS, balanceando consumo de energa y velocidad de proceso.

PARMETROS

APLICACIONESHoy el ATmega328 se usa comnmente en mltiples proyectos y sistemas autnomos donde un micro controlador simple, de bajo consumo, bajo costo es requerido. Tal vez la implementacin ms comnde este chip es en la popular plataformaArduino, en sus modelos Uno y Nano.

TEMAS IMPORTANTES DEL ARDUINO - DATASHEETAVR CPU CoreEn esta seccin se analiza la arquitectura de ncleo AVR en general. La funcin principal del ncleo de la CPU es asegurar la ejecucin del programa correcto. Por consiguiente, la CPU debe ser capaz de acceder a las memorias, realizar clculos, controlar los perifricos, y manejar las interrupciones.Con el fin de maximizar el rendimiento y paralelismo, el AVR utiliza una arquitectura de Harvard con memorias y buses separados para programas y datos. Las instrucciones en la memoria del programa son ejecutado con una sola canalizacin nivel. Mientras se est ejecutando una instruccin, la siguiente instruccin es pre-buscadas de la memoria del programa. Este concepto permite a las instrucciones que se ejecutarn en cada ciclo de reloj.La memoria del programa est en la memoria flash reprogramable del sistema. El acceso rpido de Archivo de Registro contiene registros de propsito general de 32x8 bits con un tiempo de acceso de un solo ciclo de reloj. Esto permite la operacin de la ALU en solo ciclo de reloj.

En una operacin tpica ALU, dos operandos son enviados desde el Registro de archivos, se ejecuta la operacin, y el resultado se almacena en el Archivo de Registros- en un ciclo de reloj.Seis de los 32 registros pueden ser utilizados como triples registro de direccin indirecta de 16 bits de espacio de direccionamiento de datos - que permiten clculos de direccin eficientes. Uno de los estos punteros de direccin tambin se puede utilizar como un puntero de direccin para tablas de consulta en la memoria de programa flash. Estos registros de funciones aadidas son la X- 16 bits X, Y y Z-registro, que se describe ms adelante en esta seccin.La ALU soporta operaciones aritmticas y lgicas entre registros o entre una constante y un registro. Operaciones de registro individual tambin se pueden ejecutar en la ALU. Despus de una operacin aritmtica, el Registro de estado se actualiza para reflejar la informacin sobre el resultado de la operacin.El flujo de programa est provisto de saltos condicionales e incondicionales y llamadas a instrucciones, capaz de dirigirse a todo el espacio de direcciones.

La mayora de las instrucciones AVR tienen un solo formato de palabra de 16 bits. Cada direccin de memoria de programa contiene una instruccin de 16 o 32 bits. Espacio de memoria de programa Flash se divide en dos secciones, la seccin de programa de arranque y la seccin de programacin de aplicaciones. Ambas secciones tienen dedicados bits de bloqueo para proteccin de lectura / escritura.

La instruccin SPM que escribe en la seccin de memoria de aplicaciones de Flash debe residir en la seccin del programa de arranque.La instruccin SPM que escribe en la seccin de memoria de aplicaciones de Flash debe residir en la seccin del programa de arranque. Durante las interrupciones y llamadas a subrutinas, el contador de programa direccin de retorno (PC) se almacena en la pila (Stack). La pila se asigna eficazmente en la SRAM general de datos, y en consecuencia el tamao de la pila slo est limitado por el tamao total de SRAM y el uso de la SRAM. Todos los programas de usuario deben inicializar el SP en el restablecimiento de rutina, llamada tambin Reset Routine, (antes de ejecutar subrutinas o interrupciones). El puntero de pila (SP) es lectura / escritura accesible en el espacio de E / S. La SRAM de datos se puede acceder fcilmente a travs de los cinco modos de direccionamiento diferentes apoyados en la arquitectura AVR. Los espacios de memoria en la arquitectura AVR son todos los mapas de memoria lineales y regulares.Un mdulo de interrupcin flexible tiene sus registros de control en el espacio de E / S con una interrupcin adicional global de bit de habilitacin en el Registro de Estado.Todas las interrupciones tienen un vector de interrupcin separado en la tabla de vector de interrupcin. Las interrupciones tienen prioridad en funcin de su posicin de vector de interrupcin.Cuanto menor sea la direccin de vector de interrupcin, mayor es la prioridad.El espacio de memoria de E / S contiene 64 direcciones de CPU funciones perifricas como el Control de Registros, SPI, y otras funciones de E / S. La E / S de memoria se puede acceder directamente, o como las localizaciones espaciales de Datos tras los del Registro Archivo, 0x20 - 0x5F. Adems, el ATmega48PA / 88PA / 168PA / 328P ha extendido el espacio de E / S de 0x60 - 0xFF en SRAM donde slo los ST / STS / ETS y las instrucciones LD / SUD / LDD se pueden utilizar.

ALUEl alto rendimiento AVR ALU opera en conexin directa con todos los 32 registros generales de trabajo de propsito. Dentro de un solo ciclo de reloj, se ejecutan las operaciones aritmticas entre registros de propsito general o entre un registro y una inmediata. Las operaciones de ALU se dividen en tres categoras principales - aritmticas, lgicas y bit-funciones. Algunas implementaciones de la arquitectura tambin proporcionan un multiplicador de gran alcance que apoya la multiplicacin c/s signo y formato fraccionario.

Registro de Estado (Status Register)El Registro de Estado contiene informacin sobre el resultado de la instruccin aritmtica ejecutado ms recientemente. Esta informacin puede ser usada para alterar el flujo del programa con el fin de realizar operaciones condicionales. El registro de estado se actualiza despus de todas las operaciones de la ALU, como se especifica en el Manual del sistema de referencia. Esto en muchos casos eliminar la necesidad de utilizar las instrucciones de comparacin dedicadas, lo que resulta en cdigo ms rpido y el ms compacto.El Registro de Estado no se almacena automticamente al entrar en una rutina de interrupcin y restaurado al regresar de una interrupcin. Esto debe ser manejado por software.

Archivo de Registro de propsito generalPropsito General de Registro ArchivoEl Registro de archivos est optimizado para el AVR mejorado conjunto de instrucciones RISC. A fin de lograr el rendimiento y la flexibilidad requerida, los siguientes esquemas de entrada / salida son compatibles con elRegistrar archivo: Un operando de salida de 8 bits y una entrada de nmero 8-bit Dos operandos de salida de 8 bits y una entrada de nmero 8-bit Dos operandos de salida de 8 bits y una entrada nmero 16-bit Un operando de salida de 16 bits y una entrada nmero 16-bitLa figura muestra la estructura de los registros de trabajo 32 de propsito general en la CPU.

Registros de trabajo de propsito general del CPU AVR

La mayor parte de las instrucciones de funcionamiento en el archivo de registros tienen acceso directo a todos los registros, y la mayora de ellos son instrucciones de un solo ciclo.Como se muestra en la figura, cada registro tambin se le asigna una direccin de memoria de datos, mapeo de ellos directamente en los primeros 32 lugares del espacio de usuario de datos. Aunque no est implementado fsicamente como lugares de SRAM, esta organizacin de la memoria proporciona una gran flexibilidad en el acceso de los registros, como los ejes X-, Y- y Z-registros de puntero pueden configurarse para indexar cualquier registro en el archivo.

Puntero de pila (Stack Pointer)La pila se utiliza principalmente para el almacenamiento de datos temporales, para el almacenamiento de variables locales y para almacenar direcciones de retorno despus de interrupciones y llamadas a subrutinas. La pila se implementa como creciente de mayor a ubicaciones de memoria inferiores. El puntero Registro Pila siempre apunta a la parte superior de la pila. El puntero de pila apunta al rea de datos de la pila de SRAM donde se encuentra la subrutina de interrupcin y Pilas. El comando de pila PUSH disminuir el puntero de pila.La Pila en la SRAM de datos debe ser definido por el programa antes de ejecutar cualquier llamada a subrutinas o interrupciones estn habilitadas. El valor inicial del puntero de pila es igual a la ltima direccin de la SRAM interna y el puntero de pila debe estar ajustado a punto por encima de inicio de la SRAM.

Tabla Instrucciones de puntero de pilaInstruccin Puntero de pilaDescripcin

PUSHDecrementa en 1Los datos se insertan en la pila

CALLICALLRCALLDecrementa en 2La direccin de retorno se inserta en la pila con una llamada de subprograma o interrupcin.

POPIncrementa en 1Los datos se extraen de la pila.

RETRETIIncrementa en 2La direccin de retorno se extrae de la pila con el retorno de subrutina o retorno de interrupcin

El puntero de pila AVR se implementa como dos registros de 8 bits en el espacio de E / S. El nmero de bits utilizados efectivamente depende de la implementacin. Tenga en cuenta que el espacio de datos en algunas implementaciones de la arquitectura AVR es tan pequea que slo se necesita SPL. En este caso, el Registro SPH no estar presente.INSTRUCCIN EXECUTION TIMING (Tiempo de Ejecucin)

Esta seccin describe los conceptos generales de sincronizacin para la ejecucin de instrucciones. El AVR CPU es impulsado por el reloj de la CPU (clkCPU), generada directamente de la fuente del reloj seleccionado para el chip. No se utiliza ninguna divisin interna del reloj.

FIGURA 1 Muestra la instruccin paralela obtenida y ejecuta instrucciones habilitadas por la arquitectura Harvard y el concepto de acceso rpido Register File (Archivo de Registro). Este es el concepto bsico de Pipelinig para obtener hasta 1 MIPS por MHZ con los correspondientes nicos resultados para funciones por costo, funciones por relojes, y funciones por unidad de potencia.

FIGURA 1. La instruccin paralela obtiene y ejecuta instrucciones

FIGURA 2 Muestra el concepto de tiempo interno por el Register File (Archivo de Registro). En un solo ciclo de reloj un ALU ejecuta la operacin usando dos operandos de registro, y el resultado se almacena en el registro.

FIGURA 2. Operacin del Ciclo individual ALU

RESET AND INTERRUPT HANDLING (Reinicio y manejo de interrupciones)

El AVR proporciona diferentes fuentes de interrupcin. Estas interrupciones y el independiente Reset Vector cada uno tienen un vector de programa por separado en el espacio de memoria de programa. Todas las interrupciones son asignadas por bits individuales activados que debe ser uno lgico escrito junto con la interrupcin global con bit habilitado en el registro de estado con el fin de permitir la interrupcin. Dependiendo del valor del contador, las interrupciones se pueden desactivar automticamente cuando Boot Lock bits (Bits de bloqueo de arranque) BLB02 o BKB12 se programan. Esta caracterstica mejora la seguridad del software.

Las direcciones ms bajas en el espacio de memoria del programa son definidos por defecto como Reset (Reinicio) e Interrupt Vectors (Vectores de Interrupcin). Los vectores de Interrupcin se pueden mover hasta el inicio de la seccin Boot Flash activando el bit IVSEL en el registro de control de MCU (MCUCR). El reinicio del vector tambin se puede mover hasta el inicio de la seccin Boot Flash mediante la programacin de la BOOTRST Fuse.

Cuando se produce una interrupcin, se borra The Global Interrupt Enable I-bit (la interrupcin global habilitada bit I) y todas las interrupciones se desactivan. El usuario del software puede escribir en el bit lgico I para habilitar las interrupciones anidadas. Entonces todas las interrupciones habilitadas pueden interrumpir la rutina de la interrupcin actual. El bit I se establece automticamente cuando un retorno de la instruccin de interrupcin RETI se ejecuta.

Hay bsicamente dos tipos de interrupciones. El primer tipo se activa por un evento que fija la Bandera de interrupcin. Por estas interrupciones, el contador del programa se gua vectorialmente al actual vector de interrupcin con el fin de ejecutar la rutina de manejo de interrupciones, y el hardware borra la correspondiente Bandera de interrupcin. Banderas de interrupcin tambin se pueden borrar escribiendo en un bit lgico de bandera que se solucione. Si una condicin de interrupcin se produce mientras el correspondiente bit de habilitacin de interrupcin es despejado, la bandera de interrupcin se configurar y recordado hasta la interrupcin est habilitada, o la bandera es despejada por software. Del mismo modo, si se producen las condiciones de uno o ms de interrupcin mientras que la interrupcin GlobalActivar bit se restablece, la bandera de interrupcin correspondiente se establecer y se acuerda hasta que el Interrupcin Global Enable bit est establecido, y entonces ser ejecutado por orden de prioridad.

El segundo tipo de interrupciones activar siempre y cuando la condicin de interrupcin est presente. Estas interrupciones no necesariamente tienen banderas de interrupcin. Si la condicin de interrupcin desaparece antes de que la interrupcin est activada, la alarma no se activar.Cuando el AVR sale de una interrupcin, siempre regresar al programa principal y se ejecutar atendiendo a ms de instrucciones antes de cualquier interrupcin quede pendiente. Tenga en cuenta que el registro de estado no se almacena automticamente al entrar en una rutina de interrupcin, ni restaurado al volver de una rutina de interrupcin. Esto debe ser manejado por software.Cuando se utiliza la instruccin CLI para deshabilitar las interrupciones, las interrupciones se desactivarn inmediatamente.La interrupcin no se ejecutar despus de la instruccin CLI, incluso si se produce simultneamente con la Instruccin CLI. El siguiente ejemplo muestra cmo se puede utilizar para evitar interrupciones durante la secuencia EEPROM cronometrado.

Cuando se utiliza la instruccin SEI es para habilitar las interrupciones, se ejecuta la instruccin siguiente SEI antes de las interrupciones pendientes, tal como se muestra en este ejemplo.

Interrupt Response Time (Tiempo de respuesta de interrupcin)

La respuesta de la ejecucin de la interrupcin habilitada por todo el AVR interrumpe por cuatro ciclos de reloj mnimo. Despus de cuatro ciclos de reloj la direccin del vector programa para la rutina actual maneja de la interrupcin se ejecuta. Durante este perodo de ciclo de cuatro horas, el contador de programa inserta en la pila.El vector es normalmente un salto a la rutina de interrupcin, y este salto tiene tres ciclos de reloj. Si se produce una interrupcin durante la ejecucin de una instruccin de multi-ciclo, se ha completado esta instruccin antes de que se active la interrupcin. Si se produce una interrupcin cuando el MCU est en modo inactivo, el tiempo de respuesta de ejecucin alarmas se prolonga por cuatro ciclos de reloj. Este aumento se suma a la hora de puesta en marcha del modo de suspensin seleccionado.El retorno de una rutina de manejo de interrupciones toma cuatro ciclos de reloj. Durante estos cuatro ciclos de reloj, el contador de programa (dos bytes) se posiciona detrs de la pila, el puntero de pila se incrementa en dos, y el bit I en SREG se establece.

Memorias AVR

Overview (Visin de Conjunto)

Esta seccin describe las diferentes memorias en el ATmega48PA / 88PA / 168PA / 328P. La arquitectura AVR tiene dos espacios de memoria principal, la memoria de datos y el espacio de memoria de programa.Adems, el ATmega48PA / 88PA / 168PA / 328P cuenta con una memoria EEPROM para almacenar datos. Los tres espacios de memoria son lineales y regular.

In-System Reprogrammable Flash Program Memory (En Sistema de memoria de programa Flash reprogramable)

El ATmega48PA / 88PA / 168PA / 328P contiene 4/8/16 / 32K bytes en el chip del Sistema de memoria reprogramable flash para almacenamiento de programas. Desde todas las instrucciones AVR son de 16 o 32 bits de ancho, el flash se organiza de 2/4/8/16 K x 16. Para la seguridad del software, el espacio de memoria de programa Flash se divide en dos secciones, la seccin del gestor de arranque y de la Seccin de programa de aplicacin en ATmega88PA y ATmega168PA.

Figura 3. Mapa de memoria de programa ATmega48PA

Figura 4. Mapa de memoria de programa ATmega88PA, ATmega168PA y ATmega328P

Memoria de datos SRAM

El ATmega48PA / 88PA / 168PA / 328P es un microcontrolador complejo con ms unidades perifricas que puedan ser soportados dentro de los 64 posiciones reservados en el Cdigo de operacin para las instrucciones IN y OUT. Para el espacio de E / S extendido de 0x60 - 0xFF en SRAM, solo pueden ser usadas las instrucciones ST/STS/STD y LD/LDS/LDD.

Los posiciones de memoria de datos inferiores 768/1280/1280/2303 direccionan tanto el archivo de registro, la memoria de E / S, extendido memoria de E / S y la SRAM de datos interna. Los primeros 32 posiciones direccionan el archivo de registro, el prximo 64 de ubicacin el estndar de E / S de memoria, luego 160 ubicaciones de memoria de E / S extendida, y los prximos 512/1024/1024/2048 posiciones direccionan la SRAM de datos interna.Los cinco modos diferentes de direccionamiento para la cubierta de la memoria de datos: directos, indirectos con Desplazamiento, indirecto, indirecto con Pre-decremento, e Indirectos con pos incremento. En el archivo de registro, registros R26 a R31 caracterstica las indirectas que traten registros de puntero.Los direccionamiento directo se extiende a todo el espacio de datos.el modo directo con desplazamiento alcanza 63 posiciones de direccin de la direccin de base dado por los registros Y- o Z-.Al usar modos de direccionamiento indirecto de registro con pre-decremento automtico y post incremento, los registros de direccin X, Y y Z son disminuidos o incrementados.Los 32 registros de trabajo de propsito general, 64 I / O Registros, 160 I extendido / S Registros, y los 512/1024/1024/2048 bytes de la SRAM interna de datos en la ATmega48PA / 88PA / 168PA / 328P son accesibles a travs de todos estos modos de direccionamiento.

Mapa de memoria de datosMuestra como est organizada la memoria SRAM de ATmega48PA/88PA/168PA/328P.

-Tiempos de acceso a los datos de memoriaEn esta seccin se describe los conceptos de tiempos de acceso general para el acceso a la memoria interna. El acceso SRAM interna de datos se realiza en dos ciclos de reloj de CPU.

Ciclos de acceso a la SRAM de datos.

Memoria de datos EEPROMEl ATmega48PA / 88PA / 168PA / 328P contiene 256/512/512 / 1K bytes de memoria EEPROM de datos.Se organiza como un espacio de datos por separado, en el que los bytes individuales pueden ser ledos y escritos. La EEPROM tiene una autonoma de al menos 100.000 ciclos de escritura / borrado.

- EEPROM de lectura / escritura de accesoLos registros EEPROM de acceso son accesibles en el espacio de E / S. Una funcin de auto-sincronizacin permite al software de usuario detectar cuando el siguiente byte se puede escribir. Si el cdigo de usuario contiene instrucciones que escriben en la EEPROM, se deben tomar algunas precauciones. En fuentes de alimentacin fuertemente filtradas, VCC es probable que suba o baje lentamente el encendido / apagado.Esto hace que el dispositivo durante un cierto perodo de tiempo funcione a una tensin inferior a la especificada como mnimo para la frecuencia de reloj utilizada.A fin de evitar escrituras EEPROM no intencionales, debe seguirse un procedimiento de escritura especfico.Cuando se lee la EEPROM, la CPU se detiene durante cuatro ciclos de reloj antes de que se ejecute la siguiente instruccin. Cuando se escriba la EEPROM, la CPU se detiene durante dos ciclos de reloj antes de que se ejecute la siguiente instruccin.

Memoria de E/STodo ATmega48PA / 88PA / 168PA / 328P / S y los dispositivos perifricos se colocan en el espacio de E / S. Todas las posiciones de E / S pueden ser accedidas por las instrucciones LD / SUD / LDD y ST / STS / de ETS, la transferencia de datos entre los 32 registros de propsito de trabajo general y el espacio de E / S. E / S Registros dentro del rango de direcciones 0x00 - 0x1F son directamente poco accesible siguiendo las instrucciones de OSE y la ICC.En estos registros, el valor de los bits individuales se puede comprobar mediante el uso de las instrucciones SBIS y SBIC. Cuando se utiliza los comandos de E/S especficos IN y OUT, deben utilizarse las direcciones 0x00 - 0x3F de E / S. Al direccionar Registros de E / S como espacio de datos utilizando instrucciones LD y ST, 0x20 hay que aadir a estas direcciones.El ATmega48PA / 88PA / 168PA / 328P es un microcontrolador complejo con unidades ms perifricas, que pueden sustentarse en el 64 posicin reservada en el Cdigo de operacin para las instrucciones IN y OUT.

Para el espacio de E / S de 0x60 - 0xFF en SRAM, solo pueden ser usadas las instrucciones ST/STS/STD y LD/LDS/LDD. Para la compatibilidad con dispositivos futuros, los bits reservados se deben escribir a cero si accede. Las Direcciones de memoria de E / S Reservadas nunca deben ser escritos. Algunos de los indicadores de estado se borran escribiendo un uno lgico para ellos.

SENSOR UV ML8511Este sensor es adecuado para detectar la radiacin UV ya sea en interiores o al aire libre.

Caractersticas: Voltaje de entrada: 3.3v Longitud de onda que detecta: 280-390 nm Temperatura de funcionamiento: -20C a -70C Tamao: 30x22 mm.

Diagrama:

Grfico de intensidad del ML8511

Cdigo del sensor:int UVOUT = A2; //SAlIDA DEL SENSORint REF_3V3 = A1; //3.3V

void setup(){ Serial.begin(9600);

pinMode(UVOUT, INPUT); pinMode(REF_3V3, INPUT);

Serial.println("ML8511 Ejemplo indice de radiacion uv");}

void loop(){ int uvLevel = averageAnalogRead(UVOUT); int refLevel = averageAnalogRead(REF_3V3); float outputVoltage = 3.3 / refLevel * uvLevel; float uvIntensity = mapfloat(outputVoltage, 0.99, 2.8, 0.0, 15.0); //nivel de intensidad

Serial.print("output: "); Serial.print(refLevel);

//Serial.print("ML8511 output: "); // Serial.print(uvLevel);

Serial.print(" voltage: "); Serial.print(outputVoltage);

Serial.print("UV Intensidad (mW/cm^2): "); Serial.print(uvIntensity); Serial.println(); delay(1000);}

//Takes an average of readings on a given pin//Returns the averageint averageAnalogRead(int pinToRead){ byte numberOfReadings = 8; unsigned int runningValue = 0;

for(int x = 0 ; x < numberOfReadings ; x++) runningValue += analogRead(pinToRead); runningValue /= numberOfReadings;

return(runningValue); }

//The Arduino Map function but for floatsfloat mapfloat(float x, float in_min, float in_max, float out_min, float out_max){ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;}TENIENDO EN CUENTA LO SIGUIENTE:

SENSOR MQ135Sensor de control de calidad de aire usado para la deteccin de contaminacin en el medio ambiente. Este sensor es capaz de detectar un amplio rango de gases que incluye: NH3, Benceno, Humo y CO2.

Caractersticas: Voltaje de funcionamiento: 5v Corriente de operacin: 150 mA Potencia de consumo: 800mW Concentracin detectable: amoniaco, benceno, humo, azufre. Temperatura de funcionamiento: -20C a -70C Concentracin: 10ppm a 1000ppm (partes por milln). Seal de salida: analgico y digital.

Diagrama:

SENSOR DHT11Sensor de medida de la humedad relativa y la temperatura.

Caractersticas: Rango de voltaje: 3.3v - 5v. Rango de temperatura: -0C a -50C , error: 2C Humedad: 20-90% HR , error: 5% HR Tiempo de respuesta: 2sDiagrama:

Cdigo del sensor:

1. #include 2. 3. #define DHT_PIN 84. 5. DHT dht;6. 7. void setup()8. {9. Serial.begin(9600);10. Serial.println();11. Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");12. 13. dht.setup(DHT_PIN);14. }15. 16. void loop()17. {18. delay(dht.getMinimumSamplingPeriod());19. 20. float humidity = dht.getHumidity();21. float temperature = dht.getTemperature();22. 23. Serial.print(dht.getStatusString());24. Serial.print("\t");25. Serial.print(humidity, 1);26. Serial.print("\t\t");27. Serial.print(temperature, 1);28. Serial.print("\t\t");29. Serial.println(dht.toFahrenheit(temperature), 1);30. }

SENSOR MQ7Sensor adecuado para detectar concentraciones de CO en el aire. Es capaz de detectar concentraciones de CO entre 20 y 2000 ppm.

Caractersticas: Fuente de entrada: 5v Alta sensibilidad al monxido de carbono Tamao: 40x20 mm. Tipo de interfaz: analgico.Diagrama:

Cdigo del sensor: const int AOUTpin = 0;const int DOUTpin = 8;const int ledpin = 13;int limit;int Value;

void setup(){ Serial.begin(115200); pinMode(DOUTpin,INPUT); pinMode(DOUTpin,OUTPUT);} void loop(){ Value = analogRead(AOUTpin); // read analog input pin 1 limit= digitalRead(DOUTpin); Serial.print("CO valor: "); Serial.println(Value); Serial.print("Limite"); Serial.println(limit); delay(100); // wait 100ms for next reading if(limit == HIGH){ digitalWrite(ledpin,HIGH);}else{ digitalWrite(ledpin, LOW);}}

PROGRAMA EN JAVAPGINA WEBPROCESO CON IMAGENESDIAGRAMAS DE FLUJO

CONCLUSIONESBIBLIOGRAFAhttp://es.wikipedia.org/wiki/Atmega328http://es.wikipedia.org/wiki/Arduino