Autor Tema: necesito programar un 16f628 !!ayuda!! con lo siguiente:  (Leído 27330 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #75 en: 22 de Febrero de 2007, 09:13:44 »
 Saludos a todos.

 Por fin he puesto el Proteus en mi PC y he probado de simular el código del motor paso a paso
que en días pasados discutimos en este hilo. El caso es que me ha costado un poco la susodicha,
pero por fin parece que funciona.

 Y digo que parece porque sólo gira 3/4 del total, creo que es debido a los datos  de la tabla, la cual
consta de 8 pasos, cuando el motor tiene 24 pasos, eso, si no  recuerdo mal. Por lo tanto he recompuesto
la tabla del siguiente modo:
Código: [Seleccionar]
  TABLA1: ADDWF PCL,1   ;
   RETLW   B'00000001'   ;1
   RETLW   B'00000010'   ;2
   RETLW   B'00000011'   ;3
   RETLW   B'00000100'   ;4
   RETLW   B'00000101'   ;5
   RETLW   B'00000110'   ;6
   RETLW   B'00000111'   ;7
   RETLW   B'00001000'   ;8
   RETLW   B'00001001'   ;9
   RETLW   B'00001010'   ;10
   RETLW   B'00001011'   ;11
   RETLW   B'00001100'   ;12
   RETLW   B'00001101'   ;13
   RETLW   B'00001110'   ;14
   RETLW   B'00001111'   ;15

 Supongo que no habrá problemas con aplicar tensión a los cuatro pines RA0-RA3 del PIC, lo digo, por
si hay excesivo consumo.

 Por otra parte, en la simulación, me presenta cierto problema, ya que, si conecto las 4 salidas al motor, no
gira, en cambio si 'suelto' una el motor gira, aunque siempre 3/4.

 Pueden darme alguna idea para solventar el problema. Es necesaria una tabla para que funcione el motor.

 Gracias una vez más por los comentarios.

 Saludos de Vicente.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #76 en: 03 de Marzo de 2007, 18:17:55 »
 Saludos a todos,

  Mientras espero una respuesta a mi anterior consulta y para no bajar la guardia, me propuse
hacer un ejercicio de un temporizador de 1 s y para poder controlar su eficacia, cada vez que
pasa el tiempo previsto, envía un cambio al puerto B, donde hay un LED en RB0 y otro en RB1
de esta forma se conmuta su estado.

 He usado una rutina de tiempos y la subrutina del encendido por cambio de estado en las líneas
del puerto B.

Código: [Seleccionar]
; Fecha: 03 Mar 2007 18:01:29 GMT
; Que hace => Enciende un LED en RB0 y otro en RB1 con pausas de 1 segundo
; Delay = 1 segundo : Clock frequency = 4 MHz
;
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;--------------- Encabezado -------------

LIST P=16F628, ; usar PIC 16F648A
include <p16f628.inc>

;************ PALABRA DE CONFIGURACION ******************************************
 __CONFIG    _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _LVP_OFF & _INTRC_OSC_NOCLKOUT

; Code protection OFF
; Data code protection OFF
; Low voltage programming, RB4 I/O OFF
; Brown-out reset ON
; MCLR desctivado, RA5 I/O OFF
; Watchdog timer OFF
; Power-up timer ON
; OSC es Int 4MHz,RA6 y RA7 son I/O

errorlevel      -302, 306 ; Eliminate bank warning

d1 equ 0x20 ; siempre se necesitan un par
d2 equ 0x21 ; de registros auxiliares
d3 equ 0x22

; Actual delay = 1 seconds = 1000000 cycles
; Error = 0 %
ORG 0x00

;*********************************************************************************

MOVLW b'00000111' ; comparadores desactivados,
MOVWF CMCON       ; I/O digitales.
BSF STATUS,5 ; activa la pagina 1
CLRF TRISA
CLRF TRISB   ; puerto a y b todos salidaS
BCF STATUS,5 ; volvemos a la pagina 0

CLRF PORTB ; ponemos a 0 portb
INICIO:
MOVLW .170 ; b10101010
MOVWF PORTB
CALL pausa
BCF STATUS,C ; Asegura que en la primer rotacion ingrese un 0 en PORTB,7
COMF PORTB,1
CALL pausa
GOTO $-2    ; va a inicio


pausa: MOVLW 0x07 ; Retardo
MOVWF d1 ;2Ah
MOVWF 0x2F
MOVWF d2
MOVWF 0x03
MOVWF d3

pausa1:
        DECFSZ   d1,1 ; Lazo interior
GOTO pausa1
DECFSZ   d2,1
GOTO pausa1
DECFSZ   d3,1
GOTO pausa1
RETURN
 
        END

 Lo expongo en este lugar por tratarse de un ejercicio que funciona y como está en ensamblador que mejor lugar.

 En cuanto al control de motor paso a paso, estoy  pensando de empezar con otro planteamiento
por lo visto, ??, está muerto el tema.

 Saludos a todos de Vicente.  :)

 
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #77 en: 26 de Marzo de 2007, 09:17:51 »
 Hola! De nuevo por aquí.

 Al fin he podido hacer que me funcione el código del control para el motor pap, aprovechando parte del código que tan
amablemente me paso el amigo Astaroth en [respuesta 53] ya que he añadido una pausa para control de la velocidad.
Este es el código usado:
Código: [Seleccionar]
;--------------- Encabezado -------------
TITLE "pap01.asm" ; MPLAB solo admite nombres de 9 letras
SUBTITLE "Revision Nº 2"


LIST   P=16F628       
                #include <p16f628.inc>

;************ PALABRA DE CONFIGURACION ******************************************
 __CONFIG    _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _LVP_OFF & _INTRC_OSC_NOCLKOUT


   ERRORLEVEL      -302      ; Elimina banco atencion (warning)

;   Declarar  equs

acum   equ        0x20        ; se declaran acum
stat   equ        0x21        ; y stat para interrpciones
reg1   equ        0x22        ; siempre se necesitan unos
reg2   equ        0x23        ; de registros auxiliares
CONTA1 equ        0x24        ; contador de pasos
PULSO  equ        0X2A      ;
D0     equ 0x25 ; siempre se necesitan un par
D1     equ 0x26 ; de registros auxiliares
d2     equ 0x27
d3     equ       0x28

#DEFINE   BANCO0   BCF   STATUS,5   ; RP0 = 0
#DEFINE   BANCO1   BSF   STATUS,5   ; RP0 = 1


;*********************************************************************************

        ORG        0x00
        GOTO      ini
;        ORG        0x04   ;viene cuando hay una interrupcion
;        GOTO      rsi       ;salta a la rutina de rsi que atiende la interrupcion
        ORG        0X05   

ini:
        BANCO1                              ; selecciona banco1
        MOVLW    b'00001111'
        MOVWF   TRISA                 ; PORTA todo SALIDAS
        MOVLW    b'11110000'      ; RB0,1,2,5=ENTRADAS RB7=SALIDA
        MOVWF   TRISB                 ; pon PORTB
        MOVLW    b'10000000'      ; RBPU=1 (Pull up) no se usa, flanco desc.
        MOVWF   OPTION_REG   ; pon a 1 OPTION_REG
        BANCO0                              ; volvemos a la pagina 0
        ;   Establecer estado comparadores
        MOVLW    b'00000111'      ; comparadores desactivados,
        MOVWF    CMCON             ; I/O digitales.

        CLRF        PORTB          ; ponemos a 0 portb
        MOVLW    .8                ; cargamos el contador
        MOVWF    CONTA1              ;


START:   
              CALL        scaner      ;verifico pulsos de entrada
              MOVWF   PORTB      ;AQUI SE ENTREGA EL VALOR DE LA TABLA AL PUERTO B
                                  ; [Llamada a retardo para consolidar las salidas]
              CALL     pausa
              GOTO     START

;   Escanea las entradas o pulsadores hasta que se aprieta uno

scaner:   BTFSC   PORTA,0   ; si el bit 0 del puertoA esta en nivel bajo
              GOTO   GIRAD      ; gira a der.
              BTFSC   PORTA,1   ; aqui pueden ir otros pulsadores
              GOTO   GIRAI      ; gira a izquierda
              GOTO   scaner      ;repite secuencia

; ------------------  motor ------------
GIRAD:   
            movf      CONTA1,W
            sublw      0x00
            btfss      STATUS,Z
            goto      $+2
            goto      $+3
            decf      CONTA1,1
            goto      $+3
            movlw      .7
            movwf      CONTA1
            MOVF      CONTA1,0   ;
            goto      TABLA1   ; tabla de medio paso

GIRAI:
            movf      CONTA1,W
            sublw      0x08
            btfsc      STATUS,Z
            decf      CONTA1,1
            movf      CONTA1,W
            sublw      0x07
            btfss      STATUS,Z
            goto      $+2
            goto      $+3
            incf      CONTA1,1
            goto      $+3
            movlw      .0
            movwf      CONTA1
            MOVF      CONTA1,0   ;
            goto      TABLA1   ; tabla de medio paso

TABLA1: ADDWF PCL,1   ;
   RETLW   B'00000001'   ;1
   RETLW   B'00000011'   ;2
   RETLW   B'00000010'   ;3
   RETLW   B'00000110'   ;4
   RETLW   B'00000100'   ;5
   RETLW   B'00001100'   ;6
   RETLW   B'00001000'   ;7
   RETLW   B'00001001'   ;8

; una pausa para que se estabilice el dato

pausa:  movlw     .11        ; 1 set numero de repeticion  (B)
         movwf     D0        ; 1 |
Loop1:  movlw     .110      ; 1 set numero de repeticion  (A)
         movwf     D1        ; 1 |
Loop2:  clrwdt              ; 1 clear watchdog
         clrwdt              ; 1 ciclo delay
         decfsz    D1, 1     ; 1 + (1) es el tiempo 0  ? (A)
         goto      Loop2    ; 2 no, loop
         decfsz    D0,  1    ; 1 + (1) es el tiempo 0  ? (B)
         goto      Loop1    ; 2 no, loop
L1:     goto L2         ; 2 ciclos delay
L2:     clrwdt              ; 1 ciclo delay
         return              ; 2+2 Fin.

        END

 He logrado quemar el F628 y lo he puesto en marcha. El resultado es lo esperado, la velocidad de rotación es constante y
la dirección es la elegida en cada caso con el pulsador, uso pulsadores para que sólo gire durante el tiempo de contacto y
de esa forma consigo que pare al terminar la presión sobre el pulsador.

  No puedo adjuntar imagen del proyecto, si alguien está interesado se lo paso por e-mail.

 Saludos de Vicente. :-/

« Última modificación: 26 de Marzo de 2007, 11:59:21 por toc-toc »
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #78 en: 26 de Marzo de 2007, 11:53:33 »
Recién leo el hilo.

¿Al final, era el simulador o tu código lo que no hacía andaba bien ?

Te lo pregunto porque hace tiempo tuve problemas con el Proteus simulando la grabación/lectura de una memoria i2c.  no lo pude simular, siempre me daba algún error o directamente no veía nada en la memoria 'grabada'.  Cansado de simular y algo convencido de que tan mal no estaba mi código, lo grabé y lo cierto es que en la vida real funcionaba!! así que esa fue una de las razones por las cuales le comencé a tener desconfianza al Proteus (o al menos a esa versión que yo tenia en mis manos). 

Es muy probable que haya sido que yo no lo supiera usar bien y sacarle el jugo, pero bueno, tal vez en tu caso te pasó algo similar y sería bueno saberlo.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #79 en: 29 de Marzo de 2007, 04:45:45 »
 Saludos Mauricio, no se a que te refieres, creo que te saltaste al hilo que no era, yo he presentado el código del control del
motor paso a paso que, tanto me ha costado de poner en forma. Primero lo simulé con el Proteus y finalmente lo pasé al PIC
vi que iba muy lento y probé distintas opciones hasta que encontré la velocidad que considero idónea para muestra aunque
todo esto, me ha servido para gestionar el retardo que, es de lo que me he servido para modificar la velocidad del motor pap.

 Ahora pretendo iniciar un nuevo proyecto, con el cual entiendo que me puedes ayudar, se trata de un control PWM para
controlar la velocidad de un motor de CC, del que no tengo ninguna característica. Sólo se que aplicándole tensión en sus dos
polos gira en un sentido y cambiando los polos cambia el sentido de giro, la tensión que le aplico es de 5V =.

 Por mi parte, respecto de los PWM, sólo se que se trata de pulsos modulados mediante los cuales se consigue variar a
voluntad la velocidad de giro de un motor y hasta aquí mi experiencia (o sea rien de rien que diría un francés).

 Espero que entre tu y el resto de amigos como Bruno y Gio entre otros me echéis una ayudita.

  Saludos de Vicente.
 
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #80 en: 21 de Mayo de 2007, 19:50:52 »
 Hola! Saludos a todos.
 
 Hace algún tiempo que no podía ponerme en contacto con el foro, a pesar de haber tenido conexión,
cosas que pasan. Ahora, ya estoy de nuevo por aquí, dando la tabarra.

 Mauricio, dime si puedes ayudarme en el tema del PWM. En este momento pretendo abordar el control
PWM de un motor de CC, bueno, los datos que tengo del mismo son escasos, es de un desguace de una
impresora y lo unico que se es que funciona a 5V, el par motor es relativamente bueno ya que presenta
bastante fuerza a la tracción.

 Vereis, he leido algo sobre una fresadora y como he visto las posibilidades de hacer los circuitos impresos
con tanta calidad, la verdad, me ha impresionado y como tengo tiempo, he pensado en iniciarme en el
tema.

 Que te parece Mauri

 Saludos

Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #81 en: 08 de Junio de 2007, 09:18:30 »
 Saludos a todos.

 Mauricio, he estado proyectando una plaquita pcb para el control de 8 servos con el PIC16F84A, con un RS232 para manejarlo
desde el PC. Todo ha ido bien hasta que he tropezado con un imprevisto, el 'Hiperteminal' de Microsoft, el problema surge cuando
tengo que configurar el 'Hipeterminal', me esta dando problemas para poder ejecutar las ordenes a transmitir a la plaquita, ésta
se comunica mediante el SR232 para indicarle que servo ha de moverse y hasta donde en su recorrido.

 Más abajo adjunto una foto de la pcb. Si alguien me puede ayudar a configurar el 'Hiperterminal' le agradecería el detalle ya que
no encuentro la forma, llevo como 4 días haciendo pruebas y no puedo seguir por este problema.

Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #82 en: 08 de Junio de 2007, 09:45:20 »
¿Que problema tienes con el hiperterminal?, puedes dar más datos.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #83 en: 08 de Junio de 2007, 11:38:13 »
  Vamos a ver si me explico Jesús. Voy a Inicio/todo los Programas/Accesorios/Comunicaciones/Hiperterminal y Enter.
Me presenta la Ventana del Hiperterminal. Ahora, voy a Nueva conexión, le doy un nombre y elijo COM1, y me
muestra la ventana Configuración de puerto, pongo:
 
  Velocidad del puerto serie a 2400 baudios, ocho bits de datos y un bit de parada, sin paridad y en control de
flujo 'Hardware'. Que es lo que se debe poner y Acepto.

 En ese momento sólo muestra la ventana del terminal y ya no hay forma de escribir ni seguir, o eso es lo que me
parece.

  Cómo puedo enviar un dato, debería poder enviar un dato como: 0 (16, 32, 48, 64, 80, 96) para resetear o poner
en un punto el servo correspondiente.

 A todo esto, he comprobado que la tensión le llega a cada punto de los zócalos tanto del PIC16F84A como del
MAX232, las tensiones en la patilla 6 de -10 V y en la patilla 2 de +10 V son correctas, a expensas de la propia
transmisión que es donde me quedo atascado.

 No se si estos datos son los que me pides amigo Jesús.

  Gracias por todo.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #84 en: 08 de Junio de 2007, 13:08:09 »
Yo sigo los mismos pasos que tú y al final despues de aceptar los parámetros de transmisión me queda la pantlla del hyperterminal en la cual puedo escribir sin ningún problema y al dar el enter lo transmite. Podrias poner una imagen o mejor un video del proceso que sigues?.

Un saludo.

* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #85 en: 09 de Junio de 2007, 08:24:22 »
 Saludos de nuevo. Hola Jesús.

 Vaya, no sabría decir como ha ocurrido, el caso es que no estaba conectando la alimentación a la pcb, sólo había conectado
el cable DB9 al PC y un servo para intentar moverlo. Vale, pongo el cable de la alimentación y cuando hago la prueba con dos
puentes para simular el intercambio de datos entre el PC y el PIC, todo parece que funciona, sin embargo, cuando sustituyo
los puentes por  el PIC, resulta que no funciona ni el Hiperterminal ni se mueve el servo.

 He pensado si será problema del archivo hex, ya que al conectar todo, en el terminal debería aparecer un mensaje y no lo
presenta.

 No se que puede ser, voy a seguir indagando y simular el código para depurar en lo posible el mismo.

 Gracias por la ayuda.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #86 en: 09 de Junio de 2007, 08:35:57 »
Has repasado haber si los cables los tienes bien conectados, el RX con el TX de cada uno de los lados (2-3 y 3-2) y si las masa están bien puestas en los conectores.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #87 en: 14 de Junio de 2007, 17:24:14 »
 Hola! Amigo jfh900 y todos los demás.

 A lo que iba, puede que tengas razón, estoy usando el mismo cable que normalmente uso para el TE20se y ahora
que leo tu mensaje he caído en la cuenta.

 Voy a probarlo, bueno, eso será en tener un poco de tiempo, ya que he tenido problemas con mi PC y el XP que se
me ha escoñado, voy recuperando cosas y otras... bueno lo dicho, lo probaré y ya os cuento.

 Gracias por todo.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #88 en: 15 de Junio de 2007, 08:57:46 »
Revisa también si tienes control de flujo por hardware o ninguno.  Si no haces uso de las señales DSR, DTR, RTS y CTS, usa ninguno.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado ottanawa

  • PIC10
  • *
  • Mensajes: 5
Programa de ascensor de 4 pisos con motor de DC.
« Respuesta #89 en: 03 de Septiembre de 2012, 23:10:57 »
Elevador de 4 Pisos con pic y motor de DC.
Hola a todos son nuevo en este foro y bueno les quería comentar que estoy iniciándome en pic, en donde bueno estoy haciendo un elevador para un proyecto de 4 pisos con un motor de DC, el cual va a contener un teclado matricial 4x3.
Decidí iniciar un nuevo tema, debido a que no encontré realmente en la búsqueda, y además en temas ya iniciados no pude obtener una respuesta.
Espero poder tener una solución.
El programa que he realizado hace la secuencia correcta cuando pulso solamente un pulsador, pero no puedo hacer que sean pulsados mas de un pulsador y que el ascensor recorra una secuencia determinada.
ejemplo: si la cabina se encuentra en el piso 1, y es llamado del 4, el elevador comienza a subir, pero si antes de llegar al 3 se pulsa el mismo, en su viaje, va a parar primero en el 3 y luego va a seguir subiendo hacia el 4. Eso es lo que realmente deseo.
Además otra de las cosas que me falta es que una vez pulsado una tecla, que se encienda un led hasta que llegue al piso correspondiente.
Les quiero comentar lo que hice y funciona, sensores de detección de la cabina, de puerta, luz de la planta, alarma, mostrar piso en display de siete segmentos.

Les adjunto la parte del programa hasta donde tengo hecho en ccs pic y el circuito en proteus.
Desde ya muchas gracias. Saludos