Solis Aneliz Lab3

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

65UNIVERSIDAD PRIVADA DEL VALLE

FACULTAD DE INFORMATICA Y ELECTRONICA


INGENIERIA BIOMEDICA Evaluación
CAMPUS TIQUIPAYA

MICROPROCESADORES I

Informe de Practica de Laboratorio Nº 3

CONVERTIDOR ANALÓGICO DIGITAL


Grupo “A”

Estudiante: Solis Montaño Aneliz Zoraya

Docente: Ing. Gerson Pérez Villarroel

Cochabamba 14 de Mayo de 2021

Gestión I– 2021
CONVERTIDOR ANALÓGICO DIGITAL

1.OBJETIVO GENERAL

Conocer el funcionamiento del micro controlador ATMEGA 328P en configuración con el ADC.

 OBJETIVOS ESPECÍFICOS

 Comprender el funcionamiento del ADC interno del microcontrolador.


 Desarrollar un programa que realiza la lectura de las entradas analógicas.

2. FUNDAMENTO TEORICO

Microcontrolador

El Microcontrolador es un circuito integrado que es el componente principal de una


aplicación embebida. Es como una pequeña computadora que incluye sistemas para
controlar elementos de entrada/salida. También incluye a un procesador y por supuesto
memoria que puede guardar el programa y sus variables (flash y RAM). Funciona como
una mini PC. Su función es la de automatizar procesos y procesar información.
El microcontrolador se aplica en toda clase de inventos y productos donde se requiere
seguir un proceso automático dependiendo de las condiciones de distintas entradas.

Convertidor Analógico Digital (ADC)

Un convertidor de analógico a digital (ADC) es un dispositivo que convierte una señal


analógica variable en el tiempo en una representación digital de la amplitud de la señal.
Casi todas las señales físicas del mundo real son señales analógicas por naturaleza.
Algunos ejemplos incluyen sonido, luz, temperatura y movimiento. Un transductor es un
dispositivo que se puede usar para convertir una señal física de interés en una señal
eléctrica analógica que finalmente impulsa la entrada ADC.

ADC tiene muchos parámetros clave de rendimiento. Los dos parámetros principales son la
velocidad y la resolución de la muestra. La frecuencia de muestreo del ADC es la frecuencia
de la señal de entrada de prueba. La frecuencia de muestreo determina el ancho de banda
máximo de la señal de entrada, generalmente mayor que el doble de la señal de entrada
más alta, también conocida como tasa de Nyquist. La resolución del ADC determina la
precisión de la representación digital discreta que se puede producir dentro del rango de
valores analógicos.

4. TECNICA O PROCEDIMIENTO
Parte 4.1
Programar el microcontrolador para que realice la lectura de dos entradas analógicas, conectadas a dos
potenciómetros, y muestre los valores obtenidos por el ADC en un LCD.
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#define LCD_Port PORTD // PORT de datos del LCD
#define LCD_DPin DDRD // Pin de datos LCD
#define RSPIN PD0 // LCD Rs
#define ENPIN PD1 // LCD EN
void adc_referencia();
void LCD_Action(unsigned char cmnd);
void adc_canal(uint8_t canal);
void adc_iniciar();
int adc_start();
void adc_referencia()
{
ADMUX &=~ (1<<REFS1); //ADMUX con referencia de entrada de 1
ADMUX |= (1<<REFS0); //ADMUX con referencia de salida de 0
}
void adc_iniciar() // iniciamos el Adc
{
ADCSRA |= (1<<ADEN);
ADCSRA &=~ (1<<ADLAR);
ADCSRA &=~ (1<<ADATE);
ADCSRA |= ((1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)); //preescaler 128
}
void adc_canal(uint8_t canal) // iniciamos la primera lectura
{ // comparamos los valores de las entradas analogicas
if (canal==1)
{
ADMUX |= (1<<0);
ADMUX &=~ ((1<<3) | (1<<2) | (1<<1));
}
if (canal==5)
{
ADMUX |= ((1<<2) | (1<<0));
ADMUX &=~ ((1<<3) | (1<<1));
}
}
int adc_start()
{
ADCSRA |= (1<<ADSC); // iniciamos la conversion (start conversion)
while(ADCSRA&(1<<ADSC));// esperar que la conversion termine
return ADCW; // guardamos el valor
}
// funcionamiento del LCD
void LCD_Init (void)
{
LCD_DPin = 0xFF;
_delay_ms(15);
LCD_Action(0x02);
LCD_Action(0x28);
LCD_Action(0x0c);
LCD_Action(0x06);
LCD_Action(0x01);
_delay_ms(2);
}
// Asignamos los comandos del LCD
void LCD_Action( unsigned char cmnd )
{
LCD_Port = (LCD_Port & 0x0F) | (cmnd & 0xF0);
LCD_Port &= ~ (1<<RSPIN);
LCD_Port |= (1<<ENPIN);
_delay_us(1);
LCD_Port &= ~ (1<<ENPIN);
_delay_us(200);
LCD_Port = (LCD_Port & 0x0F) | (cmnd << 4);
LCD_Port |= (1<<ENPIN);
_delay_us(1);
LCD_Port &= ~ (1<<ENPIN);
_delay_ms(2);
}
// limpiamos el LCD
void LCD_Clear()
{
LCD_Action (0x01);
_delay_ms(2);
LCD_Action (0x80);
}
// Valores que se muestran en LCD
void LCD_Print (char *str)
{

for(int i=0; str[i]!=0; i++)


{
LCD_Port = (LCD_Port & 0x0F) | (str[i] & 0xF0);
LCD_Port |= (1<<RSPIN);
LCD_Port|= (1<<ENPIN);
_delay_us(1);
LCD_Port &= ~ (1<<ENPIN);
_delay_us(150);
LCD_Port = (LCD_Port & 0x0F) | (str[i] << 4);
LCD_Port |= (1<<ENPIN);
_delay_us(1);
LCD_Port &= ~ (1<<ENPIN);
_delay_ms(2);
}
}
//Valores que se muestran en LCD de tipo digital
void LCD_Printpos (char row, char pos, char *str)
{
if (row == 0 && pos<16)
LCD_Action((pos & 0x0F)|0x80);
else if (row == 1 && pos<16)
LCD_Action((pos & 0x0F)|0xC0);
LCD_Print(str);
}

int main(void)
{
adc_referencia();
adc_iniciar();
int num =0;
char letra[4];
LCD_Init();
LCD_Print("POT1 = ");
LCD_Action(0xC0);

LCD_Print("POT2 ");
LCD_Action(0XCD);
while (1)
{
LCD_Action(0X88);
adc_canal(1);
num =adc_start();
itoa(num,letra,10);
if (num<1000)
{
if (num<100)
{
if (num<10)
{
LCD_Print("000");
}
else{ LCD_Print("00");}
}
else {LCD_Print("0");}
}
LCD_Print(letra);

adc_canal(5);
LCD_Action(0XC8);
num=adc_start();
itoa(num,letra,10);
if (num<1000)
{
if (num<100)
{
if (num<10)
{
LCD_Print("000");
}
else{ LCD_Print("00");}
}
else {LCD_Print("0");}
}
LCD_Print(letra);
}
}

5. SIMULACION
6. CUESTIONARIO
1.Explicar el funcionamiento del ADC.

Cuando el ADC observa un voltaje analógico, su trabajo es convertir el voltaje analógico en


un código binario dentro de un cierto período de tiempo. Esto significa que el ADC
muestreará inmediatamente el voltaje analógico y luego determinará cuál es el valor binario
de la salida del ADC. La cantidad de muestras recolectadas por el dispositivo por segundo
se mencionará en su documentación. Un ejemplo es MAX1118EKA + T de Maxim
Integrated. La frecuencia de muestreo de este dispositivo es de 100 kHz, por lo que el
voltaje analógico en su lado de entrada se puede probar 100.000 veces por segundo.

2. Explicar el proceso de cuantificación del ADC. ¿Cuál es el rango de valores del


ADC del microcontrolador?
Un adc tiene un tamaño de paso de 0 a 1023 que es rango en el que se lo maneja de forma
habitual.

7. CONCLUSIONES

Después de realizar el programa correspondiente y utilizar los métodos ya conocidos. Podemos


concluir que la elaboración del laboratorio se llevó acabo satisfactoriamente , no obstante,
debemos tomar en cuenta ciertos puntos a la hora de realizar el programa como la configuración
del ADC y realizar los cálculos del preescaler de forma cuidadosa para tener resultados óptimos.

8. BIBLIOGRAFIA
 GUIAS DE PRÁCTICA ELECTRONICA -Código de registro: RE-10-LAB-138- Versión 1.0
UNIVERSIDAD DEL VALLE LABORATORIO DE MICROPROCESADORES I -
MICROCONTROLADOR Y BOOTLOADER

 https://naylampmechatronics.com/interfaz-de-usuario/19-teclado-matricial-4x4-tipo-
membrana.html

También podría gustarte