TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: lorcho en 28 de Mayo de 2011, 21:59:40
-
Hola, estoy haciendo un pequeño proyecto con leds RGB, un saco de boxeo que cada vez que le pegas cambia de color, que ocurrente. El problema es que el sensor de vibración(switch) que activa la patilla del 12f629 es muy sensible, y cambia muchas veces el color. He intentado hacer el retardo con un condensador y una resistencia pero no lo doy hecho bien. La alternativa que veo es añadir un pic a mayores que me haga el antirebote. Detectaría el primer pulso, activaría una salida a nivel bajo y quedaría inactivo durante X tiempo. ¿Que me recomendais? Más adelante me gustaría programar un pic para el control de led RGB, pero como este proyecto me urge más lo tengo que dejas para más adelante.
-
Hola.
Puedes generar un retardo por software, después de detectar el primer pulso del sensor, de unos 150mS ... creo que con un solo PIC es mas que suficiente para lo que quieres.
Saludos
-
Hola MLO__!
El problema es que estudie programación para atmel, y programábamos en ensamblador. Necesitaba un programa que detectase el primer pulso que entra por la patilla 2 del 12f629, cambiase el color de un led RB aleatoriamente e ignorase los siguientes durante 500ms o 1 seg. Conseguí la plantilla del 12f629 y estoy empezando a modificarla. A ver como va.
-
Aquí como hacer las rutinas de demora y adjunto un programita para realizarlas: http://www.todopic.com.ar/foros/index.php?topic=24720.msg201398#msg201398
Saludos!
-
Hola suky,
Al empezar a compilar con el MPLAB ya me da estos 4 errores:
----------------------------------------------------------------------
Release build of project `C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.disposable_mcp' started.
Language tool versions: MPASMWIN.exe v5.41, mplink.exe v4.39, mplib.exe v4.39
Mon May 30 00:53:13 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPASMWIN.exe" /q /p12F629 "PRUEBA1.ASM" /l"PRUEBA1.lst" /e"PRUEBA1.err"
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 26 : Symbol not previously defined (status)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 26 : Symbol not previously defined (rp0)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 29 : Symbol not previously defined (status)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 29 : Symbol not previously defined (rp0)
Halting build on first failure as requested.
----------------------------------------------------------------------
Release build of project `C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.disposable_mcp' failed.
Language tool versions: MPASMWIN.exe v5.41, mplink.exe v4.39, mplib.exe v4.39
Mon May 30 00:53:13 2011
----------------------------------------------------------------------
BUILD FAILED
Que son en las líneas que cambio de banco de memoria . Alguien sabe porque puede ser esto, alguna vez programe el 16f84A. Ló único que necesito es un programa que cuando tenga un cambio en el estado de una patilla del micro, cambie una salida a 1 e iugnore los demás pulsos hasta que pase x tiempo. Es una lectura, poner a 0 una salida, retardo Xms y vuelve a la espera de señal en la patilla de entrada. Muy sencillo, pues llevo más de 1 semana. Muchas gracias por anticipado.
ADJUNTO CÓDIGO:
LIST P=12F629
INCLUDE P12F629.INC
ERRORLEVEL -302
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
CBLOCK 0X20
;espacio para la declaracion de variables
ENDC
#define salida GPIO,2
#define entrada GPIO,3
ORG 00
GOTO CONFIGURA
;espacio para las subrrutinas
CONFIGURA NOP
CLRF GPIO
MOVLW B'00000111' ; 07H Configuro GP1, GP2, GP3 como pines
MOVWF CMCON ; digitales
BANKSEL OSCCAL ;para calibrar el oscilador interno
CALL 3FFH ; Obtengo el valor de calibracion del oscilador
MOVWF OSCCAL
CLRF TRISIO
BANKSEL GPIO
bsf status, rp0 ;bank 1
movlw b'0001000' ;(x= don't care = does not matter)
movwf TRISIO ;the lowest bit will be an OUTPUT
bcf status, rp0 ;bank 0
;Programa principal
CICLO
GOTO CICLO
END
-
No era necesario crear otro hilo con el mismo problema :? Se cierra el hilo, aquí se continua el tema:
http://www.todopic.com.ar/foros/index.php?topic=34956.0;topicseen