Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:aruno:exp5_2 [2020/06/26 18:21] – alexnik | products:aruno:exp5_2 [2020/08/28 11:36] (текущий) – alexnik | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ===== Эксперимент 5.2. Эмуляция кнопки с фиксацией ===== | ===== Эксперимент 5.2. Эмуляция кнопки с фиксацией ===== | ||
| + | |||
| В предыдущем эксперименте мы столкнулись с явлением которое характерно для всех кнопок и выключателей - **дребезг контактов**. Это паразитное явление, | В предыдущем эксперименте мы столкнулись с явлением которое характерно для всех кнопок и выключателей - **дребезг контактов**. Это паразитное явление, | ||
| Дребезг контактов возникает при нажатии на кнопку и переключатель, | Дребезг контактов возникает при нажатии на кнопку и переключатель, | ||
| Строка 7: | Строка 8: | ||
| {{ : | {{ : | ||
| Чтобы устранить эффект дребезга контактов есть два способа программный и аппаратный.\\ | Чтобы устранить эффект дребезга контактов есть два способа программный и аппаратный.\\ | ||
| - | Аппаратный способ | + | Один из вариантов программного устранения дребезга, это после первого изменения состояния кнопки, установить паузу в несколько миллисекунд, для того чтобы контакт стабилизировался и дребезг был |
| - | переключения кнопки станет | + | |
| - | Сглаживающий конденсатор заряжается до уровня HIGH почти мгновенно, а во время дребезга контактов разряжается, повышая уровень напряжения в цепи. Таким образом скачки напряжения значительно уменьшаются.\\ | + | |
| - | Теперь | + | |
| - | Чтобы защитить контроллер, последовательно с кнопкой добавим токоограничительный резистор 1 кОм. | + | |
| ==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
| - | {{ : | + | Схема эксперимента не изменилась по сравнению с прошлым, |
| + | |||
| + | {{ : | ||
| // | // | ||
| Соберем эту схему: | Соберем эту схему: | ||
| - | {{ : | + | {{ : |
| // | // | ||
| ==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
| - | <file cpp Exp5_2[enable_line_numbers=" | + | <file cpp Exp5[enable_line_numbers=" |
| // инициализация констант | // инициализация констант | ||
| Строка 35: | Строка 34: | ||
| void setup() { | void setup() { | ||
| - | pinMode(BUTTON, | + | |
| - | | + | pinMode(LED, |
| - | } | + | } |
| void loop() { | void loop() { | ||
| Строка 45: | Строка 44: | ||
| if (switchState == HIGH) { | if (switchState == HIGH) { | ||
| lightsOn = !lightsOn; | lightsOn = !lightsOn; | ||
| - | } | + | delay(20); |
| - | } | + | } |
| - | if(lightsOn) { | + | |
| + | | ||
| digitalWrite(LED, | digitalWrite(LED, | ||
| - | | + | } |
| else { | else { | ||
| digitalWrite(LED, | digitalWrite(LED, | ||
| - | | + | } |
| } | } | ||
| </ | </ | ||
| - | + | Электрическая принципиальная схема и монтажная схема эксперимента остаются | |
| - | В соответствие инструкции | + | Аппаратный способ устранения дребезга рассмотрим в следующем эксперименте.\\ |
| - | Программный код | + | |
| - | Запустим | + | |
| - | О программном способе устранения | + | |