Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

09/05/2011 #1

Avatar de tronik

Control de pwm con basic?
Hola como estan gente
vengo con una pregunta un poco ignorante pero nesecito ayuda
resulta que tengo un par de años programando microcontroladores en ASM
pero ya que es muy fastidioso lo deje para mudarme al basic

no recuerdo bien como generar el pwm en asm

pero eso no me importa lo que quiero es hacer el codigo en BASIC si alguien me puede hechar una mano con esto del codigo

y aora tengo un proyecto para unos letreros

lo que quiero es prender ùn led poco a poco y apagarlos igual poco a poco
tengo atraso con este trabajo y ya me fastidie con el asm
espero y me ayuden !

gracias
este es el codigo pero nose como varias los valores para prender poco a poco el led y viseversa


Frec var byte
Frec=127
inicio;

pwm portc.2,Frec,100
goto inicio;
09/05/2011 #2


En microbasic esta la instrucion "pwm_change_duty(j)" donde j es un valor de 0 a 255, creo, y con este valor ajustas el porcentaje del tiempo de encendido. si j tomas un valor que puedas incrementar o decrementar con el programa, puedes crear el efecto que buscas
09/05/2011 #3


Hola tronik si usas Pic Basic Pro la sentencia para usar PWM es
HPWM canal, duty, frecuencia
HPWM es por hardware asi que solo la puedes usar en PICs con modulo PWM, a diferencia de la sentencia PWM que es por software al usar la sentencia PWM no estas usando los modulos pwm fisicos del PIC, el valor de canal puede ser 1 o 2, la frecuencia minima que puedes usar depende del cristal consulta la ayuda, saludos espero te sirva, duty es por defecto una variable de 8 bits.

Hola tronik quia lo que quieres sea algo como esto:

define osc 4
i var byte
freq con 10000
for i=0 to 127
hpwm 1,i,freq
pause 10
next
09/05/2011 #4

Avatar de tronik

estoy usando el 16f877 que tienen el RC1 y RC2 como CCP1 y CCP2
no se si me puedan decir como empieso una instruccion con HPWM
y como defino los valores para incrementar y aumentar la intencidad de los led's
09/05/2011 #5


define osc 4 'Definiendo la frecuencia del cristal en MHZ
duty var byte
freq con 10000 ' Frecuencia de conmutacion que usaremos prueba para encontrar la mejor
Inicio:
for duty=0 to 127 ' en este bucle for incrementamos la variable duty de cero a 127
hpwm 1,duty,freq ' con lo cual se incrementara la luminosidad del led
pause 10 ' pausa entre incrementos
next
goto inicio 'a comenzar de nuevo


' para manipular la luminosidad debes de cambiar el valor de la variable duty de 0-255, en
' cero el led estara totalmente apagado y en 255 encendido con todo el voltaje tener
' cuidado con las corrientes que salgan del pic, implementar con la interface adecuada entre ' el pic y el led.
09/05/2011 #6

Avatar de tronik

jcristhian_1 eso es exactamente lo que busco simule en proteus con el pic16f870
y use tu codigo y eso es exactamento lo que busco
nose si me puedas dar un link donde buscas mas informacion acerca de esto de como variar mas el ancho de pulso yasea alto o bajo y como activar los ccp2 en caso de que trabaje con el pic16f877

gracias
09/05/2011 #7


Hola me alegra que te sirva
para usar ccp1, canal debe ser 1 y para usar ccp2 canal debe ser 2, lo demas es igual:
hpwm canal,duty,freq
consulta la propia ayuda del PBP cualquier cosa estare para responderte,
si quieres controlar el tiempo que esta en bajo seria el complemento del tiempo en alto
es decir
t_bajo=255-duty
10/05/2011 #8

Avatar de tronik

gracias jcrithian_1 me ayudaste mucho ¡ aora a entragar este proyecto ajaj
13/05/2012 #9


Che no podrias subir el programa echo con la simulacion, me haria mucha falta gracias!
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.