Считайте, что сделали дорогую макетку. Даже, я бы сказал, массогабаритную модель изделия. Режьте теперь дорожки, чего уж…
Да, так и есть. На самом деле, я уже плату и в корпус, напечатаный на 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К.
Но всё равно спасибо всем, кто откликнулся. Ну кроме отдельных личностей, которые только ёрничают.
Дак по сути так и сделал, только без R2. Работает норм. А зачем он ? Типа RC-фильтрот помех? Или я что то не понимаю.
Оцените ток через переключатель и конденсатор в момент замыкания.
Ну и, кроме того, существенная несимметричность схемы относительно времен переход из 0 в 1 и из 1 в 0 - она имеет под собой какое-либо обоснование?
До сих пор помню компараторы типа KIA339, которые в схеме без Р2 формировали пичЁк в неск десятков наносекунд, который глушил всю нормальную работу проца, 2 недели искали.
Это только теоретически компараторы 339 и 393 разных производителей одинаковы.
Ужос! Да программно же всё легко делается! На кой тут эти R2C1.
Цена вопроса?
Цена не в рублях (долларах, тугриках…), а в микросекундах: сколько микросекунд займет каждое прерывание и сколько прерываний будет на протяжении дребезга контактов?
Это смотря как писать.
Можно после первого фронта запретить прерывания от этого входа на время дребезга и в итоге будет всего одно прерывание !
А кто потом разрешать прерывания будет?
И так - заплатка на заплатке.
Не нужно пытаться заплатками в программировании компенсировать недостатки аппаратной части. Нужно делать аппаратную часть по уму.
В том то и дело, что цена вопроса зачастую из комплектующих выходит. А софт он один на все изделия.
