Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Regler le timer d'une PWM
Bonjour,
Je débute un peu sur les pics et j'aimerai, pour me faire la main, à l'aide d'une PWM faire varier la luminosité d'une LED le plus lentement possible.
Pour cela je me suis dit qu'il fallait avoir la periode la plus grande possible, alors je suis allez sur la datasheet de mon pic (un 16f627) et j'ai régler le prescaler du timer2 (celui de la PWM) à 16, le maximum, puis le registre PR2 à son maximum soit 256.
J'obtiens alors une fréquence d'environ 3900 Hz.
Pourriez vous me dire si je suis bien au maximum ou si je me suis trompé ?
Merci d'avance pour votre aide :)
Je débute un peu sur les pics et j'aimerai, pour me faire la main, à l'aide d'une PWM faire varier la luminosité d'une LED le plus lentement possible.
Pour cela je me suis dit qu'il fallait avoir la periode la plus grande possible, alors je suis allez sur la datasheet de mon pic (un 16f627) et j'ai régler le prescaler du timer2 (celui de la PWM) à 16, le maximum, puis le registre PR2 à son maximum soit 256.
J'obtiens alors une fréquence d'environ 3900 Hz.
Pourriez vous me dire si je suis bien au maximum ou si je me suis trompé ?
Merci d'avance pour votre aide :)
Modifié en dernier par Asterix le ven. 27 janv. 2017 12:21, modifié 1 fois.
Regler le timer d'une PWM
Regler le timer d'une PWM
Bonjour et merci pour l'accueil :),
Sinon oui je sais que pour faire varier la luminosité il faudrait faire varier le duty cycle, en faite je voulais simplement que la periode soit la plus grande possible pour que je puisse faire varier un maximum la luminosité.
Par contre je bloque justement sur le ratio, je ne comprends pas trop comment il marche :(
Il suffit juste de régler le registre CCPR1L et les bits 5 et 4 de CCP1CON ?
On ne peut pas utiliser CCPR1H aussi ?
Et les bits de poids fort ce sont lesquels ? ceux de CCPR1L ou de CCP1CON ?
Sinon oui je sais que pour faire varier la luminosité il faudrait faire varier le duty cycle, en faite je voulais simplement que la periode soit la plus grande possible pour que je puisse faire varier un maximum la luminosité.
Par contre je bloque justement sur le ratio, je ne comprends pas trop comment il marche :(
Il suffit juste de régler le registre CCPR1L et les bits 5 et 4 de CCP1CON ?
On ne peut pas utiliser CCPR1H aussi ?
Et les bits de poids fort ce sont lesquels ? ceux de CCPR1L ou de CCP1CON ?
Regler le timer d'une PWM
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Bonjour Asterix et autres
tu utilises quel langage de programmation ASM, MikroC ,XC8 ?
si tu as une freq de 3900Hz, soit une periode de 1000/3900=0,2564 mS
le reglage PWM permet de regler le rapport cyclique de cette periode de 0 à 255
0 => 0% 255=100%
pour un allumage progressif tres lent ,il suffit de mettre un delai entre chaque
incrementation du reglage PWM pour aller de 0 à 255.
Si delay 100ms .. allumage 100% apres 25,5 sec
nota: PR2 sur 8 bits => valeur 0 à 255 maxi
unexemple en mikroC avec un 12F1840 ..mais transposable , utilise la librairie MikroC PWM
extrait:
allumage progressif d'une ampoule ..
tu utilises quel langage de programmation ASM, MikroC ,XC8 ?
si tu as une freq de 3900Hz, soit une periode de 1000/3900=0,2564 mS
le reglage PWM permet de regler le rapport cyclique de cette periode de 0 à 255
0 => 0% 255=100%
pour un allumage progressif tres lent ,il suffit de mettre un delai entre chaque
incrementation du reglage PWM pour aller de 0 à 255.
Si delay 100ms .. allumage 100% apres 25,5 sec
nota: PR2 sur 8 bits => valeur 0 à 255 maxi
unexemple en mikroC avec un 12F1840 ..mais transposable , utilise la librairie MikroC PWM
extrait:
Code : Tout sélectionner
PWM1_Init(5000); // initialize PWM1 module
PWM1_Start(); // start PWM1
for (i=0;i<255;i++)
{
PWM1_Change_Duty(i); // ou void PWMx_Set_Duty(unsigned short duty_ratio);
Delay_ms(50);
}
allumage progressif d'une ampoule ..
Regler le timer d'une PWM
Bonjour Jérémy, Asterix
Bonjour à toi, et soit le bienvenue sur le forum Fantas-PIC
Quelle est ton langage ?
La sortie se fait sur RB3, tu as qu'un seule PWM sur ton Pic16F627
Quelle est la vitesse de ton Quart, car ton PWM dépend de cela.
Le PWM c'est une fréquence fixe, on joue sur la largeur de la période, pour augmenter, ou diminuer le courant, car ta
Led ce pilote en courant, donc, prévoir cela.
Quand à la vitesse de ta fréquence cela n'a rien à voir, j'ai écrit un programme que tu peux télécharger sur Fantas-PIC
viewtopic.php?f=27&t=319 spécialement dédié pour le PWM
Maintenant si tu veux faire varier ton PWM, le plus lentement possible, c'est pas un problème, je peux t'aider
c'est très facile à mettre en œuvre
Bonjour à toi, et soit le bienvenue sur le forum Fantas-PIC
Quelle est ton langage ?
La sortie se fait sur RB3, tu as qu'un seule PWM sur ton Pic16F627
Quelle est la vitesse de ton Quart, car ton PWM dépend de cela.
Le PWM c'est une fréquence fixe, on joue sur la largeur de la période, pour augmenter, ou diminuer le courant, car ta
Led ce pilote en courant, donc, prévoir cela.
Quand à la vitesse de ta fréquence cela n'a rien à voir, j'ai écrit un programme que tu peux télécharger sur Fantas-PIC
viewtopic.php?f=27&t=319 spécialement dédié pour le PWM
Maintenant si tu veux faire varier ton PWM, le plus lentement possible, c'est pas un problème, je peux t'aider
c'est très facile à mettre en œuvre
Regler le timer d'une PWM
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
Hello tout le monde et bienvenu à Astérix.
Faudra pas piquer mon avatar ...
J'ai écrit un code pour WS2801, c'est un pilote de LED RGB pour faire varier doucement les couleurs. Faut que je recherche le source, ça doit se trouver dans un coin de DD. C'est écrit en Basic.
Faudra pas piquer mon avatar ...
J'ai écrit un code pour WS2801, c'est un pilote de LED RGB pour faire varier doucement les couleurs. Faut que je recherche le source, ça doit se trouver dans un coin de DD. C'est écrit en Basic.
Regler le timer d'une PWM
Bonjour et merci à tous pour os réponses :)
Pour ceux qui me l'ont demandé je programme en C et j'utilise un quartz de 16 Mhz.
Je crois avoir finalement réussit à faire marcher ma PWM , mais je ne crache pas sur ton programme Gerard si tu le retrouve parceque je suis en train de faire exactement la même chose !
ça me permettra de comparer les deux et surtout de voir si ce que j'ai fait est bon :)
Pour ceux qui me l'ont demandé je programme en C et j'utilise un quartz de 16 Mhz.
Je crois avoir finalement réussit à faire marcher ma PWM , mais je ne crache pas sur ton programme Gerard si tu le retrouve parceque je suis en train de faire exactement la même chose !
ça me permettra de comparer les deux et surtout de voir si ce que j'ai fait est bon :)
Regler le timer d'une PWM
Regler le timer d'une PWM
Regler le timer d'une PWM
Bonjour Jérémy, Asterix,Gérard, et bonjour tout le monde,
Pour la mise en fonction du Pwm, j'ai mis cette démonstration dans langage ASM, qui est plus juste, elle permets d'augmenter ou de
diminuer progressivement le Pwm, voici le lien viewtopic.php?f=11&t=416
A+
Pour la mise en fonction du Pwm, j'ai mis cette démonstration dans langage ASM, qui est plus juste, elle permets d'augmenter ou de
diminuer progressivement le Pwm, voici le lien viewtopic.php?f=11&t=416
A+
Modifié en dernier par Temps-x le dim. 29 janv. 2017 16:27, modifié 3 fois.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 19 invités