te gusta este proyecto

martes, 14 de diciembre de 2010

REPORTE DE LA PRACTICA 5

INSTITUTO TECNOLOGICO DE SAN LUIS POTOSI
Profesor: Carlos E. Canto Quintal M.I.
INTERFACES PARA AUTOMATIZACIÓN Y CONTROL

integrantes del equipo:

AGUILAR GAYTAN BRENDA ARACELI
CANO ESPINOZA CRISTOPHER
LOPEZ PALAU NELIDA ELIZABETH
MARTINEZ ESCOBAR JUAN FERNANDO


PRÁCTICA # 5

NOMBRE DEL EXPERIMENTO:
Medidor de temperatura con labview

OBJETIVO:
Comunicar el microcontrolador AVR ATmega8  a través de su USART, con una PC usando su puerto RS232, en forma full-duplex (en ambas direcciones). Además de visualizar las lecturas en labview.

MATERIAL Y EQUIPO UTILIZADO:

Hardware:
         1 CI MAX232 ( o equivalente)
         sistema con ATmega8 con display LCD
         Cable ISP paralelo
         PC con puerto paralelo
         fuente de poder regulada de 5 volts
         4 condensadores electrolíticos de 1mf a 16volts
         Cable serial (null modem) con conector DB-9 hembra.

Software:
         AVRstudio4
         PonyProg
         Hyperterminal (utilería de comunicaciones de windows) o algún  otro programa de comunicación serial
Labview 7.1
       

DESARROLLO DE LA PRÁCTICA:

Implementar el Hardware y el  programa necesarios  que  nos  permita comunicar el ATmega8  ( usando su  USART) , con una  PC a través de su  puerto RS-232 .





Se usa la configuración tanto para TX (transmisor) como para  RX (receptor):
            bit7 = 1; ya que este Registro y UBRRH comparten espacio – poner a 1 para accesar UCSRC.
bit6 = 0; asíncrono
bit5 y bit4 = 11; paridad impar
bit3=0; 1 stop bit
bit2 y bit1=11; datos de 8-bits
bit0=0;  bit de polaridad del reloj=0

realizar un arreglo para poder visualizar las lecturas en labview




PROGRAMA IMPLEMENTADO PARA EL DESARROLLO DE LA PRACTICA
  .include "m8def.inc"
              .include "dim.inc"
              .include "bcd.inc"
              .include "serial.inc"
             

              .def num2=r19
              .def var6=r21
              .def var3=r22
              .def temp=r23
             
              rjmp reset
reset:
       
       ldi temp,high(ramend)
               out sph,temp
               ldi temp,low(ramend)
               out spl,temp                   ;inicializa el stack

       ldi temp,255
               out ddrb,temp
       out ddrd,temp

             

               cbi ddrc,0
               cbi ddrc,1
               sbi ddrc,2
               sbi ddrc,3
               sbi ddrc,4
               sbi ddrc,5
                 
     rcall serial
               rcall conf
               rcall nii
               rcall n_
               rcall nt
               rcall ne
               rcall nm
               rcall np
               rcall n_
               rcall n_
               rcall n_
               rcall n_
               rcall n_
               rcall n_
               rcall n_
               rcall nl
               rcall nu
               rcall nz

jk:           rcall n__
       rcall n_
               rcall n_
           



              ldi temp,0xe0  ;  1110..0000
              out admux,temp
              ldi temp,0xc7    ;1100..0111
      out adcsra,temp

ll:   sbis adcsra,4
              rjmp ll

     
              in adc2,adch
      ldi temp,5
      sub adc2,temp
             
              mov temp,adc2        //imprimir lcd
              rcall imprime

  
     mov res,temp
             rcall tra      ///imprimir serial

              sbi adcsra,4
              sbi adcsra,6
             

 ////////////////////////////////////////////////
    
               rcall n_
               rcall n_
               rcall n_
               rcall n_
               rcall n_
               rcall n_
               rcall n_
             
              ldi temp,0xe1  ;  1110..0000
              out admux,temp
              ldi temp,0xc7    ;1100..0111
      out adcsra,temp
l7:   sbis adcsra,4
              rjmp l7
      in adc2,adch  
              sbi adcsra,4
              sbi adcsra,6
//////////////////////////////////////////////////
    
             
             
              mov temp,adc2       
              rcall imprime       ///imprime lcd

  
      mov res,temp
              rcall tra      ///imprimir serial
             
              rcall ni_
      rcall delay
      rcall delay
              rjmp jk







A CONTINUACION SE MUESTRA EL DIAGRAMA DE BLOQUES DE LABVIEW


La conexion del LM35 es la siguiente:


CONCLUSION


MEDIANTE LA PRACTICA SE OBTUVO EL CONOCIMIENTO DE CÓMO USAR CORRECTAMENTE LAS APLICACIONES EN LABVIEW ORIENTADAS HACIA LA COMUNICACIÓN SERIAL  PARA LA VISUALIZACION DE LAS VARIABLES.




REPORTE DE LA PRACTICA 3

INSTITUTO TECNOLOGICO DE SAN LUIS POTOSI

Departamento de Eléctrica-Electrónica-Mecatrónica


Profesor: Carlos E. Canto Quintal M.I.
INTERFACES PARA AUTOMATIZACION Y CONTROL
 

Reporte de Practica #3

CONTROL DE MOTORES DE CD.

integrantes del equipo:

 López Palau Nelida Elizabeth
Aguilar Gaitán Brenda Araceli
Cano Espinoza Cristopher
Martinez Escobar Juan Fernando


Planteamiento del problema:
Realizar el control de la dirección del movimiento y la velocidad de un carrito por medio del control del movimiento de 2 motores de corriente continua.

Marco teórico:
Definición:
El motoreléctrico permite la transformación de energía eléctrica en energía mecánica, esto se logra mediante la rotación de un campo magnético alrededor de una espira o bobinado que toma diferentes formas.

Al pasar la corriente eléctrica por la bobina ésta se comporta como un imán cuyos polos se rechazan o atraen con el imán que se encuentra en la parte inferior; al dar media vuelta el paso de corriente se interrumpe y la bobina deja de comportarse como imán pero por inercia se sigue moviendo hasta que da otra media vuelta y la corriente pasa nuevamente repitiéndose el ciclo haciendo que el motor rote constantemente.

Los Motores de Corriente Directa (CD) o Corriente Continua (CC) se utilizan en casos en los que es importante el poder regular continuamente la velocidad del motor, además, se utilizan en aquellos casos en los que es imprescindible utilizar corriente directa, como es el caso de motores accionados por pilas o baterías.

Como su nombre lo indica, un motor eléctrico de corriente continua, funciona con corriente continua. En estos motores, el inductor es el estator y el inducido es el rotor. Fueron los primeros en utilizarse en vehículos eléctricos por sus buenas características en tracción y por la simplicidad de los sistemas de control de la electricidad desde las baterías.

Control del giro:
En este caso se utilizo lo que comúnmente es llamado como un Puente H consiste en  un circuito electrónico que permite a un motor eléctrico CD girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robótica y como convertidores de potencia.

Un puente H se construye con 4 interruptores (mecánicos o mediante transistores). Cuando los interruptores Q1 y Q4 (ver primera figura) están cerrados (y Q2 y Q3 abiertos) se aplica una tensión positiva en el motor, haciéndolo girar en un sentido. Abriendo los interruptores Q1 y Q4 (y cerrando Q2 y Q3), el voltaje se invierte, permitiendo el giro en sentido inverso del motor.


Con la nomenclatura que estamos usando, los interruptores Q1 y Q2 nunca podrán estar cerrados al mismo tiempo, porque esto cortocircuitaría la fuente de tensión. Lo mismo sucede con Q3 y Q4.


 En el caso de esta práctica se está utilizando el integrado L293D el cual se describe a continuación:

El integrado L293D es un paquete de cuatro puentes H. Este integrado provee corrientes bidireccionales desde 4.5 V hasta 36, con una corriente de 600mA máxima. Estos drivers tienen eneables en pares. El L293D posee diodos para evitar la corriente inductiva de retorno.
Una terminal Vcc1 es separada de otra terminal Vcc2 para minimizar la disipación del voltaje.

El patillaje se incluye en la siguiente figura:


Control de la velocidad:
La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica, ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.

La construcción típica de un circuito PWM se lleva a cabo mediante un comparador con dos entradas y una salida. Una de las entradas se conecta a un oscilador de onda dientes de sierra, mientras que la otra queda disponible para la señal moduladora. En la salida la frecuencia es generalmente igual a la de la señal dientes de sierra, y el ciclo de trabajo está en función de la portadora.
En la actualidad existen muchos circuitos integrados en los que se implementa la modulación PWM, además de otros muy particulares para lograr circuitos funcionales que puedan controlar fuentes conmutadas, controles de motores, controles de elementos termoeléctricos, choppers para sensores en ambientes ruidosos y algunas otras aplicaciones.

En este caso la modulación por ancho de pulso se utilizo para controlar el motor de CD o mejor dicho para regular la velocidad de giro. Mantiene el par motor constante y no supone un desaprovechamiento de la energía eléctrica.
Para regular la velocidad modifican la tensión eléctrica, con lo que disminuye el par motor, como puede observarse en la siguiente figura; o interponen una resistencia eléctrica, con lo que se pierde energía en forma de calor en esta resistencia.

Diseño del circuito:
Para la siguiente práctica programamos el microcontrolador PIC 16f877 para que nos diera la señal PWM del motor, así mismo nos diera las salidas lógicas que controlarían el giro de cada uno de los 2 motores de CD. Las conexiones basadas en el patillaje del puente H, quedaron de la siguiente manera:



programa del pic :


CONTADOR_UNO EQU 0X29
CONTADOR_DOS EQU 0X2A
org 0x00
goto inicio
org 0x05
inicio: bsf   status,rp0;cambio de banco
movlw 0xff
movwf trisd
movlw 0x0cf;para pr2 es 0c2
movwf pr2
bcf status,rp0
movlw 0X30;banco uno el pre divisor es un uno el rango de pos divisor es tres
movwf t2con
movlw 0x90;es un 70
movwf ccpr1l
movlw 0x0f
movwf ccp1con;para forma pwm
bsf status,rp0
bcf trisc,0x02
movlw 0x07
movwf option_reg
bcf status,rp0
movlw 0x9e
movwf tmr0
bsf t2con,0x02
bcf status,rp0
bsf   status,rp0
movlw 0x00
movwf trisb
bcf   status, rp0


checa: btfss portd,0x00
goto fer
goto mas
fer: btfss portd,0x01
goto load
goto menos
load: btfss portd,0x02
goto izq
bcf portb,0x00
bsf portb,0x01
bsf portb,0x02
bcf portb,0x03
goto checa
izq: btfss portd,0x03
goto der
bcf portb,0x00
bsf portb,0x01
bcf portb,0x02
bsf portb,0x03
goto checa
der: btfss portd,0x04
goto atras
bsf portb,0x00
bcf portb,0x01
bsf portb,0x02
bcf portb,0x03
goto checa
atras: btfss portd,0x05
goto stop
bsf portb,0x00
bcf portb,0x01
bcf portb,0x02
bsf portb,0x03
goto checa
stop: btfss portd,0x06
goto checa
bcf portb,0x00
bcf portb,0x01
bcf portb,0x02
bcf portb,0x03
goto checa
 
end
mas: bcf status,rp0
     movlw 0x0ff
     xorwf ccpr1l,w
     btfss status,z
       goto fer1
fer1:   incf ccpr1l,F
call retardo
goto checa
 

menos:  bcf status,rp0
movlw 0x00
xorwf ccpr1l,w
btfss status,z
goto fer2

fer2: decf ccpr1l,f
call retardo
goto checa





RETARDO:    MOVLW   0X00
          MOVWF   CONTADOR_UNO
OTRO:        DECFSZ  CONTADOR_UNO,F
             GOTO    OTRO
            RETURN


        org 0x5f
limpia: bcf status, rp0
bcf portd,0x07
bcf portd, 0x06
movlw 0x70
movwf ccpr1l
goto checa
return