Autor Tema: Circuito Antirebote 12f629 para control RGB LED  (Leído 4906 veces)

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

Desconectado lorcho

  • PIC10
  • *
  • Mensajes: 18
Circuito Antirebote 12f629 para control RGB LED
« 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.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Circuito Antirebote 12f629 para control RGB LED
« Respuesta #1 en: 28 de Mayo de 2011, 22:08:33 »
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
El papel lo aguanta todo

Desconectado lorcho

  • PIC10
  • *
  • Mensajes: 18
Re: Circuito Antirebote 12f629 para control RGB LED
« Respuesta #2 en: 29 de Mayo de 2011, 09:33:35 »
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.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Circuito Antirebote 12f629 para control RGB LED
« Respuesta #3 en: 29 de Mayo de 2011, 10:38:57 »
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!
No contesto mensajes privados, las consultas en el foro

Desconectado lorcho

  • PIC10
  • *
  • Mensajes: 18
Re: Circuito Antirebote 12f629 para control RGB LED
« Respuesta #4 en: 29 de Mayo de 2011, 19:55:49 »
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

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Circuito Antirebote 12f629 para control RGB LED
« Respuesta #5 en: 29 de Mayo de 2011, 20:39:14 »
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
No contesto mensajes privados, las consultas en el foro