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

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

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

