Laboratorio 3
Laboratorio 3
Laboratorio 3
LABORATORIO Nº3
TEMA:
VOLTAJE Y TEMPERATURA DIGITAL
ASIGNATURA:
MICROCONTROLADORES Y SISTEMAS EMBEBIDOS
PROFESOR:
ASTOCONDOR VILLAR, JACOB
INTEGRANTES:
Diagrama de flujo
Código
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include "DEF_ATMEGA328P.h"
#include "LCD.h"
void ADC_init(void)
{
ADMUX |= (1<<REFS0); //Seleccionar el voltaje de referencia
ADMUX &=~ (1<<REFS1);
ADMUX &=~ (1<<ADLAR); //Ajustar el resultado
char str[10];
uint16_t dato_adc;
float volataje_x;
int main(void)
{
//1023 - 20V
//dato_adc - X
while (1)
{
LCD_clear();
dato_adc = ADC_read(1);
itoa(dato_adc, str, 10);
LCD_goto(1,0);
LCD_printf("ADC =");
LCD_goto(8,0);
LCD_printf(str);
_delay_ms(100);
}
}
Simulación
PREGUNTA 2: Realice un medidor de temperatura cuyo rango de medición varie
entre 0 a 50 ºC, el valor de la medición reflejarlo en una pantalla LCD.
Diagrama de flujo
Código
#define F_CPU 16000000UL //Definimos la velocidad del CPU
#include <avr/io.h> //Libreria del atmega
#include <util/delay.h> //Libreria del delay
#include <stdio.h> //
#include "DEF_ATMEGA328P.h"
#include "LCD.h" //Libreria del LCD
void ADC_init(void)
{
ADMUX |= (1<<REFS0); //Seleccionar el voltaje de referencia
ADMUX &=~ (1<<REFS1);
ADMUX &=~ (1<<ADLAR); //Ajustar el resultado
int main(void)
{
//1023 - 5v
//dato_adc - X
LCD_init();
ADC_init();
while (1)
{
LCD_clear(); //limpiamos el lcd
dato_adc = ADC_read(0); //Seleccionamos el canal 0 (PC0) del adc
itoa(dato_adc, str, 10); //TRANSFORMA EL ENTERO "dato_adc" A UN
ARREGLO DE CARACTER
//GUARDADO EN ADC PARA PODER SER VISUALIZADO EN EL LCD
LCD_goto(1,0);
LCD_printf("ADC =");
LCD_goto(8,0);
LCD_printf(str);
Simulación
conclusiones y recomendaciones.
1.1. Conclusiones:
1.2. Recomendaciones: