Академический Документы
Профессиональный Документы
Культура Документы
(Sensores)
El ADC (CONVERTIDOR ANALOGO DIGITAL) es algo muy sencillo aunque tiene varias
instrucciones, pero todas ellas son fáciles de aprender y combinar. Esta es la forma como
podemos leer un sensor de tres pines
La librería del ADC que está incluida en el compilador hecha solo para que trabaje en el puerto
A.
Declaramos las variables globales
float Vleida;// la variable float se utiliza cuando se requieren decimales ej: 4,7876
float Voltaje;// voltaje es una variable float 4,52
float V; // V es una variable float que se utiliza para el calculo
#include <18f4550.h>
#use delay(clock=8000000)
float Vleida;
float Voltaje;
float V;
void main (void)
{
Ahora tenemos que agregar algo nuevo dentro de la función principal, como lo es la función
ADC.
// ADC Functions: SETUP_ADC(), SETUP_ADC_PORTS() (aka SETUP_PORT_A),
// SET_ADC_CHANNEL(), READ_ADC()
// Constants used for SETUP_ADC() are:
#define ADC_OFF 0 // ADC Off
#define ADC_CLOCK_DIV_2 0x100
#define ADC_CLOCK_DIV_4 0x04
#define ADC_CLOCK_DIV_8 0x01
#define ADC_CLOCK_DIV_16 0x05
#define ADC_CLOCK_DIV_32 0x02
#define ADC_CLOCK_DIV_64 0x06
#define ADC_CLOCK_INTERNAL 0x07 // Internal 2-6us
Aquí debemos definir las funciones del ADC que vamos a utilizar
SETUP_ADC(ADC_CLOCK_I NTERNAL);// El setup se utiliza cuando se requiere un hardware
del micro en este caso es el convertidor de análogo a digital especialmente el reloj interno ADC
SETUP_ADC_PORTS (an0); // El setup se utiliza cuando se requiere un hardware del micro en
este caso es el convertidor de análogo a digital donde se le asigna el puerto AN0 por defecto.
while(true)
{
Aquí se escriben las instrucciones
}
}
A continuación explicare las instrucciones utilizadas en el ADC antes de empezar a escribir el
programa:
SET_ADC_CHANNEL(0); // Se asigna un canal para el ADC. En este caso el canal 0 por
utilizar el AN0.
Vleida=READ_ADC(); //Se le asigna una variable float a la lectura del sensor (ADC).
Voltaje=(Vleida*5)/255; // Esta operación significa que la lectura del sensor se multiplica por 5
que corresponden al voltaje de alimentación del microcontrolador y se divide por 8 bit (255)
V=Voltaje; // Se le asigna una variable float a la lectura de voltaje.
Ya tenemos todas las instrucciones y las funciones ADC que se requieren para escribir el
programa.
#include<18f4550.h>
#use delay(clock=8000000)
#include<lcd.c>
float Vleida;
float Voltaje;
float V;
SETUP_ADC(ADC_CLOCK_I NTERNAL);
SETUP_ADC_PORTS (an0);
while (true)
{
SET_ADC_CHANNEL(0);
Vleida=READ_ADC();
Voltaje=(Vleida*5)/255;
V=(Voltaje*1);
printf(lcd_putc,"voltios= ""%1.2f",V);
}
}
Nota: Tenga en cuenta que el programa compila pero hay que agregar lineas que hacen falta.