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.
bạn hướng dẩn minh bài dồng hồ bấm giây dùng 74hc51 đi
Trả lờiXóaAd xem hộ copy về báo lỗi thiếu điều kiện trước '{' là sao ak
Trả lờiXóaVoi setup();
Trả lờiXóa{
code sai có nhập đc đâu ad ??
Trả lờiXóaCode đúng rồi chỉ bị lỗi trùng từ khoá swicht với bị sai tên biến mode khi khai còn khi dùng lại thành Mode viết hoa.sửa lại là đc
Trả lờiXóacode này nên sửa lại như thế nào mới đúng ạ?
Trả lờiXóa