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 ---
Forum général sur le langage C !

Modérateur : Jérémy

Regler le timer d'une PWM
Asterix
Membre
Membre
Messages : 18
Âge : 27
Enregistré en : janvier 2017

#1 Message par Asterix » ven. 27 janv. 2017 11:50 lien vers la Data-Sheet : Cliquez ici

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 :)
Modifié en dernier par Asterix le ven. 27 janv. 2017 12:21, modifié 1 fois.

Regler le timer d'une PWM
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#2 Message par Jérémy » ven. 27 janv. 2017 12:14 lien vers la Data-Sheet : Cliquez ici

Bonjour et bienvenu sur le Forum Fantas-PIC ,

 ! Message de modération :
Merci de mettre le lien de la DS pour obtenir un maximum d'aide ! Lien sur la procédure


A mon avis pour la luminosité ce n'est pas la période qu'il faut varier mais le ratio de ta PWM!
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Regler le timer d'une PWM
Asterix
Membre
Membre
Messages : 18
Âge : 27
Enregistré en : janvier 2017

#3 Message par Asterix » ven. 27 janv. 2017 12:30 lien vers la Data-Sheet : Cliquez ici

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 ?

Regler le timer d'une PWM
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#4 Message par paulfjujo » ven. 27 janv. 2017 13:52 lien vers la Data-Sheet : Cliquez ici

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:

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 ..
Aide toi, le ciel ou FantasPic t'aidera

Regler le timer d'une PWM
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » ven. 27 janv. 2017 13:53 lien vers la Data-Sheet : Cliquez ici

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 :wink:
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Regler le timer d'une PWM
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1644
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#6 Message par Gérard » ven. 27 janv. 2017 15:34 lien vers la Data-Sheet : Cliquez ici

Hello tout le monde et bienvenu à Astérix.
Faudra pas piquer mon avatar ... humour!!

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.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Regler le timer d'une PWM
Asterix
Membre
Membre
Messages : 18
Âge : 27
Enregistré en : janvier 2017

#7 Message par Asterix » ven. 27 janv. 2017 22:32 lien vers la Data-Sheet : Cliquez ici

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 :)

Regler le timer d'une PWM
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1644
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#8 Message par Gérard » sam. 28 janv. 2017 15:45 lien vers la Data-Sheet : Cliquez ici

Je te cherche ça la semaine prochaine, WE chargé.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Regler le timer d'une PWM
Asterix
Membre
Membre
Messages : 18
Âge : 27
Enregistré en : janvier 2017

#9 Message par Asterix » sam. 28 janv. 2017 22:39 lien vers la Data-Sheet : Cliquez ici

ok, merci pour ton aide !

Regler le timer d'une PWM
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2616
Enregistré en : juillet 2016
Localisation : Terre

#10 Message par Temps-x » dim. 29 janv. 2017 04:36 lien vers la Data-Sheet : Cliquez ici

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+
Modifié en dernier par Temps-x le dim. 29 janv. 2017 16:27, modifié 3 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 19 invités