Proyecto sumo robot (ADC para el uso de sensores infrarrojos)

Integrantes

Paula Andrea Martínez Benavides, Juan Sebastian Martínez Quintero

Universidad de San Buenaventura
Image Unavailable
Facultad de Ingeniería

Objetivos

*Programar el ADC para el uso de sensores de distancia.
*Comprobar el programa por medio del uso de diodos leds.

Descripción del ADC

¿Para qué sirve?

Sirve para poder leer y medir señales analógicas para después ser procesados, estas señales pueden ser de temperatura, aceleración, movimiento, humedad, etc.
En el caso del microcontrolador ATmega16, cuenta con 8 entradas ADC que están multiplexadas, es decir, que sólo se puede trabajar con una entrada a la vez y pueden medir voltajes de entre 0v y 5v.

Puerto y pines del ADC:
atmega16-adcpins.jpg

Sensor infrarrojo

Los sensores infrarrojos están diseñados especialmente para la detección, clasificación y posicionado de objetos; la detección de formas, colores y diferencias de superficie, incluso bajo condiciones ambientales extremas. Este componente puede tener la apariencia de un LED normal, la diferencia radica en que la luz emitida por el no es visible para el ojo humano, únicamente puede ser percibida por otros dispositivos electrónicos. Actualmente, el control remoto de aparatos electrónicos es algo habitual. El extendido uso del mando a distancia en televisión, video y equipos de música. El uso de infrarrojo está siendo ampliado al usarse en aparatos tales como: Aire acondicionado, para la apertura de puertas, control de reproductores portátiles, etc.

GP2De.gif

Para el proyecto se utilizarán dos sensores sharp 0a41sk:

sharp_sensor.jpg

Uso del ADC en el proyecto

En el laboratorio se utilizaron las características ya mencionadas anteriormente para programar el uso de dos sensores de distancia (Sharp 0a41sk) en el microcontrolador, los cuales envían una señal de voltaje que son leídos por el modulo del ADC; al obtener el valor leído se procede a realizar la función específica para prender los diodos leds que se encuentran conectados a el puerto D del microcontrolador, estas pruebas serán la base para el control de dos motores para el proyecto final.

Diagrama del circuito:

Para comprobar el programa se procedió a armar el circuito en proteus una herramienta de simulación.
cir.png

Diagrama de Flujo:

Para facilitar la comprensión del funcionamiento de la primera parte del proyecto se realizó el siguiente diagrama.
11303491_10206491842954817_68063416_n.jpg

Código fuente:

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
 
    int va;
    ISR(ADC_vect)
    {
        va=ADCH;
    }
 
    int main (void)
    {
        DDRD=0xFF;
        DDRB=0xff;
        sei();
        ADCSRA=(1<<ADIE)|(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1);
        //ADMUX=(1<<REFS0);
 
        while(1)
        {  ///0x102
            ADMUX=0x60;
            ADCSRA|=(1<<ADSC);
            while(ADCSRA & (1<<ADSC)); // espera a que se ejecute la conversión
 
            //va=(va*(5)/255);
 
            if (va<=0x66) 
 // el 0x66 se saca con adc=(vin)(1024)/(Vreff)  eso se convierte a binario y se quitan los dos últimos bits y se pasa a hexadecimal         
            {
                PORTD=0xff;
            }else
            {
                PORTD=0x00;
            }
 
            ADMUX=0x61;
            ADCSRA|=(1<<ADSC);
            While(ADCSRA & (1<<ADSC));  // espera a que se ejecute la conversión
 
            va=(va*(5)/256);
 
            if (va<=2)
            {
                PORTB=0xff;
            }else
            {
                PORTB=0x00;
            }
        }
    }

Referencias y Links

  1. https://vidaembebida.wordpress.com/2014/08/03/avr-programacion-en-c-08-adc-del-atmega16/
  2. http://www.sharpsma.com/webfm_send/1208
  3. http://www.atmel.com/Images/Atmel-8154-8-bit-AVR-ATmega16A_Datasheet.pdf
  4. http://server-die.alc.upv.es/asignaturas/PAEEES/2008-09/Sensor%20Infrarrojo%20-%20Grupo%20Naranja.pdf
  5. http://homepages.engineering.auckland.ac.nz/~pxu012/mechatronics2012/group5/hardware/images/sharp_sensor.jpg
  6. http://www.x-robotics.com/images/GP2De.gif
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License