Я настроил свой Arduino UNO с 4 входными проводами, они подключаются к порту 10, 11, 12, 13, они подключены к моему макету, на котором ничего нет, кроме провода.
Мой код будет просто:
Serial.println(digitalRead(13));
Serial.println(digitalRead(12));
Serial.println(digitalRead(11));
Serial.println(digitalRead(10));
Дело в том, что после того, как я ненадолго подключу контакт к 5V или 3V3, показания начнут сходить с ума, как: 1 0 0 1 0 1 1 1 0 1 0 1 1 0 Без какого-либо смысла! Без подключения какого-либо провода напрямую к моему VCC (5 В или 3 В 3) показания постоянно меняются, когда они должны быть равны нулю!
Мой Arduino мертв? Как я могу это исправить?
arduino
floating-pin
Гильерме Гарсия да Роза
источник
источник
Ответы:
То, что у вас есть, называется
Floating
булавкой. Выводы цифрового входа очень чувствительны к изменениям, и, если они не будут положительно переведены в то или иное состояние (высокое или низкое), они будут забирать паразитную емкость из близлежащих источников, таких как макеты, человеческие пальцы или даже воздух. Любой подключенный к нему провод будет действовать как маленькая антенна и вызывать изменение состояния входа. И я имею в виду любой провод, след на плате, провод к макету, контакт буфера, даже металлический штырь самой ИС.Это указано на странице ссылок Arduino:
Если вы посмотрите на учебник по цифровой булавке Arduino :
Эти резисторы со слабым напряжением переводят состояние входного контакта в известное состояние и легко перезаписываются более сильными входными напряжениями, такими как прямое подключение к земле или + 5В.
источник
pinMode(pin, INPUT_PULLUP)
? Это легко запомнить, и действительно трудно облажаться.Это нормально. Если вход не подключен к чему-либо, он покажет HIGH или LOW или постоянно меняется. Это описано на странице ссылок digitalRead на веб-сайте Arduino.
Входной контакт работает с небольшой емкостью, поэтому кратковременное подключение к 3V3 или 5V зарядит емкость. Вы можете найти аналогичный эффект, используя голый палец.
Вы можете избежать этой проблемы, добавив резистор большого значения между контактом и заземлением.
Спросите себя, почему вы ожидаете ноль?
источник