Цифровой вывод ввода / вывода в качестве заземления


9

Я хочу, чтобы вывод ввода / вывода возвращал ток в цепи, аналогично функции заземления.

Что из этого достигнет того, что мне нужно?

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

или

pinMode(pinnumber, input)

Ваш второй вариант pinMode(pinnumber,input)- поместить штифт в «третье состояние» штифта, которое также называется «высокая импедансность». Это в основном, как если бы контакт не был подключен к цепи, как омметр.
Zmo

"digitWrite"? Разве вы не имеете в виду « digitalWrite »?
Питер Мортенсен

Ответы:


9

Ваш первый фрагмент - правильное решение.

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

Будьте осторожны, вы можете потреблять только 6 мА или 9 мА на контакт (согласно документации [раздел «Вход и выход»], я никогда не пробовал больше). Если вам нужно больше тока, используйте транзистор ( это выглядит как хороший пример, вам просто нужно повернуть выходной контакт на HIGH).

Когда вывод настроен как вход, предполагается, что это высокий импеданс, а не то, что вы хотите.


Спасибо, ток также исходит от выводов ввода-вывода Arduino. Поэтому я не думаю, что ограничение 40 мА будет проблемой.
Раджат

@rajat Делаете какие-то светодиодные матрицы? Будьте осторожны, если вы подключите (например) светодиод высокого тока между двумя контактами (по крайней мере, без соответствующего ограничителя тока), вы все равно можете повредить микросхему. Даже не говоря о случае, когда вы создаете короткое замыкание.
FredP

Это матрица датчика давления, она имеет 10 мультиплексоров 16: 1. Ток поступает только от USB-кабеля Arduino и без внешнего источника питания. Поэтому я не думаю, что большой ток будет проблемой. Можете ли вы пролить свет на то, что может вызвать короткое замыкание?
Раджат

@rajat что-то подобное создаст короткое замыкание, если контакты «1» и «2» соединены: pinMode(pinnumber1,OUTPUT); pinMode(pinnumber2,OUTPUT); digitalWrite(pinnumber1,LOW); digitalWrite(pinnumber2,HIGH); PS: не пытайтесь делать это дома, не вредите невинным arduini, не предъявляйте мне иск и т.д. ...
FredP

2
Я был немного удивлен числом 6 / 9mA. Оказывается, вы подходите для Arduino Due, но для Arduinos на базе AVR (Uno и т. Д.), Которые, я подозреваю, до сих пор составляют подавляющее большинство, это число больше похоже на 40 мА.
микротерион
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.