Вход Longruner Nano ATMega 328P остается ВЫСОКИМ на 1 секунду дольше, чем в реальности
У меня есть Longruner Nano ATMega 328P (копия arduino nano, основное отличие в разъеме USB, CH340 вместо обычного FT232, насколько я смог найти с помощью поиска в Google).
Я написал очень простой код, чтобы проверить его возможности обнаружения сигналов:
setup(){
pinMode(13, OUTPUT);
pinMode(2, INPUT);
}
loop(){
digitalWrite(13, digitalRead(2));
}
Сложно упростить проверку простой вещи: когда я подаю ВЫСОКИЙ сигнал на D2, D13 тоже ВЫСОКИЙ.
Чтобы проверить это, я использовал простой соединительный кабель типа "папа-папа" и на очень короткое время соединил контакт VIN с контактом D2. И я заметил, что D13 остается ВЫСОКИМ около секунды (измерено с последовательным портом, самое низкое, что я смог получить, было 996 мс после очень быстрого касания D2 кабелем).
Я попытался изменить pinMode на INPUT_PULLUP, следуя похожему вопросу, который я нашел, но это ничего не изменило в отношении этой задержки.
Я что-то не так делаю? Может неправильная конфигурация? Или это просто аппаратная проблема из-за того, что я использую копию и меняется не только разъем USB?
Я могу адаптироваться и работать с этим, если это необходимо, но возможность точного обнаружения сигнала мне очень поможет.
@Supamiu, 👍-1
1 ответ
Лучший ответ:
Не используйте Vin в качестве источника логики. Используйте контакт +5 В.
Кроме того, отсоединение контакта – это не то же самое, что его заземление. Он "плавающий". Для правильной проверки подключите +5 В к контакту, а затем подключите к нему заземление.
Плавающий контакт имеет неопределенный логический уровень.
В вашем случае будет работать резистор (скажем) 1k между D2 и Gnd. Таким образом, в тот момент, когда вы отключаете вход напряжения, "вытягивание вниз" срабатывает. резистор вернет его к 0 В.
- Невозможно использовать аналоговые контакты в качестве цифровых входов
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
- Arduino nano как клавиатура HID
- Как я могу запитать Arduino Nano от батареи LiPo, желательно 3,7 В
@Supamiu в качестве альтернативы (для тестирования) настройте D2 как INPUT_PULLUP и подключите его к земле с помощью перемычки., @Sim Son
То есть вы имеете в виду, что я должен иметь перемычку между D2 и GND и использовать другую перемычку для подключения + 5 В к D2 и наблюдать за триггером на D2?, @Supamiu
@Supamiu Нет, вы должны добавить резистор между D2 и GND, а не перемычку. Перемычка приведет к короткому замыканию при подключении D2 к +5В. https://www.electronics-tutorials.ws/logic/pull-up-resistor.html, @Majenko