Está en la página 1de 5

IMPLEMENTAR EL ESQUEMA DE CONTROL Y PROGRAMAR EL CONTROL DE VELOCIDAD EN LAZO ABIERTO.

La figura muestra un circuito que tiene un rango de 256 opciones de velocidad para un motor DC de 12 voltios. En este caso, la velocidad se selecciona al escribir un byte en D0 a D7. El convertidor anlogo-digital U3 traduce el byte a un voltaje anlogo. Los amplificadores operacionales U4A y U4B amplifican el voltaje y crean una salida con amplitud de pulso modulada (PWM) cuyo ciclo de funcionamiento vara proporcionalmente con el voltaje anlogo. El PWM controla un transistor que hace girar el motor. Todos los componentes son alimentados con una fuente de 12 voltios, a excepcin de U2 que requiere slo de 5 voltios. El CI U3 es utilizado en su configuracin de conmutacin de voltaje, en el cual la salida en Vref vara de 0 voltios a 255/256, que se obtiene con un diodo de referencia LM385-1.2 u otra referencia de voltaje estable. El potencial en el pin 8 de U3 vara de 0 a 1.2 voltios, en proporcin al dato que haya en los bits D10 hasta D17.

1. Implemente por separado cada unidad del circuito de la figura 2, de tal manera de verificar que cada una de ellas funcione correctamente.
R10
6k
+12v

11

U3:C
8

R4
100k

R5
4.7k

R6
+12v 10k +12v

+12v

10
4

LM324

U3:A
+12v
4

U3:B
4

U2
5 6 7 8 9 10 11 12 A1 A2 A3 A4 A5 A6 A7 A8 DAC0808 VREF+ VREFIOUT COMP VEE 14 15 4 16 3

R8
6k

+12v

3 1 2 5

R9
11

RV2
50k LM324

7 6
11

R7
1k

Q1
TIP42

6k

LM324
+88.8

R1

R2 R3
2k 100k

C2
0.1uF

10k

C1
0.1uF

-15v

RV1
100k

RV3
500k

RV4
81%

+5v 10k

+5v

U1
1 28 27 26 25 24 23 10 9 19 18 17 16 15 14 PC6/RESET PC5/ADC5/SCL PC4/ADC4/SDA PC3/ADC3 PC2/ADC2 PC1/ADC1 PC0/ADC0 PB7/XTAL2/TOSC2 PB6/XTAL1/TOSC1 PB5/SCK PB4/MISO PB3/MOSI/OC2 PB2/SS/OC1B PB1/OC1A PB0/ICP ATMEGA8 AREF AVCC 21 20

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

13 12 11 6 5 4 3 2

? ? ? ? ? ? ? ?

2. Interconectar cada unidad del circuito mostrado en la figura.

+5v

RV4
+5v
? ? ? ? ? ? ? ?
11%

U1
1 28 27 26 25 24 23 10 9 19 18 17 16 15 14 PC6/RESET PC5/ADC5/SCL PC4/ADC4/SDA PC3/ADC3 PC2/ADC2 PC1/ADC1 PC0/ADC0 PB7/XTAL2/TOSC2 PB6/XTAL1/TOSC1 PB5/SCK PB4/MISO PB3/MOSI/OC2 PB2/SS/OC1B PB1/OC1A PB0/ICP ATMEGA8
11

AREF AVCC

21 20

10k

+12v

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

13 12 11 6 5 4 3 2

R4
100k

R5
4.7k

R10
6k +12v

R6
10k +12v

+12v

U3:C
4

U3:A
3
4

U3:B
5 7 6
11

9 8 10
4

1 2
11

R7
1k

Q1
TIP42

RV2
50k LM324

LM324 +12v

LM324
+88.8

U2
5 6 7 8 9 10 11 12 A1 A2 A3 A4 A5 A6 A7 A8 DAC0808 VREF+ VREFIOUT COMP VEE 14 15 4 16 3

R8
6k

+12v

R1
10k

R2 R3
2k 100k

R9
6k

C1
0.1uF

RV1 C2
0.1uF 100k

RV3
500k

-15v

3. Edite un programa de control de velocidad mediante cdigos binarios. Ajuste adecuadamente el ciclo de trabajo, de tal manera que se visualice los cambios de velocidad. ;DIRECTIVAS EN ENSAMBLADOR .include "m8def.inc" ;ATmega8 ;reset-vector address $0000 .org $0000 rjmp main ;ve al main ;PROGRAMA PRINCIPAL main: ldi r16,$04 ;Configuracion de... out sph,r16 ldi r16,$5F out spl,r16 ;...la pila: Stack: $045F=RAMEND clr r16 ;r16 <- $00 out ddrc,r16 ;portC entrada ser r16 ;r16 <- $ff out ddrd,r16 ;portD salidas out ddrb,r16 ;portB salidas ldi r16,$40 ;r16 <- $40 out admux,r16 ;configuro ADC a canal0, ajuste a derecha y referencia en ;Vref con cap ldi r16,$85 ;r16 <- $85 out adcsra,r16 ;habilito ADC, interrupcion y free running desactivados, ;divisor 32 rcall delay200u ;retardo para inicializar el conversor A/D ;se necesita 25 cilos del clock ADC, el clock ADC esta puesto a ;4MHz/32=125kHz ;25 ciclos de 125Khz, es 200us que se debe esperar para la configuracin ;de ;todo el circuito ;interno del conversor A/D del micro loop: sbi adcsra,adsc ;se inicia conv A/D, seteando el bit adsc convertir: sbis adcsra,adsc ;pregunto por el bit de conversin terminada rjmp leer ;si termino la conv voy a leer la conversin rjmp convertir ;si no se sigue esperando hasta que termine leer: ;rutina de lectura de los datos convertidos in r16,adcl ;carga el valor de ADCL en r16 out portd,r16 ;muestra por el puertoD in r16,adch ;carga el valor de ADCH en r16 out portb,r16 ;muestra por el puertoB

rcall delay25m ;retardo para visualizar, puede no ser necesario rjmp loop ;bucle infinito ; ============================= ; delay loop generator ; 100000 cycles: ; ----------------------------; delaying 99990 cycles: delay25m: ldi R17, $A5 YY1: ldi R18, $C9 XX1: dec R18 brne XX1 dec R17 brne YY1 ; ----------------------------; delaying 9 cycles: ldi R17, $03 ZZ1: dec R17 brne ZZ1 ; ----------------------------; delaying 1 cycle: nop ret ; ============================= ; delay loop generator ; 800 cycles: ; ----------------------------; delaying 798 cycles: delay200u: ldi R17, $02 YY2: ldi R18, $84 XX2: dec R18 brne XX2 dec R17 brne YY2 ; ----------------------------; delaying 2 cycles: nop nop ret ; =============================

4. Ajuste la sensibilidad de la salida del PWM. Vemos la variacin del ancho de pulso de la seal que se produce al cambiar el valor de salida del potencimetro.

5. Realice sus comentarios sobre la implementacin y el funcionamiento del circuito de control de velocidad. En el circuito podremos visualizar a travs de los LEDs, el valor en binario tomado del ADC conectado a un potencimetro. El ADC se trabajara a manera de conversin simple y se tomaran solo 8 de los 10 bits, de los cuales se ajustaran para que la salida vaya de 0 a 63, que ser representada por los LEDs conectados al microcontrolador. La velocidad ser controlada por el potencimetro. Los transistores controlan la corriente del motor. El atmega se encarga de generar los pulsos para cambiar la velocidad del motor, al cambiar el valor del potencimetro de reduce o aumenta la velocidad del motor hasta apagarse en el punto del valor limite del potencimetro. En la prctica nos e llega a detener completamente el motor, por consideraciones de diseo y calibracin de los dispositivos.