Un pin I / O digitale come terra


9

Voglio un pin I / O per restituire corrente in un circuito, in modo simile alla funzione di terra.

Quale di questi otterrà ciò di cui ho bisogno?

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

o

pinMode(pinnumber, input)

la seconda opzione pinMode(pinnumber,input)è posizionare il pin nello "terzo stato" del pin, che è anche chiamato "alta impedenza". È praticamente come se il pin non fosse collegato al circuito, come fa un ohmmetro.
zmo

"digitWrite"? Non intendi " digitalWrite "?
Peter Mortensen,

Risposte:


9

Il tuo primo frammento è la soluzione corretta.

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

Fai attenzione, puoi solo affondare fino a 6mA o 9mA per pin (secondo la documentazione [sezione "Input and Output"], non ho mai provato di più). Se hai bisogno di più corrente, usa un transistor ( questo sembra un buon esempio, devi solo invertire il pin di uscita su HIGH).

Quando il pin è configurato come input, si suppone che sia ad alta impedenza, non ciò che si desidera.


Grazie, la corrente proviene anche dai pin IO di Arduino. Pertanto, non credo che il limite di 40 mA sarà un problema.
rajat,

@rajat Stai facendo una sorta di matrice LED? Fai attenzione, supponendo di collegare (ad esempio) un LED ad alta corrente tra due pin (almeno senza un adeguato resistore di limitazione della corrente), potresti comunque danneggiare il chip. Nemmeno menzionando il caso in cui si crea un corto circuito.
FredP

È una matrice di sensori di pressione, ha 10 multiplexer 16: 1. La corrente proviene solo dal cavo USB Arduino e da nessun alimentatore esterno, pertanto non credo che l'alta corrente sarà un problema. Puoi far luce su ciò che può causare un corto circuito?
rajat,

@rajat qualcosa del genere creerebbe un corto se i pin "1" e "2" sono collegati: pinMode(pinnumber1,OUTPUT); pinMode(pinnumber2,OUTPUT); digitalWrite(pinnumber1,LOW); digitalWrite(pinnumber2,HIGH); PS: non provarlo a casa, non danneggiare innocui arduini, non farmi causa, ecc ...
FredP

2
Sono stato un po 'sorpreso dal numero 6 / 9mA. Risulta che tu sia corretto per Arduino Due, ma per gli Arduinos basati su AVR (Uno, ecc.), Che sospetto siano ancora nella stragrande maggioranza, quel numero è più simile a 40mA.
microtherion
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.