Está en la página 1de 20

Trabajo Final Lenguaje Asemble

Curso:

Arquitectura del Computador


Profesor:

Ing.Moscoso
Alumnos:
CUMAPA ROQUE ERIKA MILAGROS
DIONICIO ANTUNEZ GRECIA MELISSA
CAMONES CADILLO DANIEL EDIZON
VILLCA VELA DIEGO ALONSO

2015

TIRISTORES
OBJETIVO

Realizar un control de temperatura utilizando una lmpara y un motor


como ventilador, a travs del Atmega 8 y circuitos de potencia, de control
y de cruce por cero.

INTRODUCCION TEORICA
El control de la temperatura y toma de decisiones en base a esta variable es
muy comn de encontrar en diversas aplicaciones a nivel industrial es por este
motivo que nos vemos inclinados a desarrollar nuestro proyecto manejando la
temperatura de un sistema o ambiente para que en base al valor que esta tenga
(la temperatura) excitemos el actuador que ser un motor (ventilador) de 220 v
ac controlndolo con un microcontrolador atmega8 para que se mantenga en
tres estados: estado normal, estado mnimo y estado crtico, y podremos
reconocer los estados mediante unos indicadores de color verde, amarillo y rojo
respectivamente. El estado crtico ser generado por un foco cuya potencia que
recibir ser dada por el circuito dimmer.
DETECTORES DE CRUCE POR CERO
Los detectores de cruce por cero se utilizan para detectar los tipos de seales, o
diferentes significados de seales. El detector de cruce por cero es parte del
circuito de deteccin 'por nivel' para determinar si se ha recibido un 'uno' o un
'cero'.
EJEMPLO DE USO
El uso ms comn de un detector de cruce de cero es para gobernar la
aplicacin de corriente alterna a una carga, por ejemplo para disminuir la
intensidad de una bombilla (dimmer): la corriente alterna es una onda senoidal
que va circulando en un sentido y en otro a razn de 60 cps, entonces cada
medio perodo pasa por cero, es decir su intensidad es cero.
En circuitos de corriente alterna para disminuir la potencia de la carga, se
detecta el cruce de cero, se toma una pausa y se dispara un TRIAC; durante la
pausa, la carga permanece apagada, al disparar el TRIAC la carga se enciende
y permanece encendida hasta que el voltaje pasa por cero apagando
automticamente al TRIAC.

MATERIALES Y EQUIPOS

Transformador 220-12V AC
Foco 220v
Pgina 1 de 20

Pantalla LCD
Leds
LM35
Atmega8
Ventilador (motor)
TRIAC Q4010L5
Resistencias
Condensadores

CIRCUITOS A IMPLEMENTAR
Partes del proyecto:
Dimmer: esta seccin de circuitera la usaremos para el manejo de la intensidad
de luz del foco y por ende lo emplearemos para el aumento de temperatura de
nuestro sistema y as poder simular los eventos de estado normal o estado
crtico. Usaremos los componentes del circuito dimmer para esta parte.
Control y adquisicin de datos: ac nos apoyaremos del sensor de
temperatura LM35 para sensar la temperatura del sistema, luego estos datos
sern transferidos al Atmega8 en el cual desarrollaremos un algoritmo para el
control de la velocidad del motor el cual tendr dos tipos de velocidades
dependiendo del estado del sistema, es decir: de su temperatura.
Actuador: en esta parte usaremos un motor de 220v ac a manera de cooler
para enfriar el sistema si se encuentra en estado crtico y luego mantenerlo en
estado normal.
Indicadores: Estos sern luces de color rojo, amarillo o verde dependiendo del
estado del sistema, el encendido de estas luces ser manejado tambin por el
Atmega8 al igual que el motor para as tener idea de cmo est el sistema.
La programacin en Atmega8: La idea inicial en cuanto a la programacin en
lenguaje c fue la siguiente:

Pgina 2 de 20

Grfica N 1. IDEA INICIAL DEL DIAGRAMA DE FLUJO.


1. CIRCUITO DE CRUCE POR CERO

Compuesto por un transformador de corriente alterna 220v- 12v. Un puente de


diodos que rectificar la onda sinusoidal y obtendremos una onda rectificada
completa. Los diodos 1N4733A no dejarn que se pierda la salida de
aproximadamente 5 v.

Pgina 3 de 20

R8(2)

CIRCUITO DE CRUCE POR CERO


R8
10k

220V Alterna

Osciloscopio pin 1

Osciloscopio pin 4

R9
TR1

D3

D4

1N4007

1N4007

Pulso de Cruse por Cero


10k

220V Alterna

+88.8

+88.8

AC Volts

AC Volts

D5

R5

R7

10k

10k

D6

R6

C1
TRAN-2P2S

1N4007

BC548

D8
1N4733A

D7

10k

15nF

1N4007

Q1

1N4733A

Grfica N 2. Circuito rectificador de onda completa y de cruce por cero.


2. CIRCUITO DE CONTROL
CIRCUITO DE CONTROL
U3(+VS)

U3

58.0
VOUT

LM35

+88.8
Volts

U1
14
15
16
17
18
19
9
10

Pulso Control Ventilador

PB0/ICP1
PB1/OC1A
PB2/SS/OC1B
PB3/MOSI/OC2
PB4/MISO
PB5/SCK
PB6/TOSC1/XTAL1
PB7/TOSC2/XTAL2

PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

U1(AREF)

D12
LED-RED

21
20

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET

AREF
AVCC

23
24
25
26
27
28
1

RS (LCD)
RW (LCD)
E (LCD)
CV1
CV2

2
3
4
5
6
11
12
13

Pulso de Cruse por Cero


D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

ATMEGA8
LM016L
CV2

LED-GREEN

LCD2
CV1

D11

D10

R4

330

330

7
8
9
10
11
12
13
14

Velocidad Master
D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

R3

330

RS (LCD)
RW (LCD)
E (LCD)

R2

4
5
6

1
2
3

0
0

D0
D1
D2
D3
D4
D5
D6
D7

RS
RW
E

VSS
VDD
VEE

LED-YELLOW

Grfica N 3. Circuito de control con Atmega8.


Pgina 4 de 20

CIRCUITO DE POTENCIA
3. CIRCUITO DE POTENCIA
220V Alterna
Osciloscopio pin 2
1

Pulso Control Ventilador

U5

R8

R9

360

470

R14

C4

MOC3021

39

0.05uF

U6
Q4010L5

C5
0.01uF
Osciloscopio pin 3

L2
220V

Grfica N 4. Circuito de potencia.


4. CIRCUITO DE POTENCIA DEL DIMMER
L1

220v

R1
1k

22%

RV1

D1

470k

U1

R2

TRIAC

10k
DIAC

C1

C2

47nF

100nf

Grfica N 5. Circuito del dimmer.

Pgina 5 de 20

CIRCUITO COMPLETO

Pgina 6 de 20

Pulso Control Ventilador

U5

MOC3021

AC Volts

AC Volts

1N4007

D2

1N4007

D1

1N4007

D13

1N4007

D9

360

R8

0.05uF

C4

470

R9

CIRCUITO DE POTENCIA

+88.8

TRAN-2P2S

TR2

+88.8

Osciloscopio pin 2

220V Alterna

220V Alterna

C1

Q4010L5

R14

220V

L2

0.01uF

C5

39

A
B
C
D

Osciloscopio pin 2
Osciloscopio pin 3
Osciloscopio pin 4

1N4733A

D14

Osciloscopio pin 1

10k

Osciloscopio pin 3

220V Alterna

15nF

10k

10k

R10

R11

R1

U6

Osciloscopio pin 1

CIRCUITO DE CRUCE POR CERO

1N4733A

BC548

R3
330

R2
330

LED-YELLOW

D10

330

R4

LED-GREEN

D11

LED-RED

D12

LM016L

21
20

14
15
16
17
18
19
9
10

ATMEGA8

AREF
AVCC

PB0/ICP1
PB1/OC1A
PB2/SS/OC1B
PB3/MOSI/OC2
PB4/MISO
PB5/SCK
PB6/TOSC1/XTAL1
PB7/TOSC2/XTAL2

U1

U3(+VS)

LM35

U3

PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET

VOUT

58.0

CIRCUITO DE CONTROL

LCD2

U1(AREF)

Pulso de Cruse por Cero

Osciloscopio pin 4

Pulso Control Ventilador

D15

Q1

10k

R12

10k

R13

VSS
VDD
VEE
1
2
3

D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

Pulso de Cruse por Cero

RS (LCD)
RW (LCD)
E (LCD)
CV1
CV2

Velocidad Master

2
3
4
5
6
11
12
13

23
24
25
26
27
28
1

Volts

+88.8

CV2

R13(2)

RS
RW
E
4
5
6
RS (LCD)
RW (LCD)
E (LCD)

D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

CV1

0
0

Pgina 7 de 20

SIMULACIONES

CIRCUITO DE CONTROL

PROTEUS

U3(+VS)

U3

58.0
VOUT

LM35

+0.58
Volts

U1
14
15
16
17
18
19
9
10

Pulso Control Ventilador

PB0/ICP1
PB1/OC1A
PB2/SS/OC1B
PB3/MOSI/OC2
PB4/MISO
PB5/SCK
PB6/TOSC1/XTAL1
PB7/TOSC2/XTAL2

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

U1(AREF)

D12
LED-RED

21
20

AREF
AVCC

23
24
25
26
27
28
1

RS (LCD)
RW (LCD)
E (LCD)
CV1
CV2

2
3
4
5
6
11
12
13

Pulso de Cruse por Cero


D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

ATMEGA8

D11

LCD2

LED-GREEN

CV1

CV2

LM016L

D10

R4

330

330

7
8
9
10
11
12
13
14

Velocidad Master
D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

R3

330

RS (LCD)
RW (LCD)
E (LCD)

R2

4
5
6

1
2
3

0
0

D0
D1
D2
D3
D4
D5
D6
D7

RS
RW
E

VSS
VDD
VEE

LED-YELLOW

CIRCUITO
GrficaDENCONTROL
7.
U3(+VS)

U3

58.0

VOUT

LM35

+0.58
Volts

U1
14
15
16
17
18
19
9
10

Pulso Control Ventilador

PB0/ICP1
PB1/OC1A
PB2/SS/OC1B
PB3/MOSI/OC2
PB4/MISO
PB5/SCK
PB6/TOSC1/XTAL1
PB7/TOSC2/XTAL2

PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/T0/XCK
PD5/T1
PD6/AIN0
PD7/AIN1

U1(AREF)

D12
LED-RED

21
20

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL
PC6/RESET

AREF
AVCC

23
24
25
26
27
28
1

RS (LCD)
RW (LCD)
E (LCD)
CV1
CV2

2
3
4
5
6
11
12
13

Pulso de Cruse por Cero


D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

ATMEGA8

LCD2
LM016L

CV2

LED-GREEN

CV1

D11

D10

R4

330

330

7
8
9
10
11
12
13
14

Velocidad Master
D4 (LCD)
D3 (LCD)
D2 (LCD)
D1 (LCD)

R3

330

RS (LCD)
RW (LCD)
E (LCD)

R2

4
5
6

1
2
3

1
1

D0
D1
D2
D3
D4
D5
D6
D7

RS
RW
E

VSS
VDD
VEE

LED-YELLOW

Grfica N 8.

MULTISIM
Pgina 8 de 20

Grfica N 6. Circuito del dimmer en Multisim.

Grfica N 7. Circuito completo en Multisim.

PROGRAMACION EN C
Pgina 9 de 20

La programacin fue desarrollada en lenguaje C en Atmega8, y usamos las libreras:


avr_compiler.h, lcd.h y lcd.c para poder ejecutar el programa. El primer paso fue
desarrollar el diagrama de flujo para luego hacer la programacin.
PROGRAMACIN
#include <avr/io.h>
#include <util/delay.h>
#include "avr_compiler.h"
#include "lcd.h"
char buffer[300]; //variable buffer
int Velocidad=1; //Ventidador inicia apagado
int main(void)
{
config_adc();
config_puertos();
ADCSRA=ADCSRA|(1<<ADEN); //ACTIVA ADC
uint16_t V_ADC;
int T;
//Rangos de Temperatura
int temp_b = 60;
int temp_a = 30;
lcd_init(); //Llamamos e iniciamos escritura del lcd
lcd_clear(); //Reseteamos pantalla del lcd
config_interrupcion();
sei(); // habilita interrupcion
while(1)
{
//Iniciamos la conversion
ADCSRA=ADCSRA|(1<<ADSC);
while ((ADCSRA&(1<<ADIF))==(0<<ADIF)){} //Espera hasta que
termine de efectuarse la conversion
//Obtener resultado de 10 bits
V_ADC=ADCL+(256*ADCH);
//Pasar el Resultado a Temperatura
T=V_ADC*230/471;
//Imprimimos en el LCD
sprintf(buffer,"TEMPERATURA %d C ",T);
lcd_gotorc(1,1);
lcd_puts(buffer);
sprintf(buffer,"POTENCIA I. UNAC ");
lcd_gotorc(2,1);
lcd_puts(buffer);
//Encender Leds
if ((PINC&0b00110000)!=0b00000000){
// Si los controles
master estan habilitados
Velocidad=1;
Iniciamos apagado el ventilador
if ((PINC&0b00110000)==0b00010000){
Velocidad=1;
Apagamos el ventilador
}else if ((PINC&0b00110000)==0b00100000){
Velocidad=2;
Ventilador velocidad minima

Pgina 10 de 20

//
//
//

}else if ((PINC&0b00110000)==0b00110000){
Velocidad=3;
//
Ventilador velocidad maxima
}
}else if (T>=45){
//
Si Controles Master en OFF y T>60 entonces..
Velocidad=3;
//
Ventilador velocidad maxima
PORTB=(PORTB|0b10000000)&0b10000000;
}else if((45>T)&&(T>=40)){
//
Si Controles Master en OFF y 60>T>30 entonces..
Velocidad=2;
//
Ventilador velocidad minima
PORTB=(PORTB|0b01000000)&0b01000000;
}else{
// Si Controles Master en OFF y 30>T entonces..
Velocidad=1;
//
Apagamos el ventilador
PORTB=(PORTB|0b00100000)&0b00100000;
}
}
}
void config_adc(void)
{
ADMUX=0b00000000; //AREF referencia//ajuste a la derecha//Canal ADC0
seleccionado
ADCSRA=0b10000010; //ADC Habilitado//Conversion Unica//Prescalador 4
}
void config_puertos(void)
{
DDRB= 0b11101000;
DDRC=
0b11001110;
DDRD=
0b11110000;
PORTB&= 0b00010111; // Inicializa las Salidas en Cero
PORTC&= 0b00110001;
PORTD&= 0b00001111;
}
ISR(INT0_vect)
{ switch(Velocidad)
{
case 1: PORTB=(PORTB&0b11110111); break;
case 2: PORTB=(PORTB&0b11110111); _delay_us(5500);
PORTB=(PORTB|0b00001000); _delay_us(500); PORTB=(PORTB&0b11110111);
break;
case 3: PORTB=(PORTB&0b11110111); _delay_us(4167);
PORTB=(PORTB|0b00001000); _delay_us(500); PORTB=(PORTB&0b11110111);
break;
}
}
void config_interrupcion(void)
{
MCUCR=(1<<ISC01)|(0<<ISC00);
GICR=(1<<INT0); //activamos interrupcion externa en el pin INT0
}

El diagrama de flujo es el siguiente:

DIAGRAMA DE FLUJO
Pgina 11 de 20

IMPLEMENTACION
Pgina 12 de 20

Grfica N 7. Prueba durante el armado.

Grfica N 8. Prueba durante el armado.

Pgina 13 de 20

Grfica N 9. Prueba durante el armado.

Grfica N 10. Prueba durante el armado.

Pgina 14 de 20

CIRCUITOS DE PLACA IMPRESA


Utilizamos el programa Eagle para hacer el circuito en placa. Primero armamos los
circuitos:

Pgina 15 de 20

Pgina 16 de 20

Grfica N 11. Diseo del circuito del dimmer.

Grfica N 11. Proceso de armado en Eagle.

Pgina 17 de 20

Grfica N 11. Proceso de armado en Eagle del circuito dimmer.

Grfica N 11. Placa impresa de Eagle del circuito dimmer.

Grfica N 12. Placa impresa de Eagle del circuito completo.

Pgina 18 de 20

CONCLUSIONES

Como se puedo apreciar, la planificacin inicial para este proyecto sera


controlar la temperatura de la planta a 100 C, pero al verificar las
especificaciones del sensor de temperatura LM35DZ tuvimos que variar el
rango de 5 C a 100.
Para la parte de la iluminacin es importante que se respalde en la
circuitera de intensidad de Luz (Ligth Dimmer) para as una mejor
visualizacin del comportamiento de la seal de salida.
En la parte del circuito de cruce por cero lo utilizamos para detectar los
tipos de seales ya que sensa cuando hay cambio de polaridad, en este
caso su parte positiva (uno lgico), cuando la onda pasa por el cero.
Utilizamos los diodos zener para q el circuito mantenga la salida de 5v
que ira conectado al uC Atmega8.
En la programacin, dispusimos de libreras lcd.c y lcd.h y avr.h para
manejar el LCD donde mostramos los resultados de la temperatura.
El Triac al ser accionado, debera iniciar en bajo, el tiempo de reduccin
de la onda no debe exceder a los 0.0083 seg equivalentes a los 120 Hz
de la onda rectificada completa.

BIBLIOGRAFIA
Electrnica de potencia, VALPARAISO UNIVERSITY, DANIEL W. HART.
Electrnica de potencia, RASHID.
https://es.scribd.com/doc/232735097/Circuito-Detector-de-Cruce-Por-Cero

Pgina 19 de 20

También podría gustarte