Помогите с обработкой кнопки

Считайте, что сделали дорогую макетку. Даже, я бы сказал, массогабаритную модель изделия. Режьте теперь дорожки, чего уж…

Да, так и есть. На самом деле, я уже плату и в корпус, напечатаный на 3д, запихнул. В общем, изделие уже готово. А теперь из-за вот такой аномалии боюсь, как бы вся работа на смарку не пошла.
Завтра буду дорожки резать. Выхода нет. А сегодня уже поздно ) в любом случае, спасибо за отклик.

Это бывает, никто не застрахован

сейчас перед тем, как идти спать, заметил ещё одну интересность. Накидал еще раз такой скетч и залил:

byte B;
void setup() {
 pinMode(14, INPUT);
 pinMode(6, OUTPUT);
 digitalWrite(6, HIGH);
}

void loop() {
   B=digitalRead(14);
   if (B == 0)
   {digitalWrite(6, LOW);}    
   else {digitalWrite(6, HIGH);}
  }

Ну, соответственно пин 14 - тот, на котором висит кнопка. 6-й пин - светодиод. Скетч понятен: пока замыкаем кнопку на землю, светодиод горит (он катодом к МК, анодом через резистор на 5В, поэтому зажигается от LOW). Как только кнопку отпускаем - светодиод гаснет. После заливки скетча всё так и работало, я нажимал и отпускал кнопку периодически, светодиод мигал. Примерно через полторы минуты светодиод начал зажигаться и гаснуть с задержкой примерно в пол секунды. Секунды через 3 эта задержка увеличилась до секунды, после чего МК словно завис - светодиод загорелся, и больше не гас. Но согласно скетчу, такое возможно, только если кнопка замкнута на землю при нажатии, а кнопку я не держу. А светодиод почему-то горит! Как вариант - кнопка просто залипла физически, но это не так, она не замкнута. Какие-то чудеса!

Такое может быть, если кнопка не “подтянута”. Кстати , ничего об этом в теме не встретил., может пропустил?
P.S

В таком случае INPUT_PULLUP надо делать, а 10К выкинуть, или внешнюю “подтяжку” к + питания

Нет, Вы не правильно поняли. Кнопка через резистор подключена к + питания, так и есть. А пин она замыкает на землю при нажатии. Всё как полагается

Пин должен быть подключен к VCC через резистор, а кнопка - замыкать его на GND.

Ну дак всё так и есть, я же какой раз об этом пишу

Первый. “Кнопка через резистор к +” =! “Пин через резистор к VCC”.

тестер -то есть в вашем хозяйстве? смотрите тестером, что творится на пине кнопки, что на пине лед.

Решил отложить программатор в сторонку и поковыряться в самой плате. Вытащил плату из корпуса, и при прикосновении к плюсовой шине питания МК демонстрировал произвольное срабатывание кнопки, хотя я её не нажимал, конечно же.
В общем, припаял параллельно кнопке смд конденсатор на 0.1 мкф, и на всякий пропаял всю цепь от пина МК до контактов кнопки. За 15 минут работы ни одного сбоя кнопки. Скорее всего дело было в наводках, которые пудрили мозг МК, несмотря на то, что пин был подтянут к + резистором 10К.
Но всё равно спасибо всем, кто откликнулся. Ну кроме отдельных личностей, которые только ёрничают.

Вот так сделай:


R1 = 10 кОм; R2 = 47 кОм; С1 = 220 нФ

Дак по сути так и сделал, только без R2. Работает норм. А зачем он ? Типа RC-фильтрот помех? Или я что то не понимаю.

Оцените ток через переключатель и конденсатор в момент замыкания.
Ну и, кроме того, существенная несимметричность схемы относительно времен переход из 0 в 1 и из 1 в 0 - она имеет под собой какое-либо обоснование?

До сих пор помню компараторы типа KIA339, которые в схеме без Р2 формировали пичЁк в неск десятков наносекунд, который глушил всю нормальную работу проца, 2 недели искали.
Это только теоретически компараторы 339 и 393 разных производителей одинаковы.

Ужос! Да программно же всё легко делается! На кой тут эти R2C1.

Цена вопроса?
Цена не в рублях (долларах, тугриках…), а в микросекундах: сколько микросекунд займет каждое прерывание и сколько прерываний будет на протяжении дребезга контактов?

Это смотря как писать.
Можно после первого фронта запретить прерывания от этого входа на время дребезга и в итоге будет всего одно прерывание !

А кто потом разрешать прерывания будет?
И так - заплатка на заплатке.

Не нужно пытаться заплатками в программировании компенсировать недостатки аппаратной части. Нужно делать аппаратную часть по уму.

В том то и дело, что цена вопроса зачастую из комплектующих выходит. А софт он один на все изделия.