Destellador de LEDs para Aeromodelismo

D@rkbytes

Moderador
Todo ese código redundante del post #6, se resume a esto:
Código:
Programa:
    GPIO = %00000011

    Pause 100

    GPIO = %00000000

    Pause 500
   
    GoTo Programa
Y si los leds van a encender al mismo tiempo, no tiene caso usar una salida para cada uno.
Con una salida bastaría y se controlarían los leds con un transistor:
Esquema.jpg

Código:
Rem Palabra de configuración para PBP2.X
'@ Device PIC12F675
'@ Device INTRC_OSC_NOCLKOUT, MCLR_OFF, PWRT_ON, WDT_OFF, BOD_OFF

Rem Palabra de configuración para PBPX 3.X (Windows 64 bits)
#Config
    __Config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF
#EndConfig

Define OSC 4

Inicio:
    ANSEL = 0

Programa:
    High GPIO.0

    Pause 100

    Low GPIO.0

    Pause 500
    
    GoTo Programa

    End

Conéctalo mediante una resistencia de 10 k al *MCLR a Vdd, por las dudas que esté configurado como salida. Así cuidarás al PIC
En el PIC12F675 el pin MCLR es únicamente entrada digital.

Lo que sí es importante es la palabra de configuración.
Si el código se compila sin ella, quedará activo el Watch-Dog Timer y como el programa tiene retardos, se reiniciará inesperadamente si no se limpia el conteo del timer.

De cualquier forma, si no se le agrega a ese circuito algo que justifique el uso de un microcontrolador, será mejor un 555
 
La idea era independizar las salidas Dark.
Creo que contando y comparando variables, se puede hacer lo ideado, claro que configurando bien los fusibles y demas
 
Conectalo mediante una resistencia de 10 k al *MCLR a Vdd, por las dudas que este configurado.como salida. Asi cuidaras al PIC.

Para el regulador, mira este excelente post de Fogonazo Reguladores de Voltaje 78XX en la práctica
Y el PIC quedaria con su capacitor de 100 nF en la alimentacion.

* Master CLeaR = Reinicio maestro, en otras palabras. Si este pin esta configurado como tal, y no como GPIO (General Purpose In/Out, entrada/salida de proposito general), entonces al conectarlo a masa (negativo, tierra, Vss, etc) del circuito, el PIC se reinicia y no funciona hasta que tenga un estado alto (conectado al B+, Vdd, posivito, etc)


OK, si entendi bien, se debe conectar la pata 4 mediante una resistencia de 10k a VDD ( + ), aparte de ponerle el condensador de 100 nF entre alimentacion del pic... con esto, y alejando el condensador de 0.1 del IC, deberia funcionar bien, y estable. Creo que con eso estaría bien !! verdad ? gracias mil por los consejos.
Todo ese código redundante del post #6, se resume a esto:
Código:
Programa:
    GPIO = %00000011

    Pause 100

    GPIO = %00000000

    Pause 500
  
    GoTo Programa
Y si los leds van a encender al mismo tiempo, no tiene caso usar una salida para cada uno.
Con una salida bastaría y se controlarían los leds con un transistor:
Ver el archivo adjunto 179910

Código:
Rem Palabra de configuración para PBP2.X
'@ Device PIC12F675
'@ Device INTRC_OSC_NOCLKOUT, MCLR_OFF, PWRT_ON, WDT_OFF, BOD_OFF

Rem Palabra de configuración para PBPX 3.X (Windows 64 bits)
#Config
    __Config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF
#EndConfig

Define OSC 4

Inicio:
    ANSEL = 0

Programa:
    High GPIO.0

    Pause 100

    Low GPIO.0

    Pause 500
   
    GoTo Programa

    End


En el PIC12F675 el pin MCLR es únicamente entrada digital.

Lo que sí es importante es la palabra de configuración.
Si el código se compila sin ella, quedará activo el Watch-Dog Timer y como el programa tiene retardos, se reiniciará inesperadamente si no se limpia el conteo del timer.

De cualquier forma, si no se le agrega a ese circuito algo que justifique el uso de un microcontrolador, será mejor un 555


Hola Darkbytes, el tema es este: desde un principio, se quiso hacer detellar separadamente y relacionados los dos faroles. o sea, dos detellos del izquierdo, espera, dos destellos del derecho, espera, dos detellos de ambos a la vez, espera, y volver al inicio. Esa es la programacion que desde un principio se hizo y se diseño el circuito para eso. por un tema de tiempos largos, quedaba uno de los faroles mucho tiempo apagado, por lo que estoy probando juntarlos, como usar un 555 y nada mas... pero la idea es siempre hacer detellos diferenciados. Para eso, necesito un procesador que sea facil, un lenguaje de programacion tambien facil ( para un experimentador que le falta enseñanza y datos tecnicos) y un circuito que sea facil de hacer, que funcione bien de primera, y en lo posible que no dé problemas. Estos faroles, como se imaginarán, van en las puntas de ala de un ultraliviano casero, el que tengo en la foto de mi perfil, una nave que vengo construyendo desde hace 7 años y hoy en dia lo tengo como lo ven alli.... y este sistema de luces, si ven las imagenes de los faroles, son dos tiritas de led color blanco ( detellador ) y una tirita de color ( derecha Verde, izquierda Rojo ) que van fijas, solo centellean las blancas. Eso por Reglamentación, asi que un farol ( o tulipa ) lleva un color y el otro el otro color. Esto debe ser simplemente conectado mediante una llave de palanca en el tablero del avion. tan simple como eso, lo mejor de todo, es que cada constructor puede y quiere configurar sus destellos y esperas como quiera, por lo que necesito que sean independientes, aunque quieran que centellen al unísono... sistema mas simple. para no hacer dos plaquetas diferentes, hago una sola y la programación la hago al gusto del consumidor. Espero haber sido transparente. Si quieren fotos de la construccion de la nave o de los instrumentos, a las ordenes.
Todo ese código redundante del post #6, se resume a esto:
Código:
Programa:
    GPIO = %00000011

    Pause 100

    GPIO = %00000000

    Pause 500
  
    GoTo Programa
Y si los leds van a encender al mismo tiempo, no tiene caso usar una salida para cada uno.
Con una salida bastaría y se controlarían los leds con un transistor:
Ver el archivo adjunto 179910

Código:
Rem Palabra de configuración para PBP2.X
'@ Device PIC12F675
'@ Device INTRC_OSC_NOCLKOUT, MCLR_OFF, PWRT_ON, WDT_OFF, BOD_OFF

Rem Palabra de configuración para PBPX 3.X (Windows 64 bits)
#Config
    __Config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF
#EndConfig

Define OSC 4

Inicio:
    ANSEL = 0

Programa:
    High GPIO.0

    Pause 100

    Low GPIO.0

    Pause 500
   
    GoTo Programa

    End


En el PIC12F675 el pin MCLR es únicamente entrada digital.

Lo que sí es importante es la palabra de configuración.
Si el código se compila sin ella, quedará activo el Watch-Dog Timer y como el programa tiene retardos, se reiniciará inesperadamente si no se limpia el conteo del timer.

De cualquier forma, si no se le agrega a ese circuito algo que justifique el uso de un microcontrolador, será mejor un 555
DSC_9560.JPGDSC_9565.JPG
Todo ese código redundante del post #6, se resume a esto:
Código:
Programa:
    GPIO = %00000011

    Pause 100

    GPIO = %00000000

    Pause 500
  
    GoTo Programa
Y si los leds van a encender al mismo tiempo, no tiene caso usar una salida para cada uno.
Con una salida bastaría y se controlarían los leds con un transistor:
Ver el archivo adjunto 179910

Código:
Rem Palabra de configuración para PBP2.X
'@ Device PIC12F675
'@ Device INTRC_OSC_NOCLKOUT, MCLR_OFF, PWRT_ON, WDT_OFF, BOD_OFF

Rem Palabra de configuración para PBPX 3.X (Windows 64 bits)
#Config
    __Config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF
#EndConfig

Define OSC 4

Inicio:
    ANSEL = 0

Programa:
    High GPIO.0

    Pause 100

    Low GPIO.0

    Pause 500
   
    GoTo Programa

    End


En el PIC12F675 el pin MCLR es únicamente entrada digital.

Lo que sí es importante es la palabra de configuración.
Si el código se compila sin ella, quedará activo el Watch-Dog Timer y como el programa tiene retardos, se reiniciará inesperadamente si no se limpia el conteo del timer.

De cualquier forma, si no se le agrega a ese circuito algo que justifique el uso de un microcontrolador, será mejor un 555



del circuito que me mandas aqui, el BC 337 me parece que es chico, porque tengo 4 o 5 metros de cable hasta el farol, en cada ala, por lo que la caida de tension puede complicar al pequeño BC337. por eso la idea de poner uno de potencia, y que ni caliente, a pesar de la distancia del cableado. La otra, el tema LED, ya viene solucionado, porque las tiras led ya tienen sus resistencias limitadoras, por lo que cortando exactamente en las marcas ( 3 leds ) tiene las conexiones para los 12v, asi que uso exclusivamente esas tiras y no me caliento en diseñar. Siempre la idea es simplificar con elementos ya solucionados. Lo mejor de todo, es que en el timón vertical, debo poner uno rojo, que destelle tambien, y puedo incluso hasta intercalarlo en otra pata y en el programa darle los disparos, siempre independiente a los de las alas.... como verán, me sirve que tenga recursos para poder agregar y/o sacar. Que destellen igual, o no, es un tema de programa y gusto del cliente. Gracias.
Todo ese código redundante del post #6, se resume a esto:
Código:
Programa:
    GPIO = %00000011

    Pause 100

    GPIO = %00000000

    Pause 500
  
    GoTo Programa
Y si los leds van a encender al mismo tiempo, no tiene caso usar una salida para cada uno.
Con una salida bastaría y se controlarían los leds con un transistor:
Ver el archivo adjunto 179910

Código:
Rem Palabra de configuración para PBP2.X
'@ Device PIC12F675
'@ Device INTRC_OSC_NOCLKOUT, MCLR_OFF, PWRT_ON, WDT_OFF, BOD_OFF

Rem Palabra de configuración para PBPX 3.X (Windows 64 bits)
#Config
    __Config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF
#EndConfig

Define OSC 4

Inicio:
    ANSEL = 0

Programa:
    High GPIO.0

    Pause 100

    Low GPIO.0

    Pause 500
   
    GoTo Programa

    End


En el PIC12F675 el pin MCLR es únicamente entrada digital.

Lo que sí es importante es la palabra de configuración.
Si el código se compila sin ella, quedará activo el Watch-Dog Timer y como el programa tiene retardos, se reiniciará inesperadamente si no se limpia el conteo del timer.

De cualquier forma, si no se le agrega a ese circuito algo que justifique el uso de un microcontrolador, será mejor un 555
2019-05-07 10.35.27.jpg2019-05-07 09.47.09.jpg2019-04-24 10.39.30.jpg
 
Última edición:

D@rkbytes

Moderador
Hola D@rkbytes, el tema es este: desde un principio, se quiso hacer destellar separadamente y relacionados los dos faroles.
O sea, dos destellos del izquierdo, espera, dos destellos del derecho, espera, dos destellos de ambos a la vez, espera, y volver al inicio.
O sea, ¿así?
Código:
Rem Palabra de configuración para PBP2.X
'@ Device PIC12F675
'@ Device INTRC_OSC_NOCLKOUT, MCLR_OFF, PWRT_ON, WDT_OFF, BOD_OFF

Rem Palabra de configuración para PBPX 3.X (Windows 64 bits)
#Config
    __Config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF
#EndConfig

Define OSC 4

Inicio:
    x Var Byte
    Symbol led1 = GPIO.0
    Symbol led2 = GPIO.1
    ANSEL = 0
    CMCON = 7

Programa:
    For x = 1 To 2
        High    led1
        Pause    150
        Low        led1
        Pause    150
    Next x
    
    Pause    500

    For x = 1 To 2
        High    led2
        Pause    150
        Low        led2
        Pause    150
    Next x
    
    Pause    500
    
     For x = 1 To 2
        High    led1
        High    led2
        Pause    150
        Low        led1
        Low        led2
        Pause    150
    Next x
    
    Pause    500
    
    GoTo Programa

    End
Eso haría la secuencia mencionada.
Esa es la programación que desde un principio se hizo y se diseñó el circuito para eso.
No. El programa del post #6 repite las mismas instrucciones, por eso comenté sobre la redundancia.
El BC337 me parece que es chico, porque tengo 4 o 5 metros de cable hasta el farol.
Eso es lo de menos porque se sustituyen por adecuados, fue a modo de ejemplo.
 
O sea, ¿así?
Código:
Rem Palabra de configuración para PBP2.X
'@ Device PIC12F675
'@ Device INTRC_OSC_NOCLKOUT, MCLR_OFF, PWRT_ON, WDT_OFF, BOD_OFF

Rem Palabra de configuración para PBPX 3.X (Windows 64 bits)
#Config
    __Config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF
#EndConfig

Define OSC 4

Inicio:
    x Var Byte
    Symbol led1 = GPIO.0
    Symbol led2 = GPIO.1
    ANSEL = 0
    CMCON = 7

Programa:
    For x = 1 To 2
        High    led1
        Pause    150
        Low        led1
        Pause    150
    Next x
   
    Pause    500

    For x = 1 To 2
        High    led2
        Pause    150
        Low        led2
        Pause    150
    Next x
   
    Pause    500
   
     For x = 1 To 2
        High    led1
        High    led2
        Pause    150
        Low        led1
        Low        led2
        Pause    150
    Next x
   
    Pause    500
   
    GoTo Programa

    End
Eso haría la secuencia mencionada.

No. El programa del post #6 repite las mismas instrucciones, por eso comenté sobre la redundancia.

Eso es lo de menos porque se sustituyen por adecuados, fue a modo de ejemplo.



Algo de eso era el programa primero. Para mi, que soy innoto para la programación, porque no lo estudié sino simplemente pregunto como se hace, lo pruebo y si funciona, luego me intereso en como se programa, empiricamente, y lo cambio. Este programita diferenciado, lo tuve en el otro disco C: que se me rompió, por lo que lo perdí. Por eso, mas o menos armé este de destellos simples. Siempre la idea es tener una base de programación para luego, solo cambiar los espacios y los detellos. Como les conté antes, hasta tengo que ver como incorporar un farol nuevo, único, sobre el timón de dirección, donde va la luz giroscópica ( que lo sustituyo con un tubo y leds pegados en redondo, que se vean hacia todos lados ) y es de color Rojo, y lleva solamente un destello simple, tiempos parejos y espacios tambien parejos.... que se puede cambiar por 2 destellos rápidos juntos, pausa, y otros dos detellos.... para diferenciar con los comunes. Esa es la idea, ir mejorándolo y completando el sistema de luces reglamentarias básicas. El programa del post #6 es un modelo básico que me pidieron, por lo que usando todo igual, se puede cambiar los destellos cuando quiera el dueño, solo con cambiar el integrado PIC. El resto esta conectado y funcionando. Esa es la idea, FLEXIBILIDAD.
Programa:
For x = 1 To 2
High led1
Pause 150
Low led1
Pause 150
Next x

Pause 500

For x = 1 To 2
High led2
Pause 150
Low led2
Pause 150
Next x

Pause 500

For x = 1 To 2
High led1
High led2
Pause 150
Low led1
Low led2
Pause 150



En esta secuencia, veo que enciendes el led 1, luego esperas ( tiempo encendido) y luego apagas el led 1, luego pausa de 500... creo que solo encendiste un led y lo apagaste, luego espera de 500... lo mismo para el led2... la idea primera, y es un programa que quiero hacer de nuevo, es DOBLE DESTELLO de led 1 ( encendido, apagado, encendido, apagado, espera 500, encendido led2, apagado, encendido, apagado, espera 500, encendido led1 y led2, apagado de ambos, encendido de ambos, apagado, espera 500, y vuelve. Esa es la idea. poder manejar los tiempos de encendido y apagado, y de espera.
la ultima parte esta re bien...
Fíjate una cosa... teniendo este programa, mas alla de la construcción de la plaqueta, se puede reformar los tiempos, sea de prendidos, de apagados, de uno, de otro... y si entre medio se puede mechar el de la luz de cola... genial !!! jugando con los milisegundos, se puede llegar a tener el sistema completo !! por eso voy de a poco... entendiendo como funciona, como programar, pero lo que no tengo idea es de los Filtros y configuraciones de inicio... de como conviene setear, y aparte de esto, de la construcción física de la plaqueta. Ya ves, he aprendido que tengo que separar los componentes del regulador y sus condensadores, del PIC, porque interactúan con ruido.... y eso modifica al PIC... esas cosas no las sabia. Y esto es lo que estoy buscando, aprender de a poco, en la medida de la necesidad. Por eso agradezco de alma todas estas clases que estoy recibiendo de todos Uds.
Ya vengo construyendo un ultraliviano desde cero, desde planos en hojas A4, y variar muchos materiales por no conseguir aqui los materiales originales... eso requiere mucha info, averiguar mucho, jorobar a mucha gente, y aprender muchisimo... tanto es asi, que la inspección que me hicieron los 2 Ingenieros de Dinacia ( Aviacion Civil Uruguaya ), se quedaron de boca abierta, por la construcción, los materiales usados y como resolví muchisimos detalles, y hasta el uso de materiales alternativos de ultima generación, como mechas de fibra de carbono en las vigas de alas. Todo eso esta detallado en una Memoria Descriptiva General de toda la construcción. Hoy en dia la estan tomando como base de construcción de otras aeronaves experimentales en Uruguay... Y a la vez, crear el sistema de luces reglamentarias y sus sistemas automáticos. Ya me están pidiendo otros amigos constructores este tipo de luces programables. Esa es la "urgencia" que puedo tener, el crear nuevamente la plaqueta y la programacion para instalar las luces. Bueno, no quiero aburrir, Gracias mil. sigo aprendiendo !!
 
Última edición:

D@rkbytes

Moderador
En esta secuencia, veo que enciendes el led 1, luego esperas ( tiempo encendido) y luego apagas el led 1, luego pausa de 500.
Creo que solo encendiste un led y lo apagaste, luego espera de 500, lo mismo para el led2, la idea primera, y es un programa que quiero hacer de nuevo, es DOBLE DESTELLO de led 1 ( encendido, apagado, encendido, apagado, espera 500, encendido led2, apagado, encendido, apagado, espera 500, encendido led1 y led2, apagado de ambos, encendido de ambos, apagado, espera 500, y vuelve. Esa es la idea. poder manejar los tiempos de encendido y apagado, y de espera.
El programa hace eso. No tomaste en cuenta que los destellos se hacen dentro de bucles que repiten dos veces las instrucciones.
For x = 1 To 2
; Código que se ejecutará dos veces.
Next x
Eso debe ser porque desconoces sobre programación, pero lo que mencionas, es lo que hace.

Suerte con el proyecto.
 
El programa hace eso. No tomaste en cuenta que los destellos se hacen dentro de bucles que repiten dos veces las instrucciones.
For x = 1 To 2
; Código que se ejecutará dos veces.
Next x
Eso debe ser porque desconoces sobre programación, pero lo que mencionas, es lo que hace.

Suerte con el proyecto.


ok, comprendido... copio el codigo. asi como esta se copiará en el programa Micro Code Studio ?? lo escribo tal cual y listo ? lo voy a probar. me interesa saber si con la plaqueta esta todo bien, asi la hago con esos nuevos componentes. Gracias Dark.
 
Sí, nada más selecciona la palabra de configuración correspondiente a la versión del compilador PBP que tengas.
Ese programa fue escrito en MCS v5.0.0.5 y compilado con PBPX 3.1.2.1 sobre Windows 10 x64


ok, veo esos datos de los programas y te aviso.
Gracias mil.
de la plaqueta, voy a probar los consejos recibidos, a ver si funciona como debe. Gracias.
 
mira este proyecto, tal vez te sirva de algo

Luces policiales con pic 12f629
hola Puroh, me gusta la idea... de alli poder hacer las adaptaciones, pero la plaqueta es lo que busco... esta muy bueno. lo veo ahora, porque al no estar registrado, no me baja las imagenes. te pido que me pases lista de materiales y algun circuito... mientras me logeo alli para ver las fotos. Gracias. Hugo.
mira este proyecto, tal vez te sirva de algo

Luces policiales con pic 12f629
muy bueno, si, usaste un 555 como base de tiempo y luego el multiplexor... no recuerdo la numeracion... todavia no me deja ver las imagenes, solo los videos. Gracias. Lo bajo para tener como referencia y los voy a probar. Gracias.
 
Última edición:
Arriba