Go Down

Topic: Bizzare mon arduino ??!! (Read 2154 times) previous topic - next topic

MRCpp

Quote
la 10K est trop élevée. Pour détecter des mouvements rapides il faut placer une résistance de faible valeur


Pouvez-vous me dire quelle valeur de résistance je dois utiliser ?

Parce que vous aviez raison il ne détecte pas les changements rapide.

Quote
... à une résistance de 100/150Ohms, et enfin, mettre cette résistance au GND. 


J'ai utilisé ce montage mais la tension de sortie est très faible pour être détecte par l'arduino ...

Avec mon premier montage ça marche très bien mais pour une valeur de 100 Ohms la tension de la sortie varie entre 4,9v et 4,5 au lieu de 0



fdufnews


Quote
la 10K est trop élevée. Pour détecter des mouvements rapides il faut placer une résistance de faible valeur


Pouvez-vous me dire quelle valeur de résistance je dois utiliser ?

Parce que vous aviez raison il ne détecte pas les changements rapide.


Autour des 470 ohms devrait faire l'affaire mais au vu de ta seconde question je ne suis pas certain.

Quote
... à une résistance de 100/150Ohms, et enfin, mettre cette résistance au GND. 


J'ai utilisé ce montage mais la tension de sortie est très faible pour être détectée par l'arduino ...

Avec mon premier montage ça marche très bien mais pour une valeur de 100 Ohms la tension de la sortie varie entre 4,9v et 4,5 au lieu de 0

Manifestement la sortie de ta fourche n'est pas saturée c'est pourquoi la tension ne varie pas entre 0 et +5V.
Quelle est la référence de ce composant? Cela pourrait aider à la compréhension du problème

MRCpp

Bonjour,

Quote
Quelle est la référence de ce composant?


C'est le TCST1300.

fdufnews

En regardant la datasheet du composant on voit que le transfert de courant entre l'entrée et la sortie n'est que de 2.5% au maximum.
Donc avec ton montage il passe environ 17mA dans la diode LED de la fourche. Ce qui fait que tu ne peux pas récupérer plus de 0,4mA sur le transistor de sortie. Cela explique le faible niveau lorsque la résistance est basse.

Il faudrait déjà augmenter le courant dans la LED. La doc donne 60mA maximum.
Le transfert de courant minimum est de 1.25% donc avec 60mA dans la LED au pire tu récupères 0.75mA dans le récepteur.
Pour la résistance il faudrait donc qu'elle fasse qq kOhms pour bien faire.

MRCpp

Désolé pour le retard et merci pour votre réponse,

J'ai deux résistances de 1k,donc pour une alimentation de 5v sur l'émetteur il faut ~80 Ohms pour avoir un courant de 60 mA,

Je vais faire des tests,et je vous tiens au courant,

Merci encore,

Snootlab

Bonjour,

les changements rapides n'ont rien à voir avec la résistance.
Ils dépendent de la vitesse de blocage/saturation du transistor de l'opto, et de la manière de traiter les interruptions de l'Arduino.
Pour cela, si tu dois traiter des interruptions à une fréquence élevée, je te recommande de coder ta gestion d'interruptions à la main, et de ne pas utiliser les "briques" de l'environnement Arduino.

Ensuite, si tu veux augmenter le span de tension en sortie de l'émetteur, augmente la résistance, et non le courant qui passe dans la led. En effet, 60mA est la valeur max, pas la valeur nominale.

-----
Stéphane
- Distributeur officiel Arduino - France

fdufnews

#21
May 19, 2011, 04:52 pm Last Edit: May 21, 2011, 05:29 pm by fdufnews Reason: 1
Quote
les changements rapides n'ont rien à voir avec la résistance.

Lorsque le transistor se bloque, c'est la résistance qui tire le signal en chargeant la capacité parasite présentée par la ligne et l'entrée du circuit. Plus la résistance est élevée plus le temps de monté sera long.
De même lorsque le transistor se sature, c'est son courant de collecteur qui décharge cette même capacité. Avec le même résultat. Or le courant de collecteur est lié au courant dans la LED et le rendement n'est pas bon 2,5% max pour ce composant.

Ensuite, mais c'est un autre problème pour au vu de la vitesse du moteur il va passer tout son temps à gérer des IT ce qui risque de ne pas en laisser pour faire autre chose. Il serait surement plus rentable d'utiliser l'un des timers pour compter les impulsions entrantes et batir la régulation la-dessus.

MRCpp

re Bonjour,

J'ai réussi à calculer la vitesse  :D ,merci beaucoup à vous,

Par contre des fois sur l'intervalle  de 0,2 seconde le nombre d'impulsions n'est pas fixe ça change +/- 3 à 4 voir 6 impulsions,par exemple pour une tension de 16 v (c'est le max. de mon alimentation aussi  :( ) j'ai une vitesse entre 3505 tr/min à 3495 tr/min,

Je pense que ça n'a pas d'influence pour une régulation PID qui ne touche pas les dizaines et les unités mais seulement milliers et les centaines (?)

Super_Cinci

Salut. si tu lis ma question sur le comptage d'impulsions, tu verras qu'on a le même problème de précision. Comme je l'ai expliqué dans mon topic, si tu utilises MsTimer2, tu verras qu'il n'a absolument aucune précision :0, ta fenêtre de comptage de 200ms (tiens, comme moi... XD) va varier de quelque ms en fonction de ton code de traitement.

Pour le comptage d'impulsions, je fais tourner mon INT0 (externe) jusqu'à 100KHz sans soucis (je n'en ai besoin que de 5KHz...), il te faut donc trouver le moyen d'avoir une vraie fenêtre de comptage stable, et la faire démarrer sur une impulsion sinon, tu risqueras d'en perdre une de temps en temps selon la synchro entre ton timer et tes impulsions.

Cinci

Go Up