Я пытаюсь подключить простой геркон к своей малине, чтобы проверить, открыта ли моя дверь или нет. Я нашел множество руководств в Интернете, но все их схемы ведут себя по-разному, поэтому я решил создать сам и проверить, кажется ли это разумным.
Мой первый тест просто зажигает светодиод, когда переключатель пропускает ток. Поскольку мой светодиод 2В 20мА, резистора (3,3-2)/0,02 = 65 Ом должно хватить, но у меня только 100 Ом, должно быть нормально?
Следующим шагом является захват события переключения в GPIO 5, прослушивающем входное напряжение 3,3 В.
Я хочу, чтобы через мой контакт протекал максимальный ток 1 мА, поэтому я выбираю резистор около 3 кОм. Скажите 5k для безопасных целей.
Вот в чем проблема. В каждом примере, который я нашел, наиболее часто используемый резистор составляет 10 кОм, и это всегда что-то вроде этого:
Зачем мне такой большой резистор? И почему я должен также подключаться к GND, если мой GPIO получает достаточное количество напряжения и тока (или 0, когда переключатель выключен)?
Заранее спасибо.
Мой первый тест просто зажигает светодиод, когда переключатель пропускает ток. Поскольку мой светодиод 2В 20мА, резистора (3,3-2)/0,02 = 65 Ом должно хватить, но у меня только 100 Ом, должно быть нормально?
Это будет замечательно.
Следующим шагом является захват события переключения в GPIO 5, прослушивающем входное напряжение 3,3 В. Я хочу, чтобы через мой контакт протекал максимальный ток 1 мА, поэтому я выбираю резистор около 3 кОм. Скажите 5k для безопасных целей.
Вы запутались в этот момент.
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Рис. 1. Типичный вход микроконтроллера с дополнительным внутренним подтягивающим резистором.
Входной импеданс (сопротивление) контакта GPIO очень высок. Если вы подключите его к V +, он может потреблять пару микроампер даже при отсутствии резистора. Это делает его очень чувствительным к блуждающим напряжениям или электромагнитным полям и, если не принять меры, может привести к случайному включению и выключению входа. Способ решить эту проблему состоит в том, чтобы добавить подтягивающий или подтягивающий резистор с достаточно низким сопротивлением, чтобы выполнить эту работу. 10k обычно является хорошим балансом между достаточно низким и не настолько низким, чтобы мы тратили энергию впустую из-за увеличения тока через него.
Потребность в подтягиваниях настолько распространена, что большинство производителей включают их внутри с опцией конфигурации, позволяющей их включить.
На вашей третьей диаграмме у вас есть переключатель на «высокой стороне», что означает, что вам нужен понижающий резистор. Если у чипа нет внутреннего раскрывающегося списка, вам придется добавить внешний. 10к должно хватить.
Например, на рисунке 3 GPIO установил подтягивающий резистор, и когда переключатель выключен, GPIO будет источником тока 5 В / 10 кОм = 0,5 мА, и он будет считываться как логический 0. Когда переключатель включен, потенциал GPIO будет 5 В, поэтому ток не будет течь, GPIO будет считывать логическую 1.
Рисунок 2 представляет то же самое с включенным подтягивающим резистором GPIO (если он есть). Основное правило заключается в том, что GPIO не должен иметь плавающий провод, действующий как антенна, поэтому всегда необходимо «подключать» подтягивающий или подтягивающий резистор.
Пример на рис. 1 невозможен из-за чрезмерного тока, который MCU должен был бы потреблять.
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Вот как подключить переключатель и светодиод к MCU. Включите также подтягивающий резистор для лучшего подавления шума.
СМА.Д