Microcontroladores: Conversión ADC de 10 bits.

Conversor ADC de 10 bits: Un conversor análogo a digital, es un sistema que permite convertir señales analógicas en señales digitales. 

Una señal análoga: Es una señal continua que puede tomar cualquier valor en un intervalo de tiempo. 

Una señal digital: Es una señal discreta, que puede tomar un número finito de valores en un determinado tiempo.

Ejemplo de una señal análoga y una señal digital.

 

El pic16F887, contiene un módulo convertidor ADC(análogo a digital),  que proporciona una resolución de 10 bits. Además, tiene 14 canales de entrada(AN0, AN1, AN2, AN3, AN4, AN5, AN6,AN7,AN8,AN9, AN10, AN11,AN12,AN13).

Conversor ADC de 10 bits: Cuando la resolución es de 10 bits, la señal digitalizada trabaja entre 0-1023. Con 10 bits el mayor número binario que puede tener es:

¿Cómo se calcula la resolución? 

La resolución, es el voltaje necesario para lograr en la salida un cambio de bits.

 

N: El número de bits que tiene el conversor ADC.

Vin: Voltaje que hay que poner a la entrada del conversor ADC.

Ejemplo: La resolución: 5v/1023=4,8mv/paso.

Para determinar qué número digital aproximado corresponde la señal de entrada, se utiliza la siguiente expresión: Ventrada/Resolución 

Por ejemplo: 

Si la señal análoga es 2V, el número digital aproximado es:

  • 2v/4,8mv= 416,6 bits

Funciones del programa 

#include <16f887.h>: Es la librería para el microcontrolador pic16F887.

#device adc=10: Función que indica el conversor a utilizar, en este caso es el conversor de 10 bits. 

#use delay(clock=4000000): Permite configurar o activar la frecuencia del sistema a 4MHZ.

#fuses XT,NOWDT: Son los que permiten la configuración del microcontrolador. 

#fuses XT: Activa el oscilador del sistema.

#fuses NOWDT: Se deshabilita el Watch Dog Timer..

#define use_portb_lcd TRUE: Se utiliza para configurar los pines del puerto D. 

#include <lcd. c>: Librería que se utiliza para el manejo de la pantalla lcd. 

int16 q: El campo “q” que se define como un dato tipo entero de 16 bits.

float lectura: El campo lectura se define como un dato tipo flotante. 

lcd_init(): Función que permite inicializar la pantalla lcd. 

setup_adc_ports(PIN_A0): Permite configurar los pines análogos o digitales de la conversión ADC. En este caso, se configura el PIN_A0 como análogo. 

setup_adc(ADC_CLOCK_INTERNAL): Configura el reloj interno de la conversión ADC. 

set_adc_channel(0): Configura el canal a leer, es decir, con el que se va a trabajar. En el programa se utiliza el canal AN0.

read_adc(): Lee el valor digital del conversor análogo a digital. 

read_adc(): Lee el valor digital del conversor análogo a digital. 

lectura: 5.0*q/1024.0: Esta fórmula es para convertir el valor almacenado(q) de la conversión ADC en voltaje. 

lcd_gotoxy(x,y): Función que indica la ubicación del cursor en la posición “x” y “y”.

printf(lcd_putc,”Voltaje=%1.2vf”,lectura): Muestra el texto y el valor de temperatura en este caso. 

Materiales:

  • Una pantalla LCD.
  • Un pic16F887.
  • Un potenciómetro de un 1k.
  • Un voltímetro. 

Explicación del circuito:

Se lee una entrada analógica y se muestra en la pantalla LCD de la placa el valor leído en voltios.

CIRCUITO.

Programa: Conversión ADC de 10 Bits.

 

#include <16f887.h>  //La librería que se utiliza para el pic16f887
#device adc=10   //Permite poner la cantidad de bits según el conversor a usar, en este caso son de 10bits
#use delay (clock=4000000)  //Configuración del reloj 
#fuses XT,NOWDT     //La configuración del microcontrolador 

#define use_portb_lcd TRUE 
#include <lcd.c>


void main(){

int16 q;
float lectura;
lcd_init();        //Inicializa la pantalla lcd

setup_adc_ports(PIN_A0); //Define los pines como analógos o digitales. En este caso es analógo.
setup_adc(ADC_CLOCK_INTERNAL);  //Configura el reloj interno de la conversión

for(;;){
  
  set_adc_channel(0);   //Selecciona el canal a trabajar, en este caso se trabaja con el canal AN0
  delay_us(20);        //Retardo
  q=read_adc();        //Guarda en q el valor leído de la conversión A/D
  lectura=5.0*q/1024.0;  
  lcd_gotoxy(1,1);      //Indica la posición del texto de la primera línea 
  printf(lcd_putc,"Voltaje= %1.2fv", lectura); //Va a mostrar el valor y el texto 
  delay_ms(1000);    //Retardo
 }
}
 

CONTENIDOS MÁS RELEVANTES.

LOS MEJORES SITIOS PARA APRENDER ELECTRICIDAD GENERAL

Que tal compañeros: ¿ como están? pues espero que se encuentren de maravilla ¡así como yo también! el día de ...
Leer Más

LOS MEJORES SITIOS PARA APRENDER ELECTRONICA

 LOS MEJORES SITIOS PARA APRENDER ELECTRONICA nuestra red global llamada Internet está inundada de muchos sitios para aprender electrónica de ...
Leer Más
plc aprender a programar

PLC: APRENDER A PROGRAMAR

PLC: APRENDER A PROGRAMAR Que tal amigos. ¿como están? ¿quieren aprender a programar PLCs? ¿estás buscando sitios que te ofrezcan ...
Leer Más

LOS MEJORES SITIOS PARA APRENDER ROBOTICA COMPLETAMENTE GRATIS.

saludos compañeros. Les cuento que el día de hoy estuve en una búsqueda exhaustiva por buscar los mejores sitios para ...
Leer Más

DESCARGAR GRATIS LIBROS DE ELECTRÓNICA

como descargar los libros gratis de electrónica saludos amigos, el día de hoy les comparto una serie de links  que ...
Leer Más

LOS MEJORES SITIOS PARA APRENDER INSTRUMENTACIÓN Y CONTROL

 En el post de hoy hablaré de 5 sitios web que marcan la diferencia para aprender todo lo que necesitas ...
Leer Más

MICROCONTROLADORES: CURSO COMPLETAMENTE GRATIS.

nota: estos cursos no pertenecen a sensoricx. Recuerda que debes suscribirte al canal https://www.youtube.com/channel/UCwbBivwbFv8GVitX5dKzPFQ antes de empezar el curso. VIDEO ...
Leer Más

PLC: CURSO COMPLETAMENTE GRATIS.

Saludos compañeros. A continuación les comparto una serie de vídeos que les servirán para su formación técnica en programación de ...
Leer Más
destacada

APRENDE LABVIEW CON ESTOS SENCILLOS TUTORIALES

saludos compañeros. El día de hoy les comparto una serie de vídeos relacionados con el entorno de desarrollo de LABVIEW ...
Leer Más
igbt

IGBT. QUE ES- PARA QUE SIRVE- COMO FUNCIONA

IGBT QUE ES- PARA QUE SIRVE- COMO FUNCIONA Hablar de los IGBT son mayores palabras puesto que estos transistores son ...
Leer Más

INVERSOR DE GIRO DE MOTOR TRIFÁSICO

INVERSOR DE GIRO DE MOTOR TRIFÁSICO. En este post se trabajó con un circuito inversor de giro de un motor ...
Leer Más

CONTROL ELECTRICO-INTRODUCCION

CONTROL ELECTRICO-INTRODUCCION Dentro de los sistemas de control electromagnético o sistemas cableados destacamos como elemento principal el contactor.   El ...
Leer Más

 

 

soy el administrador del sitio web. si tienes alguna duda, no dudes en contactarme

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *