Скетч пропускает ОТКРЫТЫЕ входы Arduino

Люди, Я новичок в Arduino. У меня есть скетч, который проверяет набор входных данных на ВЫСОКИЙ или НИЗКИЙ уровень с помощью цикла 'for'. Когда цикл for достигает ВХОДА, который остается ОТКРЫТЫМ (к нему не подключены провода), цикл for, по-видимому, "пропускает" этот ВХОД и переходит к следующему. Однако, если у меня есть + 5 В, подключенный к любым ВХОДАМ в пределах диапазона цикла for, он работает правильно. Есть какие-нибудь мысли о том, что здесь происходит?

, 👍2

Обсуждение

вероятно , плохое программирование ... arduino будет делать именно то, что вы ему скажете, поэтому вы даете ему неправильные инструкции, @jsotola

Вы можете отредактировать свой код в вопросе, если хотите попытаться получить более конкретный ответ., @timemage


1 ответ


2

Вы всегда должны подключать что-то к входу, чтобы выводить его на высокий или низкий уровень при отсутствии сигнала. Самое простое - активировать встроенный подтягивающий резистор, что приведет к возврату высокого значения на входе, когда ничего не подключено. Если это несовместимо с вашим конкретным использованием, добавьте резистор от входа к земле (10k-100k подойдет), чтобы он возвращал НИЗКИЙ уровень, когда больше ничего не подключено. Если входной сигнал просто плавающий, он восприимчив к шуму, вызывающему случайные изменения состояния. Входное сопротивление очень высокое (100 Мегабайт), поэтому он может улавливать помехи и другие помехи.

,

Большое спасибо. Я буду избегать плавающих входных данных., @Ranjith