Entrar
¿Nuevo usuario? Inscribirme
electronica_desaplicada · Electrónica Desaplicada
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés cambiar el orden de los mensajes. Simplemente hacé clic en el enlace de columna fecha. Tus preferencias se guardarán, por lo tanto no necesitarás hacerlo otra vez cuando vuelvas a entrar.

Mensajes

  Mensajes Ayuda
Avanzado
PIC12F675 PWM   Lista de mensajes  
Responder | Reenviar Mensaje #6321 de 6443 |
RE: [E_Desaplicada] PIC12F675 PWM

El problema que tenés es que cada vez que se queda esperando por la pulsación de un botón se queda ahí y deja de pasar por las dos líneas. Si estás haciendo esto (detenerte en un punto del bucle principal), te conviene usar interrupciones.

Otra cosa a tener en cuenta es que no se debe poner 1 milisegundo de retardo porque sino cada ciclo del PWM tardará 256 milisegundos… o sea 1 cuarto de segundo, lo que se verá como un parpadeo. Definitivamente, te recomiendo ver de poner esas dos líneas en una rutina de interrupción (es lo más sencillo).

 


De: electronica_desaplicada@... [mailto:electronica_desaplicada@...] En nombre de Pablo Guillermo LOZANO
Enviado el: Sábado, 20 de Septiembre de 2008 01:17
Para: electronica_desaplicada@...
Asunto: Re: [E_Desaplicada] PIC12F675 PWM

 

Mirko
He incertado las líneas que me has recomndado, pero no logro hacer que cada vez que accione el pulsador NA conectado a GP3 (el led esta en GP1) aumente el brillo. Si eres tan amable de mirar el fragmento del programa principal que lo pongo a continuación:

void main()
{
char brillo;
char cuentabrillo;
unsigned char cnt;// contador
init ();//descativa comparadores y conversores ad

// Incialización
brillo = 255;
cuentabrillo = 0;

while ( TRUE ) //loop que hace que el programa se ejecute continuamente
{
         // PWM LED en GP1
        if (cuentabrillo++ == 0) output_high( GP1 ); //enciende LED
        if (brillo == cuentabrillo) output_low( GP1 ); //apaga LED

        // Incrementa brillo cada vez que se ppulsa en GP3
        for (cnt = 0; cnt <= 10; cnt++)
            {
            delay_ms(1);
            if (input(GP3) == 1)
                cnt = 0;
            }
         brillo++;
        for (cnt = 0; cnt <= 10; cnt++)
            {
            delay_ms(1);
            if (input(GP3) == 0)
                cnt = 0;
            }
}
}

Muchas gracias
Pablo

El día 18/09/08, Mirko Serra <mirkoserra@...> escribió:

 

Tenés que declarar una variable:

 

char brillo, cuentabrillo;

 

Y luego en el bucle del programa principal o en una función de interrupción (la de algún timer) incluir estas dos líneas:

 

if (cuentabrillo++==0) PIN = 1;    // Incrementa la cuenta, pone el pin en 1 cuando se alcanza el 0.

if (brillo==cuentabrillo) PIN = 0; // Cuando la cuenta llega al valor deseado, cambia el pin a 0 nuevamente.

 

Donde PIN es, por ejemplo GP0. Si vas a referir el LED a VCC en lugar de a masa, deberías cambiar 0 por 1 y viceversa para que cuanto más grande sea brillo más brillante esté el LED. Luego, cambiando la variable brillo, el brillo del LED será distinto.

 

Tené en cuenta que la luminosidad percibida es logarítmica (por cómo funciona el ojo), así que poniendo primero 128 en brillo y 255 luego, el LED dará el doble de luz, aunque tu ojo va a ver un aumento del 30%.

 

Aún con el PWM, es necesario el uso de un resistor en serie y un capacitor (el capacitor es opcional en el caso del LED).

 

 

-----Mensaje original-----
De: electronica_desaplicada@... [mailto:electronica_desaplicada@...] En nombre de plozano74
Enviado el: Jueves, 18 de Septiembre de 2008 22:24
Para: electronica_desaplicada@...
Asunto: [E_Desaplicada] PIC12F675 PWM

 

Estimandos co-listeros:

Estoy aprendiendo a usar el PIC12f675 programandolo en C con el

compilador de CCS.

Necesito generar una señal de PWM para encender un led y variar su brillo.

Les quería pedir ayuda si alguine ha realizado algo similar si puede

darme una mano con el código, pues este microcontrolador no cuenta con

modulo PWM, y se debe implementar en forma tradicional.

Saludos

Pablo

 

 

------------------------------------

 

*************************************************************

Direcciones Útiles:

Envió de mensajes: electronica_desaplicada@...

Subscribirse: electronica_desaplicada-subscribe@...

Desuscribirse: electronica_desaplicada-unsubscribe@...

Mensaje al Owner: electronica_desaplicada-owner@...

Para recibir ayuda: electronica_desaplicada-ayuda@...

Resumen diario: electronica_desaplicada-digest@...

Cancelar resumen diario: electronica_desaplicada-normal@...

Solo acceso Web: electronica_desaplicada-nomail@...

Pagina en Yahoo!: http://ar.groups.yahoo.com/group/electronica_desaplicada

*************************************************************

 

Enlaces a Yahoo! Grupos

 

<*> Para visitar tu grupo en la web, ve a:

    http://ar.groups.yahoo.com/group/electronica_desaplicada/

 

<*> La configuración de tu correo:

    Mensajes individuales  | Tradicional

 

<*> Para modificar la configuración desde la Web, visita:

    http://ar.groups.yahoo.com/group/electronica_desaplicada/join

    (ID de Yahoo! obligatoria)

 

<*> Para modificar la configuración mediante el correo:

    mailto:electronica_desaplicada-digest@...

    mailto:electronica_desaplicada-fullfeatured@...

 

<*> Para cancelar tu suscripción en este grupo, envía

    un mensaje en blanco a:

    electronica_desaplicada-unsubscribe@...

 

<*> El uso que hagas de Yahoo! Grupos está sujeto a

    las Condiciones del servicio de Yahoo!:

    http://ar.docs.yahoo.com/info/utos.html




Dom, 21 de Sep, 2008 5:33 am

mirkoserra
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #6321 de 6443 |
Desplegar mensajes Autor Ordenar por fecha

Estimandos co-listeros: Estoy aprendiendo a usar el PIC12f675 programandolo en C con el compilador de CCS. Necesito generar una señal de PWM para encender un...
plozano74
Sin conexión Enviar correo
19 de Sep, 2008
1:23 am

Tenés que declarar una variable: char brillo, cuentabrillo; Y luego en el bucle del programa principal o en una función de interrupción (la de algún timer)...
Mirko Serra
mirkoserra
Sin conexión Enviar correo
19 de Sep, 2008
2:00 am

Mirko He incertado las líneas que me has recomndado, pero no logro hacer que cada vez que accione el pulsador NA conectado a GP3 (el led esta en GP1) aumente ...
Pablo Guillermo LOZANO
plozano74
Sin conexión Enviar correo
20 de Sep, 2008
4:16 am

El problema que tenés es que cada vez que se queda esperando por la pulsación de un botón se queda ahí y deja de pasar por las dos líneas. Si estás...
Mirko Serra
mirkoserra
Sin conexión Enviar correo
21 de Sep, 2008
5:33 am

Buen día alguien me puede dar una mano, necesito hacer una fuente de corriente regulable, pero el problema es que debe ser de corriente alterna 50 Hz, A...
correo buffer
correo_buffer@...
Enviar correo
16 de Oct, 2008
2:31 pm

Marcelo, conceptualmente lo que haría sería de alguna manera, ó bien digital ó analógico, medir el valor medio de módulo ó valor eficaz de la corriente,...
Mauricio M. Pagano
mauriciopagano
Sin conexión Enviar correo
16 de Oct, 2008
7:28 pm

Mauricio. El problema de usar ese metodo es q no poseo una forma de onda senoidal. Yo necesitari q la forma de onda siga siendo senoidal. Gracias igualmente...
correo buffer
correo_buffer@...
Enviar correo
16 de Oct, 2008
7:54 pm

De qué valores de corriente estamos hablando?. La frecuencia sería la de la red?.   Cuál sería la máxima tensión que caería sobre la carga?. Por...
Daniel Ricardo Perez
danyperez1
Sin conexión Enviar correo
16 de Oct, 2008
8:30 pm

Los valores de corriente serian como mucho 5A y la tensión unos pocos Volts y si la frecuencia seria la de red. Gracias Marcelo From: Daniel Ricardo Perez ...
Marcelo A. Varela
correo_buffer@...
Enviar correo
17 de Oct, 2008
1:19 am

Ok, entonces sí es razonable partir de un amplificador de audio modificado: - Uno de 100W sobre 4 ohm te da 5A eficaces, 20V eficaces = 56,6V pico a pico. -...
Daniel Ricardo Perez
danyperez1
Sin conexión Enviar correo
19 de Oct, 2008
4:26 pm

esos e llama estabilizador: autotrafo + control de seleccion de salidas y logras lo requerido. unos cuantos quilitos, eso si, pero es todo lo lineal que...
Fernando Basurto
fernandob_mail
Sin conexión Enviar correo
17 de Oct, 2008
1:46 am

Colegas: Les queria pedir, si es posible, si pueden aportar datos o de donde puedo recavar informacion, para armar un trabajo sobre Antenas Helicoidales. ...
Christian Squadrito
krisqua76
Sin conexión Enviar correo
18 de Oct, 2008
1:12 am

JD Krauss, Electromagnetismo. 1986 JD Krauss, Antenas . 1988 JD Krauss, IEEE Transaction on Antena Propagation .1980 vol AP-25 pag 913 H.E. King y J.L. Won ...
micropropulsor
Sin conexión Enviar correo
18 de Oct, 2008
12:29 pm
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda