Est ce que quelqu'un pourrait m'éclairer... Je voudrais savoir s'il serait possible de générer à partir d'arduino un signa de fréquence précis au 100ème.
Je voudrais générer les fréquence 7.38, 15.66, 31.32, 62.64, 125.28, 250.56, 501.12, 1002.24
J'ai déjà utilisé les PWM pour contrôler la vitesse d'un moteur mais je ne pense pas pouvoir les utiliser pour cette application ? Sinon comment je peux solutionner mon problème ? derrière je veux piloter un vibreur linéaire comme ceux installés dans les phones. Ces fréquences sont des fréquences de Diapason. Je voudrais voir s'il est possible d'obtenir une vibration similaire à un diapason mais constante.
Vous remerciant...
Bonjour,
avec le timer 1, à partir du quartz de 16 MHz, tu disposes :
d'un diviseur "prescaler" qui peut prendre les valeurs suivantes :
CS12 CS11 CS10 Description
0 0 0 Stop timer0
0 0 1 CK
0 1 0 CK/8
0 1 1 CK/64
1 0 0 CK/256
1 0 1 CK/1024
du compteur proprement dit, dont les régistres auto reload permettent de diviser d'une valeur comprise entre 1 et 65536
exemple de calcul empirique, en prenant le cas le + défavorable qui serait 1002.24 :
16 000 000 / 1 / 15964 = 1002.255 ; 16 000 000 / 1 / 15965 = 1002.192
-> si ce n'est pas assez précis pour toi, il faudra un mcu plus rapide
-> voici pour la précision, pour la justesse, cela dépendra aussi de celle du quartz
La meilleure solution n'est pas d'utiliser un timer, mais de positionner une sortie à l'état haut ou bas en suivant un écart en us dépendant de la fréquence voulue, dans la loop().
Je ne pense pas.
Les fonctions digitalWrite et digitalRead ne répondent pas à la même vitesse selon la pin concernée. Question précision et stabilité on fait mieux.
Dès que tu modifie le code de loop la fréquence changera, pas terrible.
De plus le temps dont tu parles est obtenu avec un timer............autant utiliser directement un timer en mode CTC.
Voir le site de Mike Gamon pour des exemples détaillés dont certains permettent d'obtenir la fréquence exacte en utilisant des modes CTC indirects.---> voir l'exemple pour obtenir 38 kHz.
les gigues imprévisibles et inquantifiables ne devraient cependant pas fausser la fréquence sur + d'une période, car la correction se fait automatiquement à la comparaison suivante ...
donc je serais plutôt d'accord avec ard_newbie
(mon réflexe d'utiliser le CTC provient d'une exigence d'avoir des signaux propres, ce qui n'est pas nécessaire ici)