Nội dung
- Sau đây là ví dụ về điều khiển 2 led đơn bằng 1 nút nhấn.
- Ở chế độ này thì gồm có 4 thao tác khác nhau. Ban đầu ở chế độ 1 chưa nhấn gì thì cả 2 led tắt, ở chế độ 2 khi nhấn nút led 1 sáng/led 2 tắt, ở chế độ 3 khi nhấn nút led 1 tắt/led 2 sáng, và ở chế độ cuối khi nhấn nút thì cả 2 led đều sáng rồi cứ tiếp tục 4 thao tác lặp đi lặp lại.
Về phần cứng
- Board mạch Arduino
- Nút nhấn (1 cái)
- Điện trở 10k ohm (1 cái) và 220 ohm(2 cái)
- Led đơn(2 cái)
Sơ đồ lặp mạch
Lập trình
int switch = 5; // nút nhấn được kết nối với pin 5
int led1 = 8;
int led2 = 9;
int val; // đọc trạng thái pin
int val2; // đọc trạng thái bị trì hoãn
int buttonState; // giữ trạng thái nút
int mode = 0; // led sẽ sáng ở chế độ nào
void setup ()
{
pinMode(switch, INPUT); // đặt nút nhấn làm ngỏ vào
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
buttonState = digitalRead(switch); // đọc trạng thái ban đầu
}
void loop ()
{
val = digitalRead(switch); // đọc giá trị đầu vào và lưu trữ nó trong val
delay(10); // 10 mili giây là thời gian chờ
val2 = digitalRead(switch); // đọc lại đầu vào để kiểm tra xem có bị trả lại không
if (val == val2) // make sure we got 2 consistant readings!
{
if (val != buttonState) // trạng thái nút đã thay đổi!
{
if (val == LOW)// kiểm tra xem nút có được nhấn hay không
{
if (Mode == 0)
{
Mode = 1;
}
else
{
if (Mode == 1)
{
Mode = 2;
}
else
{
if (Mode == 2)
{
Mode = 3;
}
else
{
if (Mode == 3)
{
Mode = 0;
}
}
}
}
}
}
buttonState = val; // lưu trạng thái mới trong biến của chúng tôi
}
//Thiết lập các chế độ
if (Mode == 0)
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
if (Mode == 1)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
}
if (Mode == 2)
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
}
if (Mode == 3)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
}
}
Mô phỏng
Gồm có 4 chế độ xác lập trong lập trình:
- Ở chế độ ban đầu thì cả 2 led đều ở mức thấp nên cả 2 đều tắt.
Chế độ 1
- Ở chế độ 2, khi nhấn nút led 1 sáng, led 2 tắt.
Chế độ 2
- Ở chế độ 3, khi nhấn nút led 1 tắt, led 2 sáng.
Chế độ 3
- Ở chế độ cuối, khi nhấn nút thì cả 2 led đều ở mức cao nên cả 2 đều sáng.
Chúc các bạn thành công ở bài này!
Arduino giao tiếp với Button (phần 3):Một nút nhấn điều khiển 2 led đơn theo từng chế độ
thitech
Thứ Tư, 23 tháng 5, 2018















