Двухэтажный стенд с метеодатчиками довёл меня до разговора про рельсы. Нижний ярус макетки жил, верхний молчал: датчик на дальней половине не отвечал, светодиод индикации не горел, а код был идеален — я гонял его на второй половине макетки, куда питание приходило честно. Полчаса ушло на перепрошивку, ещё полчаса на подозрения в датчике, и только мультиметр в режиме прозвонки показал: рельса +5V разорвана посередине, и дальше точки разрыва живого напряжения нет.
Разрыв — не брак, а штатная конструкция: у больших макеток вроде BB830 (830 точек) каждая шина посередине перерезана, чтобы на одном борту держать 5 В, на другом 12 В или вторую плату. Но никто не вешает на эту перерезку табличку, и новичок часами ищет не существующую ошибку в скетче. Разберём, как устроены рельсы, где именно они рвутся, как разводить +5V и 0V с цветовым кодом, и почему мост-перемычка ставится на ОБЕИХ шинах, а не только на плюсовой — пропавший минус лечится ещё больнее, чем пропавший плюс.
Как устроены рельсы и где они рвутся
Шины питания идут вдоль длинных краёв макетки, каждая — двумя рядами лунок: внешняя помечена красной линией (+) или синей (−), внутренняя — серая, но электрически та же шина, просто удобно выводить питание в двух местах. Внутри шина соединена группами по пять лунок, а на макетках 830 точек ровно посередине стоит невидимый разрыв: если втыкать плату Arduino слева, а датчики разбросать по всей длине — правая половина обесточена. У мелких макеток на 400 точек шины обычно цельные, а у некоторых китайских — рвутся два раза. Ответ даёт только прозвонка: мультиметр в режим «звонок», один щуп в левый конец шины, второй в правый — пищит, значит цельная, молчит, значит ищи мост.
Мои правила разводки простые и выстраданные. Красный провод — только +5V, чёрный — только GND, жёлтый и синий — сигналы: это звучит банально, пока не перепутаешь полярность на линейке из трёх датчиков и не будешь искать «сгоревший» DHT22, который всего лишь был подключён наоборот. От платы к шинам идут ровно два провода — +5V и GND, дальше всё питается от рельс; тащить питание к каждому датчику отдельным проводом от пина 5V — путь к паутине и просадкам. Мост через разрыв — ДВЕ перемычки: одна на плюсе, вторая на минусе. Перемычка только на плюсе — классика жанра: датчик получает 5 В, но его GND висит в воздухе, и показания плывут или дребезжат. Общий GND нескольких источников — отдельная тема, я её уже разбирал подробно.
// Тест рельс: LED поочерёдно по каналам D2-D7, Serial дублирует.// Втыкай LED в разные концы макетки: где не мигает - там обрыв.const int PINS[] = {2, 3, 4, 5, 6, 7};const int N = 6; void setup() { Serial.begin(9600); for (int i = 0; i < N; i++) pinMode(PINS[i], OUTPUT); Serial.println("test relsov: 1 kanal v 2 sekundy");} void loop() { for (int i = 0; i < N; i++) { digitalWrite(PINS[i], HIGH); delay(100); digitalWrite(PINS[i], LOW); Serial.print("kanal D"); Serial.println(PINS[i]); delay(1900); }}Логика теста примитивная, и в этом её сила: скетч не зависит от рельс вообще — он просто дёргает пины D2-D7 по очереди, а Serial подтверждает, что код дошёл до канала. Втыкаешь светодиод с резистором 220 Ом в дальний конец макетки — не мигает, значит, проблема не в скетче и не в LED, а в доставке питания до этой точки. Проверяешь прозвонкой — находишь разрыв — кидаешь две перемычки-моста. Такой бегунок я теперь собираю первым делом на любой новой макетке, особенно с AliExpress: после двух мёртвых рядов из коробки доверяю только мультиметру.
Второй сценарий — длинные макетки с двумя платами: Arduino слева и ESP8266 справа. Тут разрыв рельс как раз полезен: каждая плата держит свою половину, а общей остаётся только земля, соединённая одним проводом. Только проверь прозвонкой, что GND-шины у твоей макетки НЕ разорваны — иначе платформы не поймут друг друга по уровням сигналов.
| Ошибка | Симптом | Лечение |
|---|---|---|
| Не заметил разрыв шины посередине (BB830 и похожие) | датчики на дальней половине мертвы, код исправен | две перемычки-моста: +5V и GND отдельно |
| Мост только на плюсе, минус рваный | питание есть, показания плывут, дребезг сигнала | проверить прозвонкой ОБЕ шины, добавить GND-мост |
| 12 В подано на рельсы, где сидят 5-вольтовые модули | дым, сгоревшие датчики | 12 В — отдельная шина или отдельная макетка |
| Питание к каждому датчику отдельным проводом от платы | паутина, просадки, глюки АЦП | от платы — два провода к шинам, дальше по рельсам |
| Перепутаны красный и чёрный | датчики не отвечают, греется стабилизатор | цветовой код: красный +5V, чёрный GND — всегда |
- 1. Датчик на дальней половине макетки BB830 не работает, код исправен. Первое действие?
- 2. Почему мост через разрыв ставят на обеих шинах, а не только на +5V?
- у макеток 830 точек шины питания разорваны посередине — это конструкция, а не брак
- мост-перемычка ставится парой: +5V и GND отдельно, минус чаще всего и забывают
- цветовой код: красный только +5V, чёрный только GND — экономит часы диагностики
- новую макетку встречают прозвонкой шин, а не первым включением
Частые вопросы по теме урока
- Датчик на дальней половине макетки BB830 не работает, код исправен. Первое действие?
- У больших макеток шины посередине разорваны конструктивно. Прозвонка мультиметром в две секунды подтверждает обрыв, а лечение — две перемычки: отдельно на плюс, отдельно на минус. прозвонить шины и поставить мосты-перемычки через разрыв
- Почему мост через разрыв ставят на обеих шинах, а не только на +5V?
- Цепь питания замыкается только через землю. Плюс дошёл, а минус оборван — датчик формально запитан, но тока нет или он идёт через паразитные пути: отсюда плавающие показания и шум. без GND-моста минус датчика висит в воздухе — показания плывут и дребезжат