Autor Tema: Problemas con circuito para control de cargas por PC  (Leído 5120 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cocibolca

  • PIC10
  • *
  • Mensajes: 15
Problemas con circuito para control de cargas por PC
« en: 13 de Enero de 2008, 22:37:15 »
Hola a todos amigos de TODOPIC, como indica el encabezado de este tema tengo un gran problema para hacer funcionar un circuito que tome prestado de la pagina web de PABLIN, para presentarlo como proyecto para una clase en particular a continuacion adjunto el esquema del circuito

                                                             



Este circuito accionara los reles mediante una orden enviada desde el puerto serial RS-232 de una PC, con ayuda de una interfaz grafica implementada en visual basic VB 6.0, la cuestion es que ya monte el circuito y logre realizar la interfaz grafica con la ayuda de unos colaboradores del foro de "Programacion en Visual Basic", pero al momento de enviar una orden por el puerto no se acciona ningun LED, NOTA: (Estoy utilizando leds en lugar de los reles) , he intentado de todo, no se si es la programacion del PIC o la interfaz grafica la que esta ocasionando el problema o en ultima instancia es la configuracion del propio circuito.

Estoy desesperado   :cry: , tengo que entregar los resultados dentro de poco y aun no lo he resuelto, estare muy agradecido si logran ayudarme en esta travesia electronica, cualquier sugerencia o correccion de su parte sera BIENVENIDA!!!  :)

A continuacion les adjunto el programa del PIC y de la interfaz grafica en Visual Basic:


Programa del PIC

--------------------------------------------------------------------------------------------------------------------------------------------------
LIST       p=16F84A
      processor    PIC16F84A
      #include    "P16F84A.INC"
      __CONFIG    _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
   
      ERRORLEVEL   -302


#DEFINE   rx   2      ; bit de recepcion de datos en serie


   CBLOCK   0x0C
      r0d      ; registro de proposito general
      r0e      ; registro de proposito general                             
      conta      ; registro de proposito general(contador)
      recep      ; buffer de entrada
   ENDC

       org    00h            ;vector de reset
       goto   inicio         ;salta al comienzo del programa
       org    05h            ;saltea el vector de interrupcion
     
start  movlw  .124           ;retardo para generar bit de arranque
       goto   startup
       
delay  movlw  .83            ;retardo para generar bit de datos

startup movwf  r0e
redo    nop                  ;pierde 12 microsegundos
        nop
        decfsz r0e,F          ;resta 1 al retardo
        goto   redo          ;si falta el tiempo itera

        retlw  0             ;si termino retorna limpiando w
       
recibir nop                  ;recibe un byte por RS232
        clrf   recep         ;limpia el buffer de recepcion
        btfss  PORTA,rx      ;mira el estado de la linea serie
        goto   $-1        ;si esta inactiva queda a la espera

        call   start         ;retardo para bit de arranque
rec     movlw  .8            ;carga cantidad de bits a recibir
        movwf  conta
rnext   bcf    STATUS,C      ;limpia el carry
        btfss  PORTA,rx      ;mira la linea de recepcion
        bsf    STATUS,C      ;si esta en alto sube el carry

        rrf    recep,W       ;rota el buffer de recepcion
        call   delay         ;retardo entre bits
        decfsz conta,F       ;resta 1 a la cantid. de bits a recibir
        goto   rnext         ;si faltan bits para recibir itera

        retlw  0             ;si termino sale y limpia w
       
inicio  bsf    STATUS,RP0    ;selecciona la pagina 1 de memoria 
        movlw  0ffh          ;programa el puerto "a" como entradas
        movwf  TRISA
        movlw  00h           ;programa el puerto "b" como salidas
        movwf  TRISB
        bcf    STATUS,RP0    ;selecciona la pagina 0 de memoria
        clrf   recep         ;limpia el buffer de recepcion
        clrf   PORTB         ;apaga todas las salidas
       
ciclo   call   recibir       ;queda a la espera de recibir datos
        movf   recep,w       ;carga en w el dato recibido
        movwf  PORTB          ;manda el dato a las salidas
        goto   ciclo         ;itera indefinidamente
       
        end     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------                             
 
INTERFAZ GRAFICA


Option Explicit

Dim Salida As Byte

Private Sub CmdGo_Click()

Dim i As Integer

Salida = 0

For i = Chk.LBound To Chk.UBound
    Salida = Salida + Chk(i).Value * 2 ^ i
Next

'Salida contiene el valor a enviar

MsgBox Salida
End Sub

Private Sub ENVIAR_Click()
 MSComm1.Output = Salida
End Sub

Private Sub conectar_Click()
  'comprueva que el puerto este cerrado para poder abrirlo
    If MSComm1.PortOpen = False Then
               'determina el puerto que  seleccionado
                    MSComm1.CommPort = 1
                    MSComm1.PortOpen = True
        Else
            MSComm1.CommPort = 2
        End If
        'determina: 9600-Velocidad en Baudios, N-No utiliza ninguna paridad,
        '8-Cantidad de bits de envio y recepcion por paquete,
        '1-Determina los bits de parada
        MSComm1.Settings = "9600,N,8,1"
        'lee todo el buffer de entrada para que quede vacio
        MSComm1.InputLen = 0
        'Abre el puerto seleccionado
        MSComm1.PortOpen = True
        Me.Caption = "Conectado por el puerto " & MSComm1.CommPort
    End Sub

Private Sub Desconectar_Click()
If MSComm1.PortOpen Then
        'cierra el puerto
        MSComm1.PortOpen = False
        Me.Caption = "Desconectado"
    End If
End Sub

Private Sub Form_Load()

Dim i As Integer

'Insertar números a los pulsadores

For i = Chk.LBound To Chk.UBound
    Chk(i).Caption = i
Next

End Sub

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Por ultimo les adjunto el programa en VB  

GRACIAS POR MOLESTARSE EN LEER MI GRAN INCONVENIENTE!!!!

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Problemas con circuito para control de cargas por PC
« Respuesta #1 en: 14 de Enero de 2008, 00:33:02 »
Como conectaste los leds??? :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado cocibolca

  • PIC10
  • *
  • Mensajes: 15
Re: Problemas con circuito para control de cargas por PC
« Respuesta #2 en: 14 de Enero de 2008, 00:42:07 »
Los leds los conecte de forma inversa a la que se muestra en el diagrama, ya que el anodo y el catodo no coincidian.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Problemas con circuito para control de cargas por PC
« Respuesta #3 en: 14 de Enero de 2008, 00:48:56 »
creo que el ULN no acepta la otra conexion, lee bien el datasheet.. :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1295
Re: Problemas con circuito para control de cargas por PC
« Respuesta #4 en: 14 de Enero de 2008, 14:10:35 »
Que tal cocibolca,

Si conectas los les en en forma invertida obviamente que los leds nunca encenderan, ya que los estarias polarizando en forma invertida (electronica basica, anodo a positivo, catodo a negativo). El diagrama que se muestra es correcto, asi qeu si tu cambias la posicion de los leds, estos nunca encenderan. Ahora bien me imagino que estas usando un arreglo de leds encapsulado, y estos tienen una conexcion interna de catodo comun, si es asi ese arrelo no te servira, necesatas usar uno con conexion de anodo comun, o bien utilizar leds de forma individual.

Saludos.

Elreypic.

Desconectado cocibolca

  • PIC10
  • *
  • Mensajes: 15
Re: Problemas con circuito para control de cargas por PC
« Respuesta #5 en: 14 de Enero de 2008, 17:15:12 »
Tienes toda la razon elreypic2, pero antes de montarlo tuve mucho cuidado para colocar los leds, para ello use el probador de diodos de un multimetro digital.  :mrgreen:

Me falto aclarar que estoy utilizando un transformador con TAP central de 2A, alimentado con 110V y un integrado que contiene el puente de diodos de 2A, para disminuir el espacio requerido.

Gracias por tu sugerencia!!!
« Última modificación: 14 de Enero de 2008, 17:36:12 por cocibolca »

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: Problemas con circuito para control de cargas por PC
« Respuesta #6 en: 14 de Enero de 2008, 21:02:38 »
Hola Cocibolca,

Yo recomendaría para descartar el problema con la conexión de los LEDs (que parece ser el problema) que verifiques primero esa etapa del circuito de manera independiente, si conectar el PIC le metes 5 voltios a las entradas del ULN y a la salida se deben encender los LEDs correspondientes a esas entradas.

Ten en cuenta (como ya te han dicho) que este ULN es un arreglo de transistores NPN, por lo tanto la conexión obligada es conectar el cátodo del LED a la salida del ULN y el ánodo al positivo de la fuente, obvianmente con su respectiva resistencia en serie, de ninguna otra forma va a funcionar.

Saludos,

Diego.
Pereira - Colombia

Desconectado cocibolca

  • PIC10
  • *
  • Mensajes: 15
Re: Problemas con circuito para control de cargas por PC
« Respuesta #7 en: 15 de Enero de 2008, 03:07:01 »
Gracias por molestarte en responder mis inquietudes dhmejia (Diego), tu sugerencia me parece muy util, intentare hacer esa prueba, mas luego publico los resultados. De esta forma descartaria el problema en el ULN2803 y los leds, y me enfocaria en la programacion del PIC o la interfaz grafica.

Saludos !!!

Desconectado cocibolca

  • PIC10
  • *
  • Mensajes: 15
Re: Problemas con circuito para control de cargas por PC
« Respuesta #8 en: 16 de Enero de 2008, 13:33:01 »
Hola a todos, ya realice la prueba unicamente con el ULN2803 y los leds, pero aun no se activan, las entradas del ULN2803 los polarice con 5V y no hubo resultados.

SALUDOS!!!

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7907
Re: Problemas con circuito para control de cargas por PC
« Respuesta #9 en: 16 de Enero de 2008, 15:21:43 »
Ya tienes la pista donde buscar el error... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: Problemas con circuito para control de cargas por PC
« Respuesta #10 en: 16 de Enero de 2008, 15:58:11 »
Puedes subir el diagrama de la conexión que estas haciendo, con fuente y todo.  No el Pablin, sino el que verdaderamente estas usando.

Saludos,

Diego
Pereira - Colombia