Une broche d'E / S numérique comme masse


9

Je veux qu'une broche d'E / S renvoie le courant dans un circuit, de manière similaire à la fonction de la masse.

Lequel de ces objectifs permettra d'atteindre ce dont j'ai besoin?

pinMode(pinnumber, OUTPUT)
digitalWrite(pinnumber, LOW)

ou

pinMode(pinnumber, input)

votre deuxième option pinMode(pinnumber,input)consiste à placer la broche dans le "troisième état" de la broche, également appelée "haute impédance". C'est comme si la broche n'était pas connectée au circuit, comme le fait un ohmmètre.
zmo

"digitWrite"? Vous ne voulez pas dire " digitalWrite "?
Peter Mortensen

Réponses:


9

Votre premier extrait est la bonne solution.

pinMode(pinnumber,OUTPUT)
digitalWrite(pinnumber,LOW)

Attention cependant, vous ne pouvez descendre que jusqu'à 6mA ou 9mA par broche (selon la documentation [section "Input and Output"], je n'ai jamais essayé plus). Si vous avez besoin de plus de courant, utilisez un transistor ( cela ressemble à un bon exemple, il vous suffit d'inverser la broche de sortie HIGH).

Lorsque la broche est configurée en entrée, elle est censée être à haute impédance, pas ce que vous voulez.


Merci, le courant provient également des broches IO d'Arduino. Par conséquent, je ne pense pas que la limite de 40 mA soit un problème.
Rajat

@rajat Faire une sorte de matrice LED? Soyez prudent, en supposant que vous branchez (par exemple) une LED à courant élevé entre deux broches (au moins sans une résistance de limitation de courant appropriée), vous pourriez toujours endommager la puce. Sans même mentionner le cas où vous créez un court-circuit.
FredP

Il s'agit d'une matrice de capteurs de pression, elle dispose de 10 multiplexeurs 16: 1. Le courant ne provient que du câble USB Arduino et pas d'alimentation externe.Par conséquent, je ne pense pas que le courant élevé sera un problème. Pouvez-vous nous éclairer sur ce qui peut éventuellement provoquer un court-circuit?
rajat

@rajat quelque chose comme ça créerait un court si les broches "1" et "2" sont connectées: pinMode(pinnumber1,OUTPUT); pinMode(pinnumber2,OUTPUT); digitalWrite(pinnumber1,LOW); digitalWrite(pinnumber2,HIGH); PS: n'essayez pas cela à la maison, ne faites pas de mal aux arduini innocents, ne me poursuivez pas, etc ...
FredP

2
J'ai été un peu surpris par le nombre 6 / 9mA. Il s'avère que vous avez raison pour l'Arduino Due, mais pour les Arduinos basés sur AVR (Uno, etc.), que je soupçonne être encore dans la grande majorité, ce nombre ressemble plus à 40mA.
microtherion
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.