Sensores

RESUMEN PARA HACER

Miembros
Daniel Felipe Hernández

Rafael Cuperman

Félix Gutiérrez

Julián Rico

Maria Camila López

Juan Sebastián Lengyel

Camilo Saavedra

Sensor de calidad de aire:
Sharp GP2Y1010AU0F: Compact Optical Dust Sensor

Es un sensor de polvo y material particulado en el aire por medio de un sistema de sensado óptico. Posee un LED infrarrojo y un fototransistor enfrentados. Detecta la luz reflejada del polvo en el aire.

Medidas: 46.0 x 3

0.0 x 17.6 mm

Bajo consumo de corriente: 20mA

Para la presentación de mañana es importante tener en cuenta las dimensiones del sensor, tiene que estar en contacto con el aire, posibilidades de diseño (llaveros, tarjetas, maletas, etc). También que se puede hacer para que el usuario le agrade sacar o llevar el dispositivo a todos lados, incentivos ?? . Tener en cuenta el tipo de usuarios que van a usarlo (20 a 40 años), usuarios que usen redes sociales permanentemente. Esto son como los aspectos más importantes a la hora del diseño del dispositivo.

Introducción
El bloque de sensores tiene como misión la medición de dos variables ambientales: material particulado y temperatura ambiente. Para lograr esto se utiliza un sensor para cada una de estas variables: Sharp GP2Y1010AU0F y LM35 respectivamente. Cada uno de estos sensores debe ser conectado de una manera en específica que será explicada más adelante junto con su muy distinto funcionamiento. El tratamiento y adquisición de estos datos se realiza con la ayuda de un microcontrolador ATMEGA16A.

Materiales y herramientas

 * Sensor de material particulado Sharp GP2Y1010AU0F
 * Sensor de temperatura LM35
 * Microcontrolador ATMEGA16A
 * Condensador de 220μF
 * Resistencia de 150Ω
 * Programador para el microcontrolador


 * Software AVR Studio

Sensor de temperatura LM35




Este sensor tiene el tamaño de un pequeño transistor bipolar y posee tres pines: uno para alimentación (hasta 35V), uno de salida de la medición y otro para tierra. El sensor fue alimentado con +5V y según hoja de datos el sensor debe entregar, por el pin de salida, 10mV/°C. Sin embargo, es recomendable realizar previamente una calibración del sensor utilizando temperaturas conocidas debido a posibles errores en la fabricación de este.

Es muy importante tener mucho cuidado en la conexión de este sensor, ya que si se conectan los pines de alimentación y tierra al contrario, este se calentará mucho peligrando la integridad de este y los componentes cercanos.



De acuerdo a esto, el esquemático de conexiones de este sensor es el mostrado en la imagen anterior, con cada pin directamente conectado a donde se indica. El pin “output” va conectado a un puerto ADC del microcontrolador que será especificado más adelante.



Sensor de material particulado GP2Y1010AU0F


El dispositivo es capaz de tomar mediciones acerca de la calidad del aire del ambiente en el que esté inmerso. Su funcionamiento se basa en un LED que emite en infrarrojo y un receptor de tipo fototransistor acoplados para permitir la detección de partículas muy pequeñas como humo de cigarrillo o smog. Tiene la ventaja de tener un consumo muy reducido, ya que requiere típicamente de 11mA y máximo de 20mA. Se puede alimentar hasta con 7VDC y su salida en un voltaje análogo con una sensibilidad teórica de 0.5V/0.1mg/m3, sin embargo, es altamente recomendado realizar una calibración previa con valores de contaminación conocidos. Sus medidas son de 46 x 30 x 17.6 mm.

Para su correcto funcionamiento se requiere una señal  con periodo de 10ms, donde el ancho del pulso es de 0.32ms tal y como se muestra en las siguientes imágenes:



El sensor posee seis pines de conexión, donde, mirados desde arriba y de frente, deben ser conectados de acuerdo al siguiente esquemático (siendo 1 el pin de la izquierda y 6 el de la derecha):







<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

El pin de salida (‘out’) va conectado directamente a un puerto ADC del microcontrolador. El pin de ‘señal’ va conectado a un pin del microcontrolador que le aporta la señal periódica de habilitación. Más adelante es especificado cuáles pines son los encargados de esto.

Microcontrolador ATMEGA16A
<p class="MsoNormal" style="text-align:justify">Este microcontrolador de 8 bits de ancho de palabra provee 16 Kbytes de memoria flash programable. Posee 32 puertos In/Out programables, 4 puertos PWM  y puede operar entre 2.7V y 5.5V consumiendo 0.6mA en estado activo y solo 0.2mA en estado de reposo. Entre otras cosas, también cuenta con 8 puertos de conversión ADC de 10 bits de resolución lo cual es muy conveniente para los objetivos del proyecto ya que usando estos puertos se adquieren datos de los sensores anteriormente nombrados y se proveen al bloque de comunicaciones que se encarga de transmitirlos. Es posible encontrar este microcontrolador tanto en empaque DIP como para montaje tipo SMD lo cual permite hacer pruebas de manera fácil sin tener que soldar el controlador a una PCB.

<p class="MsoNormal" style="text-align:justify">Lo más importante de las conexiones de este dispositivo es conectar los pines AVcc y ARef a 5V, de tal modo que la referencia alta para los conversores ADC sea 5V como es especificado en el código más adelante. Aparte de esto, toca tener en cuenta que la señal periódica de habilitación que necesita el sensor de material particulado sale por el pin 2 del puerto D del microcontrolador (o según lo acordado en el código).

Total.png
<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify">

<p class="MsoNormal" style="text-align:justify"> <p class="MsoNormal" style="text-align:justify">En el pin PA0 (ADC0) entra la medición de temperatura hecha por el sensor LM35 y en el pin PA1 (ADC1) entra la medición de material particulado hecha por el sensor GP2Y1010AU0F.

Código
<p class="MsoNormal" style="text-align:justify">El programa que debe ser escrito en el microcontrolador debe ser desarrollado en el programa AVR Studio bajo un proyecto nuevo. Es posible copiar y pegar el código que se muestra a continuación en dicho software. Es importante tener en cuenta que para diferenciar los dos tipos de datos (temperatura y material particulado), se le adiciona siempre al dato de la temperatura un 1 en el bit más significativo y un 0 en ese mismo bit al dato de material particulado /* <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> * Total.c  <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> * <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> * Author: Taller Electrónica <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> * <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> * <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> * Written in AVR Studio 5 <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> <span style="font-size: 10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> * Compiler: AVR GNU C Compiler (GCC) <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> */ <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Librerías <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Definiciones <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Variables e inicialización <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">int temperatura = 0; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">char temperaturachar = 0; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">int material = 0; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">char materialchar= 0; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">void init; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Habilitación interrupciones <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">ISR(ADC_vect); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> //Función que inicializa el ADC y lo configura <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">void adc_init <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">{ <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">// Indica que la referencia del ADC es lo que se encuentra en el pin Avcc <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   ADMUX = (1<<REFS0); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   // Habilita el ADC y el prescaler en 128 <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">} <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> //Funcion que lee el ADC en el canal ‘ch’ <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">uint16_t adc_read(uint8_t ch) <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">{ <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   // Selección del canal del ADC de acuerdo a lo escogido en ‘ch’ <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   ch &= 0b00000111;  // AND con 7 (para seleccionar el canal) <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   ADMUX = (ADMUX & 0x78)|ch; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   // Empieza la conversión <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   // Escribe '1' en ADSC <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   ADCSRA |= (1<<ADSC); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   // Espera a que la conversión se complete <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   // ADSC vuelve a ser '0' <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   while(ADCSRA & (1<<ADSC)); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Retorna el valor del ADC medido <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">   <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew"; mso-fareast-font-family:"TimesNewRoman";color:black;mso-ansi-language:EN-US; mso-fareast-language:ES-CO">return (ADC); <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">} <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO"> <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">//Función principal <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">int main(void) <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">{ <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Inicialización <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       adc_init; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Por el pin 2 del puerto D sale el pulso de habilitación del sensor de material particulado <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">DDRD=0x04; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//Variables donde se guardarán los resultados de los ADC <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">uint16_t adc_result0; <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">       uint16_t adc_result1; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">//For infinito <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       while(1) <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       { <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       //Lectura temperatura <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">// Lee el valor del ADC en PA0 (temperatura) y lo divide entre dos //para acomodar resolución <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       adc_result0 = adc_read(0)/2.0; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       // Guarda la temperatura en el registro correspondiente <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       temperatura=adc_result0; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> //Convierte la temperatura a tipo char añadiendo el bit más //significativo en 1 para diferenciación <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       temperaturachar=temperatura|0b10000000; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       //Ciclo de lectura de material particulado <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       //Apaga el pulso <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       PORTD=0x00; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       //Espera 280 us                 <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">        _delay_us(280); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO"> // Lee el valor del ADC en PA1 (material particulado) y lo divide      //entre dos para acomodar resolución <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">adc_result1 = adc_read(1)/2.0; <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">       //Espera 40us <span lang="EN-US" style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family: "TimesNewRoman";color:black;mso-ansi-language:EN-US;mso-fareast-language: ES-CO">       <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">_delay_us(40); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       //Enciende el pulso <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       PORTD=0x04; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       //Espera 9680 us  <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">        _delay_us(9680); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman"; color:black;mso-fareast-language:ES-CO">       // Guarda el material particulado en el registro correspondiente <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO">       material=adc_result1; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO">       //Convierte el material particulado a tipo char <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO">       materialchar=material; <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO">       //Tiempo entre lecturas <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO">       _delay_ms(tiempo); <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO"> <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO">       } <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO">} <span style="font-size:10.0pt;font-family:"CourierNew";mso-fareast-font-family:"TimesNewRoman";color:black;mso-fareast-language:ES-CO"> <p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;tab-stops:45.8pt91.6pt137.4pt183.2pt229.0pt274.8pt320.6pt366.4pt412.2pt458.0pt503.8pt549.6pt595.4pt641.2pt687.0pt732.8pt">
 * 1) include <util/delay.h>
 * 1) include <avr/io.h>
 * 1) include <string.h>
 * 1) include <avr/interrupt.h>
 * 1) define F_CPU 1000000UL //Frecuencia de operación del CPU
 * 1) define tiempo 120000 //Tiempo en ms entre mediciones

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;tab-stops:45.8pt91.6pt137.4pt183.2pt229.0pt274.8pt320.6pt366.4pt412.2pt458.0pt503.8pt549.6pt595.4pt641.2pt687.0pt732.8pt"> Para programar este código en el microcontrolador es necesario ejectuar cmd (terminal) desde el computador donde se generó el código y escribir los siguientes comandos:

<p class="MsoListParagraphCxSpLast">   Por ejemplo:
 * cd (dirección de la carpeta donde se crea el archivo .hex del código).

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height: normal;tab-stops:45.8pt91.6pt137.4pt183.2pt229.0pt274.8pt320.6pt366.4pt412.2pt458.0pt503.8pt549.6pt595.4pt641.2pt687.0pt732.8pt">   cd C:\Users\User\Desktop\Taller\Total\Total\Debug

<p class="MsoListParagraphCxSpMiddle">   Donde “Total” debe ser reemplazado por el nombre del archivo .hex generado. <p class="MsoListParagraphCxSpLast">
 * <span lang="EN-US" style="font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: Symbol;mso-ansi-language:EN-US">           avrdude -c usbtiny -p m16 -U flash:w:Total.hex -U lfuse:w:xe1:m -U hfuse:w:0x19:m