Temps de cycle (duty cycle) et fonction pulsIn()

Bonjour tout le monde :wink:

voila j'aimerais mesurer le temps de cycle (ou duty cycle) d'un signal carré d'amplitude 12V et de période d'environ 20 à 100 ms. Le temps de cycle devrait varier entre 4% et 40%.

Je souhaiterais mesurer la durée du temps de cycle à l'aide de la fonction pulsIn() : arduino.cc/en/Reference/PulseIn

Apparemment c'est possible ce qui est déjà une bonne nouvelle !

La question est : est-ce que je peux brancher directement ce signal sur une des entrées numériques de l'arduino ? vu que normalement on ne doit pas dépasser 5V ... maintenant si on regarde le temps de cycle max (40%) pour un créneau de 12 V ca fait une tension apparente de 4,8V donc ca devrait passer ...

qu'en pensez vous ?

d'avance merci :smiley:

Christophe

Bonjour,

non ça ne passe pas, un µC n'est pas une ampoule qui intègre le signal :wink:

il te faut faire un pont diviseur sinon tu vas détruire l'entrée
cf. Voltage Dividers - SparkFun Learn

R1 = 2K Ohms, R2 = 1K Ohms (ratio = 0.33) => niveau maxi en Vout = 4V

Lionel


- Distributeur officiel Arduino - Conception de shields qui défrisent

c'est bien ce qui me semblait, j'ai bien fait de demander :smiley:

encore merci pour la réponse rapide c'est cool :sunglasses:

Ah oui il y a encore quelque chose qui me turlupine :smiley:

Comment bien choisir les valeurs de résistance pour le pont diviseur ?

dans ton exemple tu met 2K et 1K, afin de respecter le facteur 0.33

pourquoi 2K et 1K et pas 20K et 10K par exemple ? :o

Dans le lien que je cite plus haut, il est écrit :

For most of our purposes, the total resistance (R1 + R2) should be between 1k Ohms and 10k Ohms. Less than that and the circuit will waste a lot of power flowing through R1 and R2 to ground. More than that and Vout may not be able to source enough current to drive an analog input.

c'est à dire :
Dans la plupart des cas, la résistance totale (R1+ R2) doit être comprise entre 1K Ohms et 10K Ohms.
En dessous, le circuit va gaspiller beaucoup d'énergie a travers R1 et R2 vers la masse.
Au dessus, Vout peux ne pas être en mesure de fournir suffisamment de courant pour alimenter une entrée analogique.

Lionel


- Distributeur officiel Arduino - Conception de shields bleus

Il faut un courant suffit pour que le convertisseur fasse son job, et sur l'arduino en plus il y a une résistance de pull-down sur les entrées analogiques (20k si je me rapelle bien). Donc si tu prends 20k, avec la 20k de pull down tu vas avoir une grosse erreur sur l'entrée (le courant que tu vas "faire rentrer" va filer en grande partie à la masse). En règle générale, pour un pont diviseur, il faut bien regarder le courant dont tu as besoin derriere.

c'est très clair, merci :wink:

pour la précision des résistances vous me conseillez quoi ?

Si c'est du signal carré tu peux prendre n'importe quoi !