Autor Tema: generar pwm por software  (Leído 17483 veces)

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

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: generar pwm por software
« Respuesta #30 en: 27 de Enero de 2006, 20:38:00 »
Hola xootraoox, mi programa lo realice para que el duty-cicle este entre 0-100 pero no tiene inconvenientes en correr entre 0-255, lo realice en los valores que te comente por el echo de tener una relación de porcentaje de encendido, nada mas, con solo cambiarle un valor (el de 100 ponerlo en 255 ) dentro del programa se soluciona.

Por otro lado,50 patrones en 4K a menos que los patrones sean de 7, 8 u 9 pasos no te entrarán, saca bien la cuanta, cada paso integrante de un patrón consume 9 bytes, como harías para meter 50 patrones de un largo considerable en solo 4K de memoria y eso sin contar el programa.

Espero que tengas suerte.

Atte. CARLOS

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado xootraoox

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 248
RE: generar pwm por software
« Respuesta #31 en: 27 de Enero de 2006, 20:44:00 »
bueno quizas con un cristal de 20Mhz podria llegar a hacerlo pero el micro que estoy usando (16f874) no se lo que le pasa....no me trabaja con mas de 4Mhz se queda pegado sin hacer nada.....

ademas yo se que se puede a 4Mhz y quisiera que asi fuera ya que se me han ocurrido algunas cosas y quiero agregarselas al micro y para eso lo hare trabajar a 20Mhz pero quiero asegurarme de que a 20M me va a trabajar sin problemas el PWM, por lo que si alguien tiene ideaRollEyes de como poder hacerlo se lo agradesco de antemano......

Desconectado xootraoox

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 248
RE: generar pwm por software
« Respuesta #32 en: 27 de Enero de 2006, 20:47:00 »
Hola Chaly29 sera posible ver el programa que haz hecho tu para ver si lo puedo pasar a C??? si es posible hazmelo saber porfavor.... desde ya te lo agradesco.

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: generar pwm por software
« Respuesta #33 en: 27 de Enero de 2006, 21:22:00 »
Hola xootraoox, en este link e colocado el programa:

http://miarroba.com/foros/ver.php?foroid=348538&temaid=4133394

Como ya e explicado el programa se puede mejorar, tanto en capacidad, como en rendimiento, el código es básico para que se entienda fácil.

Por otro lado ya esta reformado para que la resolución del PWM sea de 0-255, en la tabla se encuentra un pequeño patrón de 10 pasos, se puede modificar para que ocupe todo el rengo de PWM porque en este caso solo llega asta 100.

Suerte, si necesitas ayuda házmelo saber

Atte. CARLOS





La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: generar pwm por software
« Respuesta #34 en: 28 de Enero de 2006, 00:27:00 »
Te lo he estado provando en el simulador para 255  y sin patrones, solo con el avance y retroceso de las 6 teclas (1 solo RGB) y funciona perfectamente. En principio has hecho esta prueba físicamente?

Desconectado xootraoox

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 248
RE: generar pwm por software
« Respuesta #35 en: 28 de Enero de 2006, 00:37:00 »
exacto fisicamente es como se producen los parpadeos.......   bueno eso es debido a los tiempos nada mas, ya que en estos momentos lo estoy probando a 20Mhz y se ve impecable...... de 0 -->  255 sin ningun salto raro......

lo que si se me esta haciendo un problema en estos momentos es poder trabajar con enteros de 24 bits para poder escribir cadenas RGB (255,255,255), pero para eso habrire un nuevo tema para no mezclar dos cosas y quede mas estructurado todo....

de todos modos agradezco todos los comentarios.....

Desconectado xootraoox

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 248
RE: generar pwm por software
« Respuesta #36 en: 03 de Febrero de 2006, 08:17:00 »
Bueno este es solo para mostrarles lo que he estado haciendo con el control RGB.... el cual lo voy a poder configurar desde el puerto serial..... todabia me falta bastante pero ya esta funcional al 50% se podria decir....  apenas resuelva unos problemitas que he tenido estara totalmente funcional este bicharraco


Desconectado gONzAO

  • PIC10
  • *
  • Mensajes: 38
RE: generar pwm por software
« Respuesta #37 en: 06 de Febrero de 2006, 14:17:00 »
Hola xootraoox:

Qué programa usas para programar?, y el lenguaje?

Es Visual C++ ?



Un saludo

gONzAO

Desconectado xootraoox

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 248
RE: generar pwm por software
« Respuesta #38 en: 07 de Febrero de 2006, 00:37:00 »
Hola gONzAO es solo visual basic, ya que se me complico mucho el C++ a la hora de el puerto serial es por eso que me decidi por el visual basic...

Desconectado recuperarusuario

  • PIC10
  • *
  • Mensajes: 7
Re: generar pwm por software
« Respuesta #39 en: 30 de Junio de 2006, 07:27:12 »
Bueno, aunque con meses de retardo, he querido aportar algo que funcionaría en un PIC16F84A. La frecuencia sería de unos 50 Hertz. Cuando se presiona un pulsador, la frecuencia baja unos microsegundos pero el efecto es inapreciable. Ahí va el código:

/*
 * Nombre del proyecto:
     LED multicolor
 * Autor
     jirardiyo
 * Descripción:
     LED tricolor que reproduce 256^3 colores (algo más de 16 millones)
     El color se controla con seis pulsadores
     El LED se conecta a 1, 2 y 3 del puerto A y a GND
     Los pulsadores van conectados al puerto B, patillas de 0 a 5
     El LED tricolor se puede sustuir por tres LEDs, rojo, verde y azul.
 * Diseñado para:
     MCU:           PIC16F84A
     Tarjeta:       Hay que construirla
     Oscilador:     XT, 04.0000 MHz
     Compilador:    mikroC v5.0
*/

#define rLED   PORTA.F1
#define gLED   PORTA.F2
#define bLED   PORTA.F3
#define rPulUp PORTB.F0
#define rPulDw PORTB.F1
#define gPulUp PORTB.F2
#define gPulDw PORTB.F3
#define bPulUp PORTB.F4
#define bPulDw PORTB.F5

void main() {
  unsigned char i, rValue, gValue, bValue = 0;

  PORTA = 0b00000000;            // LEDs apagados
  TRISA = 0b11110001;            // salidas: RA1 ~ RA3
  PORTB = 0b11111111;            // ningún pulsador accionado
  TRISB = 0b00111111;            // pulsadores:  RB0 ~ RB5

  while(1) {
    if(i==0) {
      if(rValue > 0) rLED = 1;
      if(gValue > 0) gLED = 1;
      if(bValue > 0) bLED = 1;
    }
    else {
      if(rValue == i) rLED = 0;
      if(gValue == i) gLED = 0;
      if(bValue == i) bLED = 0;
    }//endif(i==0)
    if(rPulUp == 0 && rValue < 254) rValue++;
    if(rPulDw == 0 && rValue >   0) rValue--;
    if(gPulUp == 0 && gValue < 254) gValue++;
    if(gPulDw == 0 && gValue >   0) gValue--;
    if(bPulUp == 0 && bValue < 254) bValue++;
    if(bPulDw == 0 && bValue >   0) bValue--;
    i++;
  }//endwhile(1)
}

la programación va un poco a lo bruto, pero así se entiende mejor.

Saludos cordiales.

Desconectado recuperarusuario

  • PIC10
  • *
  • Mensajes: 7
Re: generar pwm por software
« Respuesta #40 en: 03 de Julio de 2006, 08:48:23 »
He enconntrado una página que aborda la construcción de un montaje que viene al pelo: http://www.best-microcontroller-projects.com/rgb-led.html
Saludos cordiales.

Desconectado johnnybravo

  • PIC12
  • **
  • Mensajes: 76
Re: generar pwm por software
« Respuesta #41 en: 12 de Marzo de 2007, 22:44:41 »
saludos amigo..
ya se que es un poco tarde ..pero alguien aun tiene el codigo de nuestro amigo Charly29.. para generar el los tres PWM para el led RGB... quisiera darle un vistazo..porfa  si alguien lo tiene..pasenlo..que el enlace que nuestro amigo puso ya no funca
bueno esperare.. y gracias por todo :-/
Atte.
Johnny Bravo