Скетч пропускает ОТКРЫТЫЕ входы Arduino
Люди, Я новичок в Arduino. У меня есть скетч, который проверяет набор входных данных на ВЫСОКИЙ или НИЗКИЙ уровень с помощью цикла 'for'. Когда цикл for достигает ВХОДА, который остается ОТКРЫТЫМ (к нему не подключены провода), цикл for, по-видимому, "пропускает" этот ВХОД и переходит к следующему. Однако, если у меня есть + 5 В, подключенный к любым ВХОДАМ в пределах диапазона цикла for, он работает правильно. Есть какие-нибудь мысли о том, что здесь происходит?
@Ranjith, 👍2
Обсуждение1 ответ
Вы всегда должны подключать что-то к входу, чтобы выводить его на высокий или низкий уровень при отсутствии сигнала. Самое простое - активировать встроенный подтягивающий резистор, что приведет к возврату высокого значения на входе, когда ничего не подключено. Если это несовместимо с вашим конкретным использованием, добавьте резистор от входа к земле (10k-100k подойдет), чтобы он возвращал НИЗКИЙ уровень, когда больше ничего не подключено. Если входной сигнал просто плавающий, он восприимчив к шуму, вызывающему случайные изменения состояния. Входное сопротивление очень высокое (100 Мегабайт), поэтому он может улавливать помехи и другие помехи.
Большое спасибо. Я буду избегать плавающих входных данных., @Ranjith
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Arduino Due vs Mega 2560
- Как получить уникальный идентификатор для всех плат Arduino?
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Тайм-аут связи Arduino Mega с ошибкой программатора
вероятно , плохое программирование ... arduino будет делать именно то, что вы ему скажете, поэтому вы даете ему неправильные инструкции, @jsotola
Вы можете отредактировать свой код в вопросе, если хотите попытаться получить более конкретный ответ., @timemage