Một khi có thể xác định được trạng thái của công tác, ta có thể làm ứng dụng với công tắc. Một ví dụ là đếm số lần công tắc được nhấn để ra quyết định. Với mạch điện có gắn một công tắc và điện trở treo xuống thấp (như bài trước)

Phân tích chương trình
/*
Đếm trạng thái (phát hiện sườn xung)
This example code is in the public domain.
*/
const int buttonPin = 2;
const int ledPin = 13;
//
int buttonPushCounter = 0; // biến lưu số lần nhấn nút
int buttonState = 0; // trạng thái nút nhấn
int lastButtonState = 0; // trạng thái trước đó
void setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}
void loop() {
// đọc trạng thái nút nhấn
buttonState = digitalRead(buttonPin);
// so sánh với trạng thái trước đó
if (buttonState != lastButtonState) {
// nếu trạng thái nút nhấn thay đổi
if (buttonState == HIGH) {
// nếu nút nhấn là cao
// tăng số đếm lên và gửi về máy tính
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
} else {
// nếu trạng thái thấp
// tắt
Serial.println("off");
}
// chờ một khoảng thời gian để tránh nhiễu
delay(50);
}
// lưu trạng thái vừa rồi
lastButtonState = buttonState;
// cứ mỗi 4 lần nhấn nút thì bật đèn dựa vào phép chia
//lấy số dư (%)
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
