Tabla de contenido:

Sensor de temperatura (LM35) que interactúa con ATmega32 y pantalla LCD - Control automático del ventilador: 6 pasos
Sensor de temperatura (LM35) que interactúa con ATmega32 y pantalla LCD - Control automático del ventilador: 6 pasos

Video: Sensor de temperatura (LM35) que interactúa con ATmega32 y pantalla LCD - Control automático del ventilador: 6 pasos

Video: Sensor de temperatura (LM35) que interactúa con ATmega32 y pantalla LCD - Control automático del ventilador: 6 pasos
Video: Display LCD con Ensamblador 2024, Noviembre
Anonim
Sensor de temperatura (LM35) que interactúa con ATmega32 y pantalla LCD | Control automático del ventilador
Sensor de temperatura (LM35) que interactúa con ATmega32 y pantalla LCD | Control automático del ventilador

Sensor de temperatura (LM35) Interfaz con ATmega32 y pantalla LCD

Paso 1:

En este proyecto, aprenderá cómo conectar un sensor de temperatura (LM35) con el microcontrolador AVR ATmega32 y la pantalla LCD.

Antes de este proyecto, debe obtener información sobre los siguientes artículos

cómo agregar una biblioteca lcd en avr studio | tutorial de microcontrolador avr

introducción a ADC en microcontrolador AVR | para principiantes

El sensor de temperatura (LM35) es un sensor de temperatura popular y de bajo costo. El Vcc puede ser de 4 V a 20 V como se especifica en la hoja de datos. Para usar el sensor, simplemente conecte el Vcc a 5V, GND a tierra y la salida a uno de los ADC (canal conversor analógico a digital).

La salida es de 10 milivoltios por grado centígrado. Entonces, si la salida es de 310 mV, entonces la temperatura es de 31 grados C. Para hacer este proyecto, debe estar familiarizado con el ADC de los AVR y también con el LCD. Por lo tanto, la resolución de los AVR ADC es de 10 bits y para el voltaje de referencia está usando 5 V, por lo que la resolución en términos de voltaje es

5/1024 = 5,1 mV aproximadamente

Entonces, si el resultado de ADC corresponde a 5.1 mV, es decir, si la lectura de ADC es

10 x 5,1 mV = 51 mV

Puede leer el valor de cualquier canal ADC usando la función adc_result (ch);

Donde ch es el número de canal (0-5) en el caso de ATmega8. Si ha conectado la salida del LM35 al canal ADC 0, llame

adc_result0 = adc_read (0);

esto almacenará la lectura actual de ADC en la variable adc_value. El tipo de datos de adc_value debe ser int ya que el valor ADC puede oscilar entre 0-1023.

Como vimos, los resultados de ADC están en un factor de 5,1 mV y para 1 grado C, la salida de LM35 es de 10 mV, por lo que 2 unidades de ADC = 1 grado.

Entonces, para obtener la temperatura, dividimos el adc_value por dos

temperatura = adc_result0 / 2;

Finalmente, el microcontrolador mostrará la temperatura en grados centígrados en la pantalla LCD alfanumérica de 16X2.

Paso 2: diagrama de circuito

Diagrama de circuito
Diagrama de circuito

Paso 3: Programa

#ifndef F_CPU

#define F_CPU 1600000UL

#terminara si

#incluir

#incluir

#include "LCD / lcd.h"

void adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// ADC Enable y prescaler de 128

ADCSRA = (1 <

}

// leer valor adc

uint16_t adc_read (uint8_t ch)

{

// seleccione el canal correspondiente 0 ~ 7

ch & = 0b00000111; // Operación Y con 7

ADMUX = (ADMUX & 0xF8) | ch;

// iniciar una conversión única

// escribe '1' en ADSC

ADCSRA | = (1 <

// espera a que se complete la conversión

// ADSC vuelve a ser '0'

mientras que (ADCSRA & (1 <

retorno (ADC);

}

int main ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int far;

tampón de carbón [10];

// inicializar adc y lcd

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); //CURSOR

lcd_clrscr ();

lcd_gotoxy (0, 0);

_delay_ms (50);

mientras (1)

{

adc_result0 = adc_read (0); // leer el valor adc en PA0

temp = adc_result0 / 2.01; // encontrar la temperatura

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, buffer, 10); // muestra el valor de ADC

// lcd_puts (búfer);

lcd_gotoxy (0, 0);

itoa (temp, buffer, 10);

lcd_puts ("Temp ="); // muestra la temperatura

lcd_puts (búfer);

lcd_gotoxy (7, 0);

lcd_puts ("C");

lejos = (1.8 * temp) +32;

lcd_gotoxy (9, 0);

itoa (lejos, búfer, 10);

lcd_puts (búfer);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_delay_ms (1000);

si (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("VENTILADOR ENCENDIDO");

PORTB = (1 <

}

si (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("VENTILADOR APAGADO");

PORTB = (0 <

}

}

}

Paso 4: Explica el código

Espero que sepa que sabrá cómo habilitar ADC y cómo conectar la pantalla LCD con el microcontrolador Avr en este código cuando la temperatura es superior a 30 grados, el ventilador está encendido y puede ver en la pantalla LED FAN ON y cuando la temperatura es inferior a 30 y luego el ventilador. está apagado y puede ver FAN OFF

Paso 5: puede descargar el proyecto completo

Haga clic aquí

Recomendado: