martes, 10 de febrero de 2015

Práctica 1: Sensores analógicos

Para esta tarea se utilizó una tarjeta de desarrollo basado en un pic18F4550 debido a que el pic32 aun no ha llegado, dicho microcontrolador nos permite configurar el módulo ADC mediante la función analogRead(), en el cual solo le indicamos el pin en el cual se realizará la lectura.
Se utilizó un fototransistor para medir el valor generado en el pin A0 del microcontrolador y desplegarlo en un LCD 16x2.

Código implementado en el lenguaje C mediante CCS
#define LCD_ENABLE_PIN  Pin_B0      //Configuración de los puertos del LCD                                   
#define LCD_RS_PIN      Pin_B1                                   
#define LCD_RW_PIN      Pin_B2                                   
#define LCD_DATA4       Pin_B4                                    
#define LCD_DATA5       Pin_B5                                   
#define LCD_DATA6       Pin_B6                                   
#define LCD_DATA7       Pin_B7

#include <G-PiC Lite!.c>             //Incluye las librerias del reloj, bootloader, etc
#include <lcd.c>                     //Incluye la libreria del LCD

#define phototransistor Pin_A0             //Entrada analogica para fototransistor en el pin A0
int sensor;

void main()
{
    lcd_init();      // Inicialización del LCD
    while (TRUE)
    {
      sensor = analogRead(phototransistor);  //Lee el voltaje del fototransistor
      printf(lcd_putc,"\f Valor=%u",sensor); //Imprime valor numérico
      delay_ms(200);
    }
}

Simulación en proteus
Se utilizó el microcontrolador mencionado anteriormente, un LCD 16x2, un fotoresistor y una resistencia. Se realizó la simulación para comprobar el funcionamiento del código para luego ser implementado en el protoboard. Se puede observar que en el pin RA0/AN0 se hará lectura del fototransistor (presione la imagen para ver).



1 comentario:

  1. Me parece muy interesante, y sobre todo por el hecho que son el único equipo que esta trabajando con PIC. bien explicado, solo me gustaria poder verlo en funcionamiento :D Saludos :)
    Equipo 10

    ResponderEliminar