Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2015-01-02 14:21:55 PureData / Arduino : Problème avec les entrées analogiques

macforsound
nouveau membre
Date d'inscription: 2014-10-21
Messages: 8

PureData / Arduino : Problème avec les entrées analogiques



Bonjour,
Je viens vers vous aujourd'hui parce que j'ai un soucis avec les entrées analogiques de l'arduino...
J'utilise Firmata. Quand je branche quelque chose sur une entrée analogique, les autres deviennent toutes folles... Par exemple si je mets une photorésistance sur A0, elle fonctionne (des fois) et les autres entrées, au lieu d'être à 0, n'en peuvent plus d'osciller constamment. Je ne comprends pas comment c'est possible, d'autant plus que si je relie plusieurs capteurs il devient difficile de dire si la mesure est correcte ou pas au vu du résultat avec un seul...

Quelqu'un a une solution ?

Et juste une info, sur Arduino, certains parlent d'utiliser les broches, habituellement de sorties, en entrée (numériques donc ?).. Qu'est-ce que je peux en faire exactement ?

Je suis à la recherche d'un moyen de mettre beaucoup d'entrées et de sorties.. J'utilise plusieurs shift registers chainés pour obtenir un grand nombre de sorties, mais je ne trouve rien concernant les entrées. Existe-t-il une alternative intéressante à l'Arduino, pilotable, elle aussi, par Pure Data ?

Merci à vous !

Et meilleurs voeux ;-)

Hors ligne

 

#2 2015-01-02 15:16:20 Re : PureData / Arduino : Problème avec les entrées analogiques

ant1r
membre
Lieu: Lille-Hellemmes
Date d'inscription: 2014-05-05
Messages: 91
Site web

Re: PureData / Arduino : Problème avec les entrées analogiques



Hello !

Si les autres entrées "flottent" et sont influencées par l'une d'elles, c'est qu'elles ne sont pas reliées à une source de tension possédant une impédance de sortie suffisamment faible (moins de 100kOhms, moins c'est mieux). Par exemple elles ne sont reliées à rien... Ou alors à une photorésistance qui serait dans l'obscurité (et qui présente alors une résistance de plusieurs MOhms).

Donc :

- soit tu ne te sers pas des autres entrées, dans ce cas, ou tu les passes en mode "sortie", ou tu les relies à la masse  (attention pas les deux à la fois !). Tu peux aussi les relier à la masse chacune par une résistance de 1kOhm, ce qui sera suffisant pour imposer un "zéro", mais qui évitera de cramer l'étage de sortie si par mégarde tu l'activais...

- soit tu te sers de ces sorties mais la source de tension que tu mesures n'a pas assez de "pêche", c-a-d a une impédance de sortie trop élevée (cas d'une photo résistance). Dans ce cas : soit tu ajoute avant chaque entrée un ampli-op monté en suiveur de tension ("buffer"), soit tu ajoute une résistance entre l'entrée et la masse ou le 5V, mais ça perturbera ta mesure ; essaye différentes valeurs (commence par 100kOhms). La solution ampli-op est la meilleure, mais demande un plus de soudures...

Sinon pour multiplier le nombre d'entrées ce qu'il te faut c'est des multiplexeurs analogiques, par exemple le 74hc4051 (8<->1):
http://www.ti.com/lit/ds/symlink/cd74hc4051-ep.pdf

ou le 74hct4067 (16<->1) :
http://www.ti.com/lit/ds/symlink/cd74hct4067-q1.pdf

A noter que ces chips font à la fois multiplexeur ou demultiplexeur, en fait ils mettent en contact la patte "commune" avec une des 8 ou 16 pattes adressables, donc ils peuvent servir à multiplier soit le nombre d'entrées soit le nombre d'entrées !

Et bonne année !

Hors ligne

 

#3 2015-01-03 23:20:10 Re : PureData / Arduino : Problème avec les entrées analogiques

macforsound
nouveau membre
Date d'inscription: 2014-10-21
Messages: 8

Re: PureData / Arduino : Problème avec les entrées analogiques



Bonjour !

Merci d'avoir répondu ! Donc en gros, je dois les relier à la masse avec une résistance d'1kOhm, ça marche. Je me demandais juste si c'était "normal".

Par contre on parle bien les entrée A0->A5 ? On peut aussi les mettre en sorties ?

Pour l'astuce de l'AOP, je connaissais pas ! Quel type d'AOP je pourrais utiliser pour faire ça ? Ca va, je n'ai pas peur des soudures ^^

Et merci pour les références pour les mutiplexeurs ! Seulement, comment se passe le démultiplexage dans Pure Data ? Est-ce bien fiable ?

Merci beaucoup !

Dernière modification par macforsound (2015-01-04 19:41:30)

Hors ligne

 

#4 2015-01-05 09:32:53 Re : PureData / Arduino : Problème avec les entrées analogiques

ant1r
membre
Lieu: Lille-Hellemmes
Date d'inscription: 2014-05-05
Messages: 91
Site web

Re: PureData / Arduino : Problème avec les entrées analogiques



Oui A0->A5 on peut les passer en sorties : http://arduino.cc/en/Tutorial/AnalogInputPins

Les AOPs : la difficulté principale c'est que la sortie d'un AOP alimenté en 0-5V ne peut pas forcément aller de 0V à 5V. Un ampli LM358 par exemple, alimenté en 0-5V peut fournir une tension de sortie entre 10mV à 3,5V. Si on veut aller plus près de 5V le plus simple est de l'alimenter par une tension plus élevée, par exemple 8V. Certains AOPs sont dits "rail-to-rail", et ont donc une tension de déchet moindre, mais ils sont plus chers.

le démultiplexage dans Pure Data : pd demande à l'arduino de modifier la valeur de certaines de ses sorties numériques qui sont branchées sur le mux, et qui sélectionnent donc une entrée donnée du mux. Ensuite, lire la valeur de l'entrée analogique, puis sélectionner une autre entrée. Effectivement il faut attendre suffisamment de temps entre la sélection et la lecture, et on n'a pas de moyen (avec Firmata) de savoir combien... C'est sans doute plus efficace d'écrire soi-même un firmware dans l'arduino (et de se passer de Firmata), qui aura une boucle plus fiable et efficace :

Dernière modification par ant1r (2015-01-05 09:33:18)

Hors ligne

 

#5 2015-01-08 09:20:12 Re : PureData / Arduino : Problème avec les entrées analogiques

macforsound
nouveau membre
Date d'inscription: 2014-10-21
Messages: 8

Re: PureData / Arduino : Problème avec les entrées analogiques



ant1r a écrit:

Effectivement il faut attendre suffisamment de temps entre la sélection et la lecture, et on n'a pas de moyen (avec Firmata) de savoir combien... C'est sans doute plus efficace d'écrire soi-même un firmware dans l'arduino (et de se passer de Firmata), qui aura une boucle plus fiable et efficace :

D'accord, mais se passer de Firmata veut aussi dire se passer de Pure Data, donc ? Ou peut être devrais-je essayer d'intégrer le code au firmata et de récupérer les valeurs via comport, ou bien tout faire passer dans comporte et ne pas utiliser Firmata...

Mon problème avec Firmata c'est que j'ai vraiment pas l'impression que ça marche des masses en lecture... Par exemple, si je prends le patch Arduino "FirmataStandard" je n'ai plus accès aux sorties. J'ai du chercher pendant des heures et des heures et surement encore d'autres heures pour trouver un programme qui fonctionne pour les entrées et les sorties.

Par exemple, j'ai branché un capteur de distance à ultrasons, impossible de récupérer la valeur via le pin11 en entrée numérique dans Pure Data.. J'ai fait un programme Arduino et ça marche très bien, mais ce qui m'intéresse, c'est de récupérer la valeur dans Pure Data x)

Hors ligne

 

#6 2015-01-08 11:36:58 Re : PureData / Arduino : Problème avec les entrées analogiques

ant1r
membre
Lieu: Lille-Hellemmes
Date d'inscription: 2014-05-05
Messages: 91
Site web

Re: PureData / Arduino : Problème avec les entrées analogiques



citation :

se passer de Firmata veut aussi dire se passer de Pure Data

non non, comme tu l'as dit tu peux discuter direct via comport ; mais c'est sûr qu'il faut passer un peu plus de temps pour y arriver.
Ceci dit, depuis Firmata tu peux normalement contrôler le mode entrée/sortie de chaque patte (pinMode). Cherche bien ça doit marcher !

citation :

j'ai branché un capteur de distance à ultrasons, impossible de récupérer la valeur via le pin11 en entrée numérique dans Pure Data

Mais le capteur, il renvoie son info de distance comment ? C'est pas du i2c, voire du rs232 ? Parce que dans ce cas ça complique un peu...

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024