Hướng dẫn điều khiển đèn led bằng button sử dụng mạch Ardunio. Cụ thể: cứ mỗi lần bạn nhấn nút button thì trạng thái đèn led sẽ thay đổi từ mở -> tắt hoặc tắt -> mở. Nào ta cùng làm:
* Phần mã Code:
int led = 13;// D13 chân digital của đèn led dùng xuất đèn
int button = 2; // D2 chân digital cả button dùng kiểm tra ấn nút
int check=-1; // dùng để xác định khi ấn nút button cứ mỗi lần ấn là chuyển trạng thái đèn led
//-------------
void setup() {
pinMode(led, OUTPUT); // Đặt led là chân ra
pinMode(button, INPUT); //Cài đặt chân D2 ở trạng thái đọc dữ liệu
}
//--------------
void loop() {
int buttonStatus = digitalRead(button); //Đọc trạng thái button
// Mỗi lần nhấn nút sẽ đảo trạng thái của đèn led
if(buttonStatus==1) check=-check;
if(check>0 )
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
}
* Phần Sơ đồ mạch
* Phần mã Code:
int led = 13;// D13 chân digital của đèn led dùng xuất đèn
int button = 2; // D2 chân digital cả button dùng kiểm tra ấn nút
int check=-1; // dùng để xác định khi ấn nút button cứ mỗi lần ấn là chuyển trạng thái đèn led
//-------------
void setup() {
pinMode(led, OUTPUT); // Đặt led là chân ra
pinMode(button, INPUT); //Cài đặt chân D2 ở trạng thái đọc dữ liệu
}
//--------------
void loop() {
int buttonStatus = digitalRead(button); //Đọc trạng thái button
// Mỗi lần nhấn nút sẽ đảo trạng thái của đèn led
if(buttonStatus==1) check=-check;
if(check>0 )
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
}
* Phần Sơ đồ mạch
* Lưu ý:
- Khi bạn chưa nhấn nút, chân D2 được nối với GND qua một điện trở 10 kΩ, do đó lệnh digitalRead(2) sẽ trả về giá trị 0 (LOW). Khi bạn nhấn nút, chân D2 sẽ được nối trực tiếp với 5V và nối với GND thông qua 1 điện trở 10kΩ, lệnh digitalRead(2) sẽ trả về giá trị 1 (HIGH).
- Khi chưa nhấn nút, nếu bạn nối chân D2 với GND qua 1 điện trở thì người ta gọi điện trở này là điện trở pulldown. Trái lại, nếu bạn nối D2 với chân 5V qua một điện trở thì người ta gọi nó là điện trở pullup. Cách nối ở trên hình sử dụng khi chưa nhấn nút gọi là cách nối điện trở pulldown.
No comments:
Post a Comment