LOW на inout пине с подтягивающим к земле резистором
- Войдите на сайт для отправки комментариев
Добрый день! Новичок в ардуино. Использую Ардуино Нано
Пин d11 установлен как INPUT. К нему подключен подтягивающий на землю резистор. После инициализации, до подачи первого HIGH на пин d11, на пине 0, всё нормально то бишь. Далее подаем 1 и тоже, соответственно всё правильно.
А вот после размыкания на пине d11 получается рандомное значение, что должен как раз исправлять подтягивающий резистор. Это диагностируется при последующей подачи 1 на пин - каждый раз анимация находится в рандомном состоянии, а должна начинаться с начала.
Далее, чтобы убедиться, что при отсутствии подачи сигнала на d11 получается рандомное значение при digitalRead(), подключаем Serial.begin(9600) и в цикле пишем Serial.println(digitalRead(11)). И видим, что всё начинает работать - при подаче сигнала получаем 1, при отсутствии сигнала - 0, и при каждой подаче сигнала анимация начинается сначала. Получили стабильность.
И у меня возникло два вопроса:
1. Почему может не давать эффекта подтягивающий резистор? Всё подключено как в статье https://clck.ru/Q8k2T (на землю).
2. Как вообще может влиять в моём случае подключение Serial?
В теме опечатка, извините. Модератор, исправьте, пожалуйста INOUT на INPUT.
Код где?
1 не может - ищем проблему с подключением - тестером проверяем качество соединения/пайки
2 никак не может влиять
Если схем собрана на беспаечной макетке, то проблема может быть в неконтакте соединительных проводов
Код где?
Код работает верно, я же описал, что поведение абсолютно разное, а не то, что не работает в принципе как задумано. На протеусе моделирование проходит так, как должно, резистор даёт правильный эффект.
1 не может - ищем проблему с подключением - тестером проверяем качество соединения/пайки
2 никак не может влиять
Понятно. Собираю через макетку, пробовал менять линии. Попробую спаять и прозвонить повторно
Если схем собрана на беспаечной макетке, то проблема может быть в неконтакте соединительных проводов
да, на макетке. Спасибо, буду тестером обходить, скорее всего так и есть конечно, чудес не бывает. Просто меня удивило, что подключение монитора меняет поведение - ни в каких теориях это не должно влиять. Эксперимент провёл три раза (для закрепления) - зашивал без сериал, получал рандом, зашивал с сериал, получал ожидаемое поведение.
Это не подключение монитора, а звезды сходились - зацепили провод с плохим контактом, контакт наладился, зацепили в другую сторону - опять пропал
Особенно плохо там держатся резисторы - выводы слишком тонкие, привет подтяжке к земле ))
Очень надеюсь, что это действительно так. Проверю спайкой, передам привет и пойду покупать лотерейный билет )
Вообще, если чувствуете, что провод или вывод резистора заходит в гнездо слишком свободно, попробуйте немного подогнуть, сделать немного волной - обычно помогает, контакт получше
Недавно столкнулся в этом проекте: http://arduino.ru/forum/proekty/midi-klaviatura-na-baze-roland-k-25m
Если читать/писать не через Ардуино-функции, а через порты, то за счет емкостей/индуктивностей монтажа во избежание ошибок при сканировании матрицы клавиатуры приходится вводить задержку 1-2 мкс между установкой значения на одном пине и чтением другого пина.
Я вообще ставлю 10 мкс, что бы гарантировано устаканивались переходные процессы.
Я вообще ставлю 10 мкс, что бы гарантировано устаканивались переходные процессы.
Это к тому, что "вообще" нередко оказывается неприменимым к частному случаю.
Ну конечно, в каждом случае свои требования. В моём случае матрица 3х4 и никаких особенных временных требований. Поэтому 10 мкс при периоде опроса 10 мс, ну сами понимаете.) Просто нужно было гарантированное срабатывание в любой ситуации.