Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Práctica Voltímetro: Diseño y Programación de un Voltmeter Usando ATMEL STUDIO 7, Guías, Proyectos, Investigaciones de Informática industrial

Una práctica de ingeniería electrónica que consiste en leer un potenciómetro a través de dos displays de 7 segmentos para mostrar los decimales de la tensión en voltios. El documento incluye el objetivo de la práctica, el código en ATMEL STUDIO 7, la placa PCB, el esquema eléctrico, la lista de materiales y su precio. El estudiante debe programar el microcontrolador ATMEGA2560, configurar el ADC y las interrupciones, y realizar las operaciones matemáticas necesarias para obtener los dos dígitos que se mostrarán en los displays.

Tipo: Guías, Proyectos, Investigaciones

2020/2021

Subido el 21/05/2021

abekasis
abekasis 🇪🇸

1 documento

1 / 8

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
1
PRÁCTICA 2
Voltímetro
Integrantes del grupo:
Jesús Maza Muñoz
Manuel Alejandro Romero Macias
Juan Rafael Serrano Martínez
pf3
pf4
pf5
pf8

Vista previa parcial del texto

¡Descarga Práctica Voltímetro: Diseño y Programación de un Voltmeter Usando ATMEL STUDIO 7 y más Guías, Proyectos, Investigaciones en PDF de Informática industrial solo en Docsity!

PRÁCTICA 2

Voltímetro

Integrantes del grupo: Jesús Maza Muñoz Manuel Alejandro Romero Macias Juan Rafael Serrano Martínez

Índice

  • Objetivo de la práctica
  • Código de la practica en ATMEL STUDIO 7....................................................................................
  • Placa PCB
  • Esquema eléctrico
  • Lista de materiales

proviene de lectura voltaje, eso es algo que se habla más delante de igual forma con las demás variables. Las dos tablas son aquella que mostraran el resultado en el display. void comenzar_conversion(void) { ADCSRA |= 1<< ADSC; //ADSC activo, da comienzo a la conversion de ADC } A partir de aquí se define en un void comenzar_conversion el cual se encarga de dar comienzo a la conversión de ADC que tenga en ese pin en concreto que este recibiendo el valor de tensión. void inicializar_ADC(void) { ADCSRA |= 1<<ADEN | 1<<ADIE | 1<<ADPS0 | 1<<ADPS1 | 1<<ADPS2; //ADEN=1,activa el ADC | ADIE=1, activa interrupción ADC | ADPS0=1,ADPS1=1 y ADSP2=1, divisor entre frecuencia XTAL y entrada del reloj para el ADC ADMUX |= 1<<REFS0 | 1<<MUX0 | 1<<MUX2 ; // REFS0=1, activa la VCC de 5 voltios al pin referenciado | MUX0=1 y MUX2=2, activa pin de entrada que es ADC DIDR0 |=1<<ADC5D; // ADC5D=1, desabilita el buffer de entrada digital del ADC5, para evitar lectura lógica. comenzar_conversion(); } Con este void de inivializar_ADC, se logra activar las interrupciones del ADC y también del propio ADC, de la misma manera se indica que pin se va a usar por medio del admux para recibir el valor de tensión que proporciona el potenciómetro y se deshabilita el buffer del pin que corresponda y así poder obtener una lectura analógica. Tras esta configuración se finaliza con comenzar_conversion, ya que según el fabricante al hacer esto ya estamos habilitando el ADC y por lo tanto podemos convertir el valor que obtengamos a uno donde se podrá hacer los cálculos correspondientes, esos valores se moverán entorno de 0 a 1024 que será los que el ADC proporcione. ISR (ADC_vect) { lectura_voltaje=ADC; //Lecutra del registro ADCl y ADCH comenzar_conversion(); //Vuelve a comenzar la conversion } Esta parte es simplemente la interrupción, así que cada vez que se varía el valor del potenciómetro se activa la interrupción haciendo que lea el dato y sucesivamente lo convierta.

int main(void) { cli (); //deshabilita todas las interrupciones DDRA= 0b00000000; // PINA 0-7, es salida DDRC= 0b00000000; // PINC 0-7, es salida inicializar_ADC(); primerdigito=0; //Pone a cero variable de tipo entero segundodigito=0; //Pone a cero variable de tipo enter sei (); //habilita todas las interrupciones while (1) { variable= ((lectura_voltaje5)/(1024)); //lee un a tension a traves de lectura voltaje que es el resultado de ADC primerdigito=variable; // variable tipo entero para el primer digito segundodigito=(variable-primerdigito)10; //variable tipo entero para el segundo digito, realiza operaciíon matematica para coger los decimales PORTC=digit2 [segundodigito]; // salida del valor de la tabla digit2 al puerto C PORTA=digit1p [primerdigito]; //salida del valor de la tabla digit1p al puerto A } } Esta ultima parte del programa es prácticamente donde se llevara a cabo todos los void que se han ido comentando y con ella limpia cualquier interrupción que hubiera anteriormente en con “cli”, se designa que puertos se usaran como salida y que pines serán los de salida. Inicializa todo lo mencionado del void “inicializar_ADC”, se establece las variables de primerdigito y segundodigito a 0 y se habilita todas las interrupciones con “sei” todo eso lo hace una vez y después el microcontrolador funcionará con lo que se incluya en el while (1). El funcionamiento del while es simplemente unas operaciones matemáticas que el fabricante proporciona a través de una ecuación: 𝐴𝐷𝐶 = 𝑉 𝑉𝑟𝑒𝑓

𝑉𝑟𝑒𝑓 1024

La variable llamada “variable” guarda el valor de V en una de tipo float para así evitar perder ese tipo de variable. Después se usa para transforma dicho resultado en los dos enteros que son primerdigito y segundodigito para que así se pueda usar para moverse a través de la tabla de digit2 y digit1p. De esta forma a medida que vaya cambiando el potenciómetro se ira observando el los dígitos de 7 segmentos el valor de tensión que haya en ese momento que ira variando de 0 a 5 voltios.

Esquema eléctrico

Figura 2 La imagen anterior hace referencia al esquema eléctrico seguido para la realización de la práctica.

Lista de materiales

Figura 3 Componentes Cantidad (unidades) Precio de la unidad (€) Total (€) Resistencia 220Ω 15 0,04 0, 60 Potenciometro 1 0,60 0, Display 7 segmentos 2 0,99 1, Protoboard 2 1,7 3, Cables 42 0,03 1,2 6 Arduino mega 2560 1 9,99 9, Total: 17,