Autor Tema: PROYECTO PIC16f84+LCD+3sensores+¿¿motor?? --orientaciones please.  (Leído 3559 veces)

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

Desconectado SKAN

  • PIC10
  • *
  • Mensajes: 1
HOLA, como proyecto fin de curso de el CF que estoy estudiando.. tengo que realizar una práctica con pic16f84... solo hemos hecho practicas con pequeños movimientos en leds...sencillas. pero quiero realizar un buen proyecto...mis conocimientos en control de LCD y motores es lo mirado por internet estos dias...

MI IDEA ES mediante 3 sensores de movimiento (al cruzarlos un objeto en una maketa) mostrará 3 mensajes diferentes, y estoy estudiando la posibilidad de poner motor paso a paso para levantar una pequeña maderita.. pero solo me qedan libres RA3 Y RA4..son 2.el LCD me ocupa todas las RB. tb puedo aprobechar RA2 por que el motor se activara simultaneamente al 3er mensaje...

solo e podido mirar programas ejemplo (utilizo MPLAB) y todos mis conocimientos del LCD es lo visto por internet estos dias..pego mi "boceto" de programa para la detección de los mensajes.. AHI VA:::
------------------------------------------------------------------------------------------------------------------------------------------
__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
      LIST      P=16f84A
      INCLUDE      <P16F84A INC>
      
      CBLOCK   0x0C
      ENDC
#DEFINE      sensor1 PORTA,0;
#DEFINE      sensor2 PORTA,1;
#DEFINE      sensor3   PORTA,2;
W      EQU 0
F      EQU 1
ESTADO   EQU 0x03
PUERTAA   EQU   0x05
PUERTAB   EQU   0x06
INTCOM   EQU   0x0B
TEMP      EQU   0X0D

;ZONA DE CÓDIGOS
;*******************************************************************************************
      ORG   0
      goto    inicio
      
      ORG   5
      clrf   PUERTAB
inicio   
      bsf      ESTADO,5
      clrf   PUERTAB      ;para el LCD, todo salidas?
      movlw   b'11100111'   ;RA0-RA2 entradas, sensor, RA3yRA4 salidas motor
      movwf   PUERTAA
      andlw   b'00000111'
      movwf   TEMP
      call   LCD_inicializa   ;ESTAS DEBEN SER LAS RUTINAS PARA INICIALIZAR EL DISPLAY, NO??
      movlw   Mensaje1      ;AQUI LO QUE QUIERO ES QUE CARGE EL MENSAJE 1, OSEA PUENTE ELEVADIZO, EL PREDEFINIDO.
      call   LCD_Mensaje

princip   call   LCD_Linea2      ;ALGORITMO PARA DETECTAR CUANDO EL BARCO CRUZA CADA SENSOR
      movlw   Mensaje1      ;carga el mensaje predef
      movlw   b'00000001'      ;Detecta sensor en RA0
      subwf   TEMP,w
      btfsc   ESTADO,2
      movlw   Mensaje2      ;si estaba activo el sensro RA0
      call   LCD_Mensaje      ;¿?¿?¿?¿?¿?¿--si estaba activo OK, pero si no...
      movlw   b'00000010'      ;Detecta sensor en RA1
      subwf   TEMP,w
      btfsc   ESTADO,2
      movlw   Mensaje3      ;si estaba activo el sensor RA1
      call   LCD_Mensaje      ;?¿?¿?¿?¿?¿
      movlw   b'00000100'      ;Detecta sensor en RA2. (se presupone q no se dara el caso de 2 sensores a la vez a nivel alto)
      subwf   TEMP,w
      btfsc   ESTADO,2
      movlw   Mensaje4      ;si estaba activo el sensor RA2
      call   LCD_Mensaje
      goto   princip
   
      
Mensaje      addwf   PCL,F
Mensaje1   DT"  PUENTE ELEVADIZO"      
Mensaje2   DT"  BARCO A 100M.",0x00
Mensaje3   DT"  PUENTE LEVANTANDOSE.NO CRUZAR",0x00
Mensaje4   DT"  PUENTE BAJANDO.",0x00


   INCLUDE <RETARDOS.INC>
   INCLUDE   <LCD_4BIT.INC>
   INCLUDE   <LCD_MENS.INC>
   END
------------------------------------------------------
NO PIDO ME REALICEN EL PROGRAMA, NI MUCO MENOS POR DIOS!! DISFRUTO SACÁNDOLO YO, EL MUNDO DE LOS PICS ES INCREIBLE.. solo agradeceria orientaciones respecto a el modo de detección de los sensores, y por supuesto respeco a los motores.
------------
GRACIAS POR SU ATENCIÓN.

Desconectado pibe

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 635
Re: PROYECTO PIC16f84+LCD+3sensores+¿¿motor?? --orientaciones please.
« Respuesta #1 en: 19 de Mayo de 2006, 19:13:09 »
Estás muy limitado con un 16f84. Para todo lo que quieres hacer deberias haber elegido un 16f877.
Lo unico que te quedaría por hacer es sacar datos serie por un pin y que , a ser necesario, otro integrado lo transforme a paralelo.
Creo que existe en el mercado un integrado control motor pap con entrada datos serie....si no me equivoco. saa 1027? me falla la memoria...

Como te dije... si no puedes contar con otro micro con mas entradas salidas no te queda otra que poner mas integrados paralelo-serie o serie-paralelo
Mi jefe mirando el prototipo que estoy creando: "Y eso va a funcionar?"

Desconectado SKAN2

  • PIC10
  • *
  • Mensajes: 1
Re: PROYECTO PIC16f84+LCD+3sensores+¿¿motor?? --orientaciones please.
« Respuesta #2 en: 23 de Mayo de 2006, 17:30:09 »
soy el que publico el tema SKAN, olvide mi contraseña,,,y el sistema de "recuerdo de contraseñas" no acaba de funcionar se ve...
----------------------
tengo un pequeño esquema del circuito a realizar... aqui lo adjunto..
---------------------
voy a colocar tambien en la practica un segundo pic, para controlar un motor PAP, antes pasando por un DRIVER L293B, mis consultas:
-sin TRANSITORES, tendre suficiente potencia para levantar una pequeña maderita de 20gramos como mucho?.
-un ojillo a la siguiente programación de control del motor:

; PROGRAMA PARA MOTOR PAP BIPOLAR, para levantar el puente elevadizo.
;
;*******************************************************************************************
;ZONA DE DATOS:

   __CONFIG _CP_OFF & _WDT_OFF &_PWRTE_ON & _XT_OSC
   
   LIST   P=16f84A
   INCLUDE <P16F84A.INC>
   
   CBLOCK 0x0C
   Ciclos         ;se decrementará cada ciclo de 8 pasos.
   VueltasHorario
   VueltasAntihorario
   ENDC
   
   NumeroCiclos   EQU   .12
   W            EQU 0
   F            EQU 1
   ESTADO         EQU 0x03
   PUERTAA         EQU   0x05
   PUERTAB         EQU   0x06
   
;*******************************************************************************************
;ZONA DE CÓDIGOS:
   
         Org   0
         goto   inicio
   
inicio      Org 5
      
      
      
         bsf      STATUS,RP0
         clrf   PORTB         ;lineas del puerto B configuaradas como salidas.
         bcf      STATUS,RP0

principal   movlw   0x02
         movwf   VueltasHorario

otravueltaD   movlw   NumeroCiclos
         movwf   Ciclos

otrocicloD   call   GiroDerecha
         decfsz   Ciclos,F
         goto   otrocicloD
         decfsz   VueltasHorario,F
         goto   otravueltaD
         movlw   0x01
         movwf   VueltasAntihorario   ;una vuelta en sentido antihorario.

otravueltaI   movlw   NumeroCiclos      ;al ser una sola vuelta no hace falta el contador
         movwf   Ciclos

otrocicloI   call   GiroIzquierda
         decfsz   Ciclos,F
         goto   otrocicloI
         decfsz   VueltasAntihorario,F
         goto   otravueltaI
         goto   Principal


;SUBRUTINA "GIROIZQUIERDA"
;*******************************************************************************************
GiroIzquierda   movlw   b'00110001'      ;primer paso
            call   ActivaSalida   
            movlw   b'00110101'
            call   ActivaSalida   ;segundo paso
            movlw   b'00110100'
            call   ActivaSalida   ;tercer paso
            movlw   b'00110110'
            call   ActivaSalida   ;cuarto paso----seguir estas rutinas...
            

;SUBRUTINA "GIRODERECHA"
;*******************************************************************************************
GiroDerecha      movlw   b'00111001'      ;primer paso para el giro hacia la derecha
            call   ActivaSalida
            movlw   b'00111000'      ;segundo paso
            call   ActivaSalida
            movlw   b'00111010'      ;tercer paso
            call   ActivaSalida
            movlw   b'00110010'      ;cuarto paso
            call   ActivaSalida
            
;SUBRUTINA "ACTIVA SALIDA"
;*******************************************************************************************
ActivaSalida   movwf   PORTB
            call   Retardo_50ms   ;temporización antes del siguiente paso.
            return
            
            
            INCLUDE   <RETARDOS.INC>
            END


GRACIAS POR SU ATENCIÓN.
               


 

anything