Бутон за управление на Arduino

В предишна статия писах за организацията на LED индикация.

Много е писано за работата с бутони на Arduino. В тази статия ще напиша визията си за това как е удобно да се проектира управление на микроконтролера, като се използват бутони на часовника, свързани към цифрови входове.

Няма да навлизам в подробности за схемите на свързване на бутони към цифрови (и не само) входове на микроконтролера. Тази статия се занимава с бутон, изтеглен от резистор до положителен и късо входа към земята. Следователно състоянията на натиснатия бутон LOW и освободени HIGH.

Типът на бутона няма значение, например може да бъде така

arduino

Най-простата скица за работа с бутон изглежда така

Операторът за забавяне (1000) определя закъснението между натисканията на бутоните. Ако времето за натискане надвишава 1000 ms, бутонът автоматично се натиска отново. Такъв метод може би е полезен само за отстраняване на грешки, но в реалния живот той не е много приложим, тъй като забавянето не позволява изпълнението на останалите оператори на скици (освен ако не се използват прекъсвания) и ограничава минималното време между щракванията на бутоните.

В следващата скица ще се опитам да запомня състоянието на бутона

Изглежда, че всичко работи, но понякога два или повече задействания се плъзгат. Какъв е проблема? Въпросът е отскачането на контактите на механичния бутон.

Нормалното действие на бутона изглежда така. Изглежда, че всичко е правилно.

arduino

Но понякога спусъка може да изглежда така

управление

бутон