GND — общий провод
Почему «5 вольт» — это всегда про две точки, зачем на схеме столько значков «земля» и почему две Arduino не разговаривают друг с другом, пока не соединишь их GND. Внутри две живые картинки: ноль переезжает по стопке батареек, и общий провод соединяется по кнопке.
GND — общий провод
На плате написано «5 В». Пять вольт — между чем и чем? Вопрос кажется глупым ровно до того момента, когда собираешь первую схему из двух частей и она не работает.
Нулевой этаж
Сказать «третий этаж» можно только потому, что все договорились, где первый. Скажешь «эта комната выше» — тебя честно спросят: выше чего?
С напряжением так же. Из первой статьи: напряжение всегда между двумя точками, как разница высот. Значит, у любой схемы должна быть точка, от которой считают всё остальное. Её называют GND (от английского ground, «земля»), по-русски — общий провод.
Ничего волшебного в этой точке нет: это договорённость. «На выводе 5 вольт» — короткая запись фразы «между этим выводом и GND 5 вольт». Ноль можно назначить и в другом месте: показания приборов изменятся, а работа схемы — нет. Проверь сам.
Живая картинка — появится, когда загрузится страница.
Общий провод — обратная дорога для всех
Ток течёт по замкнутому кругу: у каждого потребителя есть путь «туда» — свой провод от платы — и путь «обратно». Так вот обратный путь у всех общий, отсюда и название.
Это как коридор в школе: у каждого класса своя дверь, а коридор, по которому все выходят, один. Отсюда правило, которое сильно упрощает жизнь при сборке: проводов всегда на один меньше, чем кажется — общий не тянут отдельно к каждой детали, к нему просто присоединяются.
Почему на схеме столько значков «земля»
Открой любую схему в лаборатории: значок земли встречается там четыре-пять раз, а проводов между ними не нарисовано. Это не четыре разные земли — это одна цепь. Значок означает «сюда же», и рисуют его так ради читаемости: иначе через всю схему тянулись бы длинные линии и пересечения.
Тем же приёмом работают метки цепей (+5В, GND) в нашей лаборатории: одинаковые имена — это одно соединение, хоть провод и не нарисован. Хочешь убедиться — поставь в лаборатории вольтметр между двумя значками земли: он покажет ноль, потому что это одна и та же точка.
Главная ошибка: забыли соединить земли
А теперь то, ради чего написана вся статья.
Ситуация: датчик (или вторая плата) питается от своего источника, а с Arduino соединён одним сигнальным проводом. Программы правильные, провод на месте — и ничего не работает.
- По-нашему, про этажи: у двух половин разные нулевые этажи. Одна сообщает высоту от своего подвала, вторая меряет от своего — числа несравнимы.
- По-физически: току сигнала некуда возвращаться. Круг не замкнут, тока нет, а значит, и напряжения на входе не появится.
Соединяешь два устройства сигналом — соедини и общий провод. Всегда, даже если «оно вроде и так работает».
Живая картинка — появится, когда загрузится страница.
Разбор: две Arduino разговаривают друг с другом
Самый частый случай на кружке: робот из двух плат или обмен с напарником. Плата А питается от ноутбука по USB, плата Б — от своей батарейки. Задача простая: на плате А нажали кнопку — на плате Б загорелся светодиод. Между платами тянут один провод: D8 платы А → D2 платы Б.
Что происходит. Кнопку жмут, а светодиод живёт своей жизнью: то не реагирует совсем, то мигает сам по себе. И обе программы при этом правильные.
Почему. Плата Б не умеет мерить «вольты вообще». Она сравнивает напряжение на D2 со своим GND: выше половины питания — HIGH, ниже — LOW. Плата А выдаёт свои 5 вольт относительно своего GND. Пока нули не соединены, эти два «относительно» друг о друге не знают. И обратной дороги у тока тоже нет: из D8 он должен дойти до входа платы Б и вернуться в плату А, а возвращаться ему некуда.
Живая картинка — появится, когда загрузится страница.
Лечение — один провод. Соединяем GND платы А с GND платы Б. Два провода вместо одного, зато теперь всё честно: сигнальный несёт сигнал, общий даёт точку отсчёта и обратный путь.
То же правило в знакомом виде. Когда платы обмениваются словами по Serial, между ними тянут три провода: TX → RX, RX → TX и GND ↔ GND. Третий новички считают лишним — а это ровно та же общая точка отсчёта. Если проводов данных два, всего их три.
Осторожно. Соединять между платами нужно только GND. Выводы
5Vдвух плат, у каждой из которых уже есть своё питание, соединять нельзя: два источника начнут спорить, кто главный, и потечёт ток, на который никто не рассчитывал провода. Правило короткое: земли — вместе, питания — врозь.
Земля на плате и заземление в розетке — разные вещи
Названия похожи, назначение разное. GND на плате — просто точка отсчёта схемы, и с землёй под ногами она обычно никак не связана: у схемы с батарейкой «земля» не касается земли ни в каком смысле. А заземление в доме — это защита от удара током: отдельный провод к настоящему контуру в грунте.
И прямым текстом: розетка и 220 вольт — не место для опытов. Всё, о чём говорит этот курс, живёт на батарейках и пяти вольтах.
Где аналогия ломается
«Нулевой этаж» не объясняет, почему общий провод стараются делать толстым и коротким. А причина простая, и она из первой статьи: по общему проводу тоже течёт ток, а у провода есть сопротивление — значит, на нём есть падение напряжения. На длинном тонком проводе «ноль» в разных точках слегка разный, и от этого мигают светодиоды и дребезжат датчики в самодельных конструкциях.
И ещё: общим проводом бывает не провод. В автомобиле минус аккумулятора соединён с кузовом, и обратный провод к лампе просто не нужен — его роль играет весь металл машины. Поэтому в уровнях про блок управления двигателем ты встретишь слово «масса»: это тот же самый общий провод.
Памятка
- Вольты всегда между двумя точками. GND — та точка, от которой считают.
- Общий провод — обратная дорога для всех, он один на всю схему.
- Соединяешь устройства сигналом — соединяй и общий провод.
- GND платы — не заземление в розетке.