Go Down

Topic: Comparaison de tension et sortie PWM (Read 1 time) previous topic - next topic

fdufnews

#5
May 21, 2012, 09:17 pm Last Edit: May 21, 2012, 09:24 pm by fdufnews Reason: 1
Quote
si la commande est à 5V et le capteur à 0V le rapport cyclique sera maximal

Code: [Select]
analogWrite(hachPin, (valCapt-valCom)/4);

Il me semble que tu fais le contraire de ce que tu dis.
Si capteur = 0 et commande=5V, la commande vaut (0-1023)/4.... le résultat est négatif.

C'est pas plutôt ça que tu veux?
Code: [Select]
analogWrite(hachPin, (valCom-valCapt)/4);

Il va sans dire que la remarque de Barbudor reste valable.

Eliam

Salut à tous,

tout d'abord merci pour vos réponses ! Vous m'avez orienté sur le serial monitor qui m'a été bien utile pour le coup (je ne connaissais pas) et qui m'a montré que ça fonctionnait en fait plutôt bien le code, avec la ligne conseillée par Barudor c'est parfait. Ce qui m'étonne c'est que l'oscillo affiche pas les tensions correspondantes aux sorties affichées par la Arduino dans le serial monitor, mais enfin ça a l'air de fonctionner quand même. J'en déduis que ça vient de mon collègue qui a mal réglé l'oscillo ^^

Par contre je n'arrive pas à bien comprendre comment fonctionne le PID que j'aimerai maintenant intégrer dans mon code, la doc ne m'aide pas trop et bizarrement si je copie-colle les codes présentés en exemple pour le PID (http://arduino.cc/playground/Code/PIDLibaryBasicExample), il agit vraiment bizarrement : à 0V en entrée, la valeur de la variable de sortie est à 255, et passé un seuil d'environ 0.7V en entrée, la sortie plonge à zéro... je ne pige pas vraiment ce qu'il se passe. Si quelqu'un maîtrise un peu le sujet, j'aimerai bien être éclairé, sinon je me débrouillerai sans !

Merci en tout cas pour votre aide.

barbudor

Attention, les tensions que tu va voir sur la sortie PWM de l'Arduino restent du 0..5V modulé en largeur d'impulsion.
Ce n'est pas une vrai sortie analogique.
Si tu as besoin d'une vrai sortie analogique, il faut utiliser après un filtre RC puis un ampli op.
Le calcul de RC va dépendre de tes besoins réactivité et bruit résiduel.
Un petit RC va régir rapidemment aux changement mais avoir plus de bruit résiduel.
Un gros RC va mieux filtrer le PWM mais ralentir la vitesse de réaction aux changements de valeur.


Pour le PID, il faut d'abord comprendre le principe et le fonctionnement théorique avant d'utiliser une LIB ou de l'implémenter soit même.
Si tu ne sais pas comment ça marche, tu feras n'importe quoi.
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

68tjs

Il y a aussi la solution : [Registre à décalage 8bits +réseau résistif R/2R].

Un exemple de réalisation avec le code arduino:
http://electro-nut.blogspot.fr/2009/08/making-12-bit-serial-dac.html

Le filtrage est plus aisé.

Go Up