Как использовать цифровой pin в качестве заземления?

Я недавно купил arduino nano. У него есть только два заземляющих контакта, но мне нужно было три для моего проекта. Есть ли способ использовать цифровой или аналоговый контакт в качестве GND контакта? Пожалуйста, покажите мне, как это сделать

, 👍5

Обсуждение

земля только одна. соедините каждый провод заземления с одним штырем заземления, @Juraj

Будьте осторожны с использованием GPIO в качестве приемников GND.. Контакт ввода-вывода может потопить только столько тока. Для GPIO банка, 100 мА макс, один PIN рекомендуется 20 мА (https://playground.arduino.cc/Main/ArduinoPinCurrentLimitations). Я бы подключился непосредственно к основному GND (от источника питания). Припаяйте еще несколько проводов, если нужно., @Maximilian Gerhardt


3 ответа


4

Нет необходимости разделять основания, вы можете соединить все основания вместе. На самом деле они соединены вместе на самой плате.

,

6

Если ваш проект находится на макете, вы можете использовать одну из "направляющих", как правило, синий лонгвейс, расположенных по обе стороны макета, чтобы собрать все необходимые основания и подключить их к одному заземляющему контакту на Arduino.

Если вы создаете печатную плату для подключения к Arduino, сделайте то же самое - соберите все основания печатной платы вместе и подключите их к одному заземляющему контакту Arduino.

Если вы используете изготовленный щит, вам, возможно, придется проявить творческий подход к сбору своих оснований. Макетная плата это один из способов. Другой способ заключается в том, чтобы спаять несколько проводов вместе в звездообразовании, изолировать паяльное соединение лентой или термоусадочной трубкой и соединить одну из точек звезды с землей Arduino.

Если некоторые из ваших устройств, нуждающихся в заземлении, являются устройствами с низким током, такими как светодиоды, вы можете установить неиспользуемый вывод в режим ВЫВОДА и НИЗКИЙ, и использовать его в качестве заземления, но устройство не должно пропускать больше тока, чем может пропускать драйвер Arduino pin. Из спецификации Atmel для ATmega328P (используется в Uno):

Хотя каждый порт ввода/вывода может погружаться больше, чем в условиях испытаний (20 мА при VCC = 5 В, 10 мА при VCC = 3 В) в стационарных условиях (нестационарный), необходимо соблюдать следующее:

ATmega48A/PA/88A/PA/168A/PA/328/P: 1] Сумма всех IOL для портов C0 - C5, ADC7, ADC6 не должна превышать 100 мА.

2] Сумма всех IOL для портов B0 - B5, D5 - D7, XTAL1, XTAL2 не должна превышать 100 мА.

3] Сумма всех IOL для портов D0 - D4, СБРОС не должен превышать 100 мА.

Если IOL превышает условия испытания, VOL может превышать соответствующую спецификацию. На выводах не гарантируется пропускание тока, превышающего указанное условие испытания.

,

1

Вы можете просто попробовать преобразовать два цифровых контакта в 5V VCC и заземление. Это будет полезно, когда мы используем несколько датчиков.

#define VCC2 5 // define pin 5 или любой другой цифровой pin здесь как VCC2
#define GND2 2 // define pin 2 или любой другой цифровой вывод в качестве Ground 2

void setup() {
  pinMode(VCC2,OUTPUT);//определите цифровой вывод как output
  digitalWrite(VCC2, HIGH);// установите вышеуказанный вывод как ВЫСОКИЙ, чтобы он действовал как 5V

  pinMode(GND2,OUTPUT);//определите цифровой вывод как output
  digitalWrite(GND2, LOW);// установите вышеуказанный вывод как НИЗКИЙ, чтобы он действовал как заземление
}

void loop() {
}
,

Я не уверен, что рекомендовал бы это, но если вы собираетесь это сделать, вы должны знать, что доступный ток будет очень ограничен, что будет сильно зависеть от используемого Arduino или, скорее, его микроконтроллера. Вы можете разрешить до 40 мА, но также, возможно, только 4 мА. И что ваш новый "VCC" будет дрейфовать к земле по мере того, как вы будете потреблять больше тока. Аналогично с повышением "GND" в сторону VCC. Они могут начинаться не так близко к VCC и GND платы, как вам нравится, так как они не предназначены для этой цели, а только для создания логических уровней., @timemage

Это может быть полезно, если вам нужно включить/выключить датчик во время работы, но, как сказал timemage, это не рекомендуется. Использование транзистора, управляемого выводом Arduino, намного лучше., @Sacha