Падает напряжение на входе
- Войдите на сайт для отправки комментариев
Доброго дня!
Использую UNO R3. К пину номер 4 подключена тактовая кнопка на землю. Установлен внутренний Pullup.
const char rst_pin = 4;
void setup()
{
pinMode (rst_pin, INPUT);
pinMode (rst_pin, INPUT_PULLUP);
}
пин постоянно мониторится digitalRead(switch_pin);
И далее логика для обнаружения нажатия кнопки.
Кнопка имеет 4 физических пина внутренне закороченных попарно, то есть фактически 2. Один присоединен к пину 4 чипа другой к земле. Всё собрано и спаяно на макетной плате.
Происходит следующее. При включении всё работает нормально. Потом со временем (10-15 минут состояния включённого девайса) напряжение на 4 пине снижается до 0.6-0.9 V
Уважаемые гуру. Есть ли у кого какие-нибудь предположения? Благодарю заранее.
Подтяни внешним резистором 1кОм к +5В свой 4 пин
пин постоянно мониторится digitalRead(switch_pin);
может надо мониторить digitalRead(rst_pin);
Доброго дня!
Использую UNO R3. К пину номер 4 подключена тактовая кнопка на землю. Установлен внутренний Pullup.
const char rst_pin = 4;
void setup()
{
pinMode (rst_pin, INPUT);
pinMode (rst_pin, INPUT_PULLUP);
}
пин постоянно мониторится digitalRead(switch_pin);
И далее логика для обнаружения нажатия кнопки.
Кнопка имеет 4 физических пина внутренне закороченных попарно, то есть фактически 2. Один присоединен к пину 4 чипа другой к земле. Всё собрано и спаяно на макетной плате.
Происходит следующее. При включении всё работает нормально. Потом со временем (10-15 минут состояния включённого девайса) напряжение на 4 пине снижается до 0.6-0.9 V
Уважаемые гуру. Есть ли у кого какие-нибудь предположения? Благодарю заранее.
1. Схема?
2. Скетч?
Благодарю за совет. Пока пробовал подтянуть только не 1к а 5.1к, не помогло
Конечно мониторится rst_pin сорри за описку.
Выложите скетч и схему.
Схему картинкой, а скетч как положено.
Iluxa, вы скетч не перепутали? Вроде речь шла о чтении одного пина, а в итоге вы вываливаете 150 строк кода с ОЛЕД дисплеем, какими-то паролями и прочей требухой. Сократите свой код до 10 строк, где останется только работа с кнопкой. Если проблема не исчезнет - выложите код сюда.
Если. что вероятно, на простом коде проблем не будет - начинайте постепенно добавлять свои экраны и пароли обратно, каждый раз проверяя работу кнопки. Так вы найдете ту часть кода, которая мешает работе
23 и 25 строка к чему?
23 и 25 строка к чему?
не влияет
Порт объявлен как входной и мониторится на наличие 0 или 1.
Каким образом остальной код может влиять на некорректную работу внутреннего пулл апа? Меряю вольтметром
Внутренний пулап это 100 кОм. А с какого перепугу, ты объявляешь ногу чаром (
const
char
rst_pin = 4;) она должна быть int. И вообще можешь просто поставить
pinMode (4, INPUT_PULLUP); а 23 и 25 строчки вообще не нужны.А с какого перепугу, ты объявляешь ногу чаром (
const
char
rst_pin = 4;) она должна быть int.
Объявляю ногу char для экономии памяти, так как под char выделяется меньше памяти чем под int. 23 и 25 не нужны, согласен, но это не может быть причиной низкого напряжения на входе.
Объявляю ногу char для экономии памяти, так как под char выделяется меньше памяти чем под int.
Объявляйте byte или uint8_t. Так будет меньше путаницы, char таки обычно ассоциируется с символами
Объявляю ногу char для экономии памяти, так как под char выделяется меньше памяти чем под int.
"Экономика должна быть экономной." Бросайте вы эту дурную привычку.) Советую проверить на практике ваше утверждение.
Если бы Вы это знали, не было бы этого поста.
А пока делайте, как Вам посоветовал b707. Любой профессионал, у которого бы возникла такая беда, начал бы именно с этого (а не с поста на форум).
Делайте и всё получится.
Нашёл проблему, кнопка плохая оказалась. Поменял кнопку и всё работает. Спасибо за помощь всем!