Está en la página 1de 10

Universidad Autónoma de Nuevo León

Facultad de Ingeniería Mecánica y Eléctrica

Microcontroladores

Actividad Fundamental #3: ADC y Timer

Miguel Angel Rivera Rodriguez 1808094 #2

Jesús Daniel Garza Camarena

Semestre enero – junio 2022

Martes, V4-V6

San Nicolás de los Garza, N.L. 12/05/2022


OBJETIVO

Comprender los periféricos internos del microcontrolador como el ADC y los timer.

INTRODUCCIÓN

¿Qué utilidad tiene el ADC en un microcontrolador?

El convertidor analógico digital o ADC como se le conoce, viene siendo un convertidor de


datos el cual permite que los circuitos digitales puedan interactuar con el mundo físico por
medio de una señal analógica en forma de un código binario. Los convertidores ADC
permiten que los circuitos que son controlados por microprocesadores, así como otros
circuitos lógicos digitales similares se puedan comunicar con el mundo real.

Las principales características de los ADC son la frecuencia de muestreo, así como la
resolución de bits. La frecuencia de muestreo de un ADC no es otra cosa más que lo rápido
que un ADC puede convertir la señal de tipo analógica a una de tipo digital. Por el otro lado,
la resolución de bits viene siendo con cuanta precisión puede convertir el ADC la señal de
tipo analógica a digital. Una de las principales ventajas de utilizar convertidores ADC es la
alta tasa de adquisición de datos incluso cuando se trabaja con entradas multiplexadas.

Según la función de un conversor de señal pueden establecerse numerosas utilidades. Estos


conversores o ADC pueden encontrarse en dispositivos como los smartphones, termómetros,
micrófonos y, en general todos los lugares donde una señal analógica de tipo físico deba ser
convertida en otra digital. Algunas de las posibles aplicaciones de los ADC son los sistemas
de control y de medición, instrumentación industrial, sistemas de comunicación y todos los
demás sistemas basados en sensores. Debido a la variedad de aplicaciones que los ADC
poseen es que existen diferentes modelos de ADC, cada uno teniendo una especificación en
particular por lo que al momento de elegir uno, se tiene que saber cuál será su propósito.

Al mismo tiempo, una función de un conversor de señal añadida es que permite un mayor
control de todos los procesos. Esto ha sido especialmente relevante y ha tenido un papel
esencial en la llamada Revolución 4.0 donde la industria ha sido digitalizada en gran parte
gracias a la precisión y ventajas que otorgan. Son de hecho los responsables de que pueda
llevarse un control pormenorizado y centralizado de todas las variables físicas que
intervienen en los diferentes procesos de producción y sistemas al convertirlos en señales
binarias de tipo digital.
DIAGRAMA DE BLOQUES

TABLA DE LA VERDAD

Entradas Salidas
Valor Letra Display (AC) Combinación
Seg Seg Seg Seg Seg Seg Seg
potenciómetro Mostrada A B C D E F G
Hexadecimal
0-50 L 1 1 1 0 0 0 1 E2
51-100 K 1 0 0 1 0 0 0 91
101-255 H 1 1 0 1 0 0 0 D1

LISTA DE MATERIALES

• 1 MCU ATMEGA328P
• 1 ARDUINO UNO
• 1 protoboard
• 1 potenciómetro 10KΩ
• 1 display 7SEGAC
• 1 Push Button
• 1 LED
• 1 resistencia de 10KΩ
• 7 resistencias de 1KΩ
• 1 resistencia de 220Ω
DIAGRAMA DE FLUJO
DIAGRAMA ESQUEMÁTICO
TINKERCAD
CODIGO EN LENGUAJE C

/*
* AF_3.c
* AD y Timer
*
* Created: 12/05/2022 06:49:51 p. m.
* Author : Miguel Rivera
* ID: 1808094
* NL: #2
* Dia: Martes
* Hora: V4-V6
*/

#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>
#include <avr/interrupt.h>
//---------------------------
//Salidas
#define DISPLAY PORTD
#define LED PORTC1
#define LED_TGL PORTC ^= _BV(LED)
//---------------------------
//Funciones
void init_ports(void);
void init_ports(void)
{
//salidas
DDRD = 0xFF;
PORTD = 0x00;
DDRC |= _BV(LED);
PORTC &=~ _BV(LED);
}

void init_timer(void);
void init_timer(void)
{
TCCR0A &=~ _BV(WGM01) | _BV(WGM00);
TCCR0B &=~ _BV(WGM02);
}

void ON_timer(void);
void ON_timer(void)
{
//variable de contador
TCNT0 = 0;
//Prescalar 1024
TCCR0B |= _BV(CS02) | _BV(CS00);
TCCR0B &=~ _BV(CS01);
}

void OFF_timer(void);
void OFF_timer(void)
{
TCCR0B &=~ _BV(CS02) | _BV(CS01) | _BV(CS00);
}

void init_ADC(void);
void init_ADC(void)
{
// Referencia +5V
ADMUX &=~ _BV(REFS1);
ADMUX |= _BV(REFS0);
//Lectura de 8 bits
ADMUX |= _BV(ADLAR); // Escoger PIN: ADC2
ADMUX &=~ (1<<MUX3);
ADMUX &=~ (1<<MUX2);
ADMUX |= (1<<MUX1);
ADMUX &=~ (1<<MUX0);
//Freeruning
ADCSRA |= (1<<ADATE);
//Enable Interrupt
ADCSRA |= (1<<ADIE);
//velocidad de muestreo
// 1 MHz clock / 8 = 125 kHz ADC clock debe estar entre 50 - 200Khz
ADCSRA &=~ (1<<ADPS2);
ADCSRA |= (1<<ADPS1);
ADCSRA |= (1<<ADPS0);
}

void ON_ADC(void);
void ON_ADC(void)
{
//Enable ADC
ADCSRA |= (1<<ADEN);
//Iniciar
_delay_ms(10); //Precalentamiento
ADCSRA |= (1<<ADSC);
}
//------------------------------
//Interrupción
ISR(ADC_vect)
{
if (ADCH >= 0 && ADCH <= 50)
{
DISPLAY = 0b1110001; // L
}
if (ADCH >= 51 && ADCH <= 100)
{
DISPLAY = 0b1001000; // K
}
if (ADCH >= 101 && ADCH <= 255)
{
DISPLAY = 0b1101000; // H
}
}
//----------------------------------
int main(void)
{
cli(); //desactiva interrupciones
init_ports();
init_timer();
ON_timer();
init_ADC();
uint8_t contador = 0;
sei(); //desactiva interrupciones
ON_ADC();
while (1)
{
if (TCNT0 == 97)
{
TCNT0 = 0;
contador++;
if (contador == 10)
{
LED_TGL;
contador = 0;
}
}
}
}

PROTOBOARD
CONCLUSIÓN

Esta actividad la realice después de haber completado la practica #8 del laboratorio por lo
que, en esencia, esta actividad era casi la misma que la practica con la diferencia de que en
esta actividad se le agregaba un led el cual estaba encendiendo y apagando para poder
demostrar el correcto uso de los timers. En relación a los timers, estos resultaron bastante
útiles ya que ayudan a desempeñar el código de una manera mas eficiente ya que con los
delays como ya nos había dicho el ingeniero, estos detienen por completo el proceso del
código en nuestro circuito y esos segundos que se detiene pueden ser utilizados de mejor
manera mediante el uso de un timer.

REFERENCIAS

• Rubio, A. (2019, 5 abril). ¿Cuál es la función de un convertidor de señal? - Instrumentación Digital.

Paneles digitales y analizadores de red. Recuperado 12 de mayo de 2022, de

https://www.instrumentaciondigital.es/cual-es-la-funcion-de-un-convertidor-de-senal/

• Mecafenix, I. (2022, 14 april). Potenciómetro ¿Qué es y como funciona? Ingeniería Mecafenix.

Geraadpleegd op 7 mei 2022, van https://www.ingmecafenix.com/electronica/potenciometro/

También podría gustarte