Autor Tema: Iluminar escaleras de manera progresiva  (Leído 52418 veces)

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

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #15 en: 17 de Abril de 2010, 11:01:58 »
Suky, yo soy un noob de la electrónica, jejeje, me comentaron que con éste sería más que suficiente, ya que en un primer momento no sabía cuantos leds iba a usar, podían ser 5 o 15....por eso me recomendaron uno de 40 pines, pero entre uno de la gama 16f vs 18f.........sinceramente ni idea. Al menos con el siguiente código ya controlo el orden de encendido!!!
quien me iba a decir a mi que me iba a poner con esto y lo iba a sacar relativamente fácil........

Código: [Seleccionar]
#include <18F4450.h>
#fuses HS,NOWDT
#use delay( clock = 24000000 )   // Reloj  de 24 MHz
#define botonAbajo PIN_B0
#define botonArriba PIN_C0
#define led1 PIN_B1
#define led2 PIN_B2
#define led3 PIN_B3
#define led4 PIN_B4
#define led5 PIN_B5
#define led6 PIN_B6
#define led7 PIN_B7
#define ON output_high
#define OFF output_low


void main(){
   int abajo, arriba;
   int inicioAbajo = 0;
   int inicioArriba = 0;
   while (1) {
      abajo = input_state(botonAbajo);
      arriba = input_state(botonArriba);
      if ( arriba == 1 ){
         if (inicioAbajo == 0){
            inicioArriba = 1;
            ON(led7);   
            delay_ms(100);
            ON(led6);
            delay_ms(100);
            ON(led5);
            delay_ms(100);
            ON(led4);
            delay_ms(100);
            ON(led3);
            delay_ms(100);
            ON(led2);
            delay_ms(100);
            ON(led1);
         }else{
            OFF(led1);   
            delay_ms(100);
            OFF(led2);
            delay_ms(100);
            OFF(led3);   
            delay_ms(100);
            OFF(led4);   
            delay_ms(100);
            OFF(led5);   
            delay_ms(100);
            OFF(led6);   
            delay_ms(100);
            OFF(led7);
            inicioAbajo = 0;
         }
      }
      if (abajo == 1){
         if (inicioArriba == 1){
            OFF(led7);   
            delay_ms(100);
            OFF(led6);
            delay_ms(100);
            OFF(led5);   
            delay_ms(100);
            OFF(led4);   
            delay_ms(100);
            OFF(led3);   
            delay_ms(100);
            OFF(led2);   
            delay_ms(100);
            OFF(led1);
            inicioArriba = 0;
         }else{
            inicioAbajo = 1;
            ON(led1);   
            delay_ms(100);
            ON(led2);
            delay_ms(100);
            ON(led3);
            delay_ms(100);
            ON(led4);
            delay_ms(100);
            ON(led5);
            delay_ms(100);
            ON(led6);
            delay_ms(100);
            ON(led7);
         }
      }
   }
}

Referente a lo de controlarlos por intensidad en el pic, como hago eso???, ya que tengo que poner un BJT o un Mosfet para usar leds de alta luminosidad y me comentaron que la alimentación del pic al led es insuficiente.....

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #16 en: 19 de Abril de 2010, 04:57:48 »
para implementar el pwm (que aún no tengo ni idea de como hacerlo) es necesario un timer verdad???o valdría el propio del pic???Tambien me han comentado que en mi código tengo el clock a 24MHz, que para ese clock sería necesario un Xtal externo, creeis que sería necesario o simplemente bajando la frecuencia valdría???

gracias de nuevo!

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #17 en: 20 de Abril de 2010, 10:36:19 »
Puedo programar mi pic con esto??
http://es.farnell.com/microchip/dv164121/debug-kit-express-pickit2/dp/1340278

no pone nada de la familia 18f........

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Iluminar escaleras de manera progresiva
« Respuesta #18 en: 20 de Abril de 2010, 13:06:57 »
Si puedes comprate el pickit3 que es más actual y permite programar muchos más pics.

Respecto al PWM...busca en el foro, encontrarás muchisima info.

Un saludete.

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #19 en: 20 de Abril de 2010, 16:05:51 »
Vale, lo del PWM más o menos lo tengo, peeeeeeeeeeeeeeeeeeeeero, mi pic solo tiene un puerto y yo tengo que controlar varios led´s, como lo hago???si pudiera hacer eso en cada puerto en los que tengo un led no habría problemas, pero solo tengo 1  :oops:

Por cierto, he puesto un osciloscopio sobre la salida de CCP1 que es la que me hace el PWM, y cuando le doy a ejecutar se me queda piyado y me dice que la ejecución no puede seguir por exceso de carga en la CPU, que solución tiene eso???
« Última modificación: 20 de Abril de 2010, 16:21:03 por leeboy »

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Iluminar escaleras de manera progresiva
« Respuesta #20 en: 20 de Abril de 2010, 16:28:04 »
Para el PWM tendrás que multiplexarlo por SW, es decir usar los timers para PWM, sigue este enlace del compañero RedPIC, no es exactamente lo que tienes que hacer pero van por ahí los tiros.

Control Servo Timer PWM

Respecto a lo de Proteus...es debido a que tu máquina no es lo suficientemente potente para mover las simulaciones en tiempo real, eso no significa que no funcione, simplemente que no lo hace en tiempo real.

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #21 en: 20 de Abril de 2010, 16:30:56 »
Mi maquina no es potente???nose....tengo 2GB Ram, Core2Duo a 2.6.......pues si que pide no???

Voy a revisar el enlace, gracias!!

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #22 en: 23 de Abril de 2010, 18:46:27 »
Hola de nuevo, hablando e investigando he pensado en la primera modificación de mi diseño y así por lo que yo entiendo se optimiza bastante. Lista de cambios:
1º.- No tener 1 led en cada patilla, sino utilizar un decoder de 4-16 por ejemplo y controlar las salidas
2º.- En lugar de utilizar PWM por soft para controlar la intensidad usar condensadores
3º.- En lugar de un for(;;){...} de manera continua usar las propias interrupciones del pic y tenerlo en reposo para que trabaje menos

Con estas modificaciones creo que el pic iría más desahogado y podría controlar más leds, como lo veis?????

Desconectado vtasco

  • PIC12
  • **
  • Mensajes: 72
Re: Iluminar escaleras de manera progresiva
« Respuesta #23 en: 24 de Abril de 2010, 00:46:20 »
hola, a qué te refieres con no usar PWM y usar condensadores para controlar la intensidad?

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #24 en: 24 de Abril de 2010, 04:40:36 »
Me refiero a usar el tiempo de carga y descarga del condensador  para el efecto de intensidad progresivo. Para el apagado sabía que se podría usar el tiempo de descarga del condensador para que poco a poco se fuera apagando, pero para el encendido no sabía que podían funcionar igual, de esta manera tengo al PIC mucho más ocioso y no trabaja tanto.

No se si me he explicado con claridad :S

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Iluminar escaleras de manera progresiva
« Respuesta #25 en: 24 de Abril de 2010, 14:00:29 »
Hola... al empezar a leer este tema pensé lo mismo, es decir, usar capacitores. El circuito que se me ocurrió es el que presento a continuación


Adjunto también una simulación en proteus 7.2 SP6. con su .hex

Notar que sólo hice uso de un puerto del pic, pero se pueden usar todos los pines del mismo que tengamos disponibles de igual manera.
Los pulsadores simulan los sensores infrarrojos en los extremos de la escalera.
Al hacer este circuito me di cuenta de 2 cosas:
  • El circuito se amplía bastante al realizar el efecto de retardo de los led mediante hardware.
  • El valor de los capacitores es relativamente grande y depende del tipo de leds que usemos, a mayor consumo se necesita un capacitor mayor para mantener el mismo retardo.

Todo esto quizas pueda ser subsanado en parte por otra configurración de hardware, pero ésta es la mejor que se me ocurrió a mí.
Después de esta conclusión, si yo tuviese que realizar este proyecto, y no se mejora el hardware que aquí propongo, lo encararía por el lado del software con pwm. Pero también vale aclarar que se me dificultará bastante hacer el código y me llevaría bastante más tiempo también. Por eso, con todo respeto, para alguien que no tenga experiencia en programación se le va a complicar y mucho.

Saludos y éxitos para los que encaren este proyecto.
     

Desconectado leeboy

  • PIC10
  • *
  • Mensajes: 29
Re: Iluminar escaleras de manera progresiva
« Respuesta #26 en: 24 de Abril de 2010, 14:54:22 »
Hola Menta,

Si en lugar de un led por pin usamos un decodificador elevaríamos las conexiones hasta del orden de 2^30 leds. En mi caso el tema de espacio no me preocupa mucho, y la ventaja de no tener el pic trabajando como un loco en cada momento.

Intentaré probar tu diseño con hardware para ver como queda el efecto.

Muchas gracias!!!

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: Iluminar escaleras de manera progresiva
« Respuesta #27 en: 24 de Abril de 2010, 15:39:52 »
seguro... si decides hacerlo así como comentas después te detallo el código que en el mensaje anterior no anexé, sólo puse el .hex
Respecto al circuito, en efecto armalo para un led y fijate como va, ya que en la simulación es una cosa y puede diferir de la realidad. Lo que yo simulé es con un led que le fijé como parámetros 3V/20mA
Bueno, en resumen debes definir 2 cosas al menos por ahora:
  • el led a usar y así armar el circuito óptimo
  • la cantidad de escalones de la escalera (supongo que 1 led por escalón)

después hay que ver el tema tiempos, Qué demoras se deben usar. Qué pasa si el que sube/baja la escalera se arrepiente a mitad de camino y se vuelve. Qué pasa si falla un sensor. Cuál es el tiempo máximo de permanencia en la escalera y a partir de cuándo se interpreta (o se asume) como una falla, etc.

Yo no te acompaño con el proyecto "real" porque no tengo escalera dentro de mi casa, sí en el patio tengo una que sube a la terraza, pero no se justificaría. Y una razón mucho más excluyente es que no tengo ni para comprarme un led  :mrgreen:
     

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Iluminar escaleras de manera progresiva
« Respuesta #28 en: 25 de Abril de 2010, 02:14:12 »
Disculpad, pero para conseguir un efecto de encendido o apagado progresivo de los leds no se hace con condensadores, sino mediante la modificación del % duty del PWM.


Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Iluminar escaleras de manera progresiva
« Respuesta #29 en: 25 de Abril de 2010, 04:02:17 »
Citar
Disculpad, pero para conseguir un efecto de encendido o apagado progresivo de los leds no se hace con condensadores, sino mediante la modificación del % duty del PWM.

Citar
Para el PWM tendrás que multiplexarlo por SW, es decir usar los timers para PWM, sigue este enlace del compañero RedPIC, no es exactamente lo que tienes que hacer pero van por ahí los tiros.

Control Servo Timer PWM

Respecto a lo de Proteus...es debido a que tu máquina no es lo suficientemente potente para mover las simulaciones en tiempo real, eso no significa que no funcione, simplemente que no lo hace en tiempo real.

Lo veo más óptimo y más barato, hacer esto del PWM con el PIC, incluso de esta forma con el PWM el pic va a estar muy ocioso, ya que lo único que hará es comparar variables auxiliares cada vez que se desbordan los temporizadores. Pero si es cierto que para alguien que no sabe programar muy bien en PICs le es más fácil lo otro...



 

anything