Собрал схему из видеоурока 10, но почему то не работает аппаратное подавление дребезга. Кнопка как будто нажимается несколько раз. Никак не пойму в чем причина. Ткните носом пожалуйста. Код (Text): int redLEDPin = 11; int redSwitchPin = 0; int red = 0; void setup() { pinMode(redLEDPin, OUTPUT); pinMode(redSwitchPin, INPUT_PULLUP); attachInterrupt(redSwitchPin, swap, RISING); } void swap() { red = red + 50; if (red > 255) red = 0; } void loop() { analogWrite(redLEDPin, red); }
В дополнение к тому, что сказал Пушной звер. Код (Text): int red = 0; Поменяйте на Код (Text): volatile int red = 0; Все переменные, которые используются в прерываниях нужно помечать как volatile.
Аналогичная проблема была решена здесь: http://forum.amperka.ru/threads/час...-20-Обработка-прерываний-виснет-ардуино.3377/ http://forum.amperka.ru/threads/решено-Непонятки-в-работе-компаратора.3636/
На фотографии схема собрана не правильно. Что за микросхема? Если триггер 74HC14 то по даташиту 9 нога это вход , а 8 выход -- у вас на фото наоборот
Тогда правильно. Но у меня такая схема работает отлично. Правда как в эксперименте с экстримальными условиями я не запускал. Я пробовал и без триггера- подобрал другие сопротивление и кондёр тоже работает более менее нормально. ps\ экстримальный- я подразумевал 12 эксперимент