Arduino - Công tắc kết nối
Các nút bấm hoặc công tắc kết nối hai thiết bị đầu cuối đang mở trong một mạch điện. Ví dụ này bật đèn LED trên chân 2 khi bạn nhấn công tắc nút bấm được kết nối với chân 8.
Điện trở kéo xuống
Điện trở kéo xuống được sử dụng trong các mạch logic điện tử để đảm bảo rằng các đầu vào của Arduino ổn định ở mức logic dự kiến nếu các thiết bị bên ngoài bị ngắt kết nối hoặc ở mức trở kháng cao. Vì không có gì được kết nối với chân đầu vào, điều đó không có nghĩa là nó là số 0 logic. Các điện trở kéo xuống được kết nối giữa mặt đất và chân cắm thích hợp trên thiết bị.
Một ví dụ về điện trở kéo xuống trong mạch kỹ thuật số được thể hiện trong hình sau. Một công tắc nút bấm được kết nối giữa điện áp cung cấp và chân vi điều khiển. Trong mạch như vậy, khi công tắc đóng, đầu vào của bộ điều khiển vi mô ở giá trị logic cao, nhưng khi công tắc mở, điện trở kéo xuống sẽ kéo điện áp đầu vào xuống đất (giá trị 0 hợp lý), ngăn trạng thái không xác định ở đầu vào.
Điện trở kéo xuống phải có điện trở lớn hơn trở kháng của mạch logic, nếu không nó có thể kéo điện áp xuống quá nhiều và điện áp đầu vào tại chân sẽ duy trì ở giá trị logic thấp không đổi, bất kể vị trí chuyển mạch.
Thành phần bắt buộc
Bạn sẽ cần các thành phần sau:
- 1 × bảng Arduino UNO
- Điện trở 1 × 330 ohm
- Điện trở 1 × 4,7K ohm (kéo xuống)
- 1 × LED
Thủ tục
Thực hiện theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.
Phác thảo
Mở phần mềm Arduino IDE trên máy tính của bạn. Mã hóa bằng ngôn ngữ Arduino sẽ điều khiển mạch của bạn. Mở tệp phác thảo mới bằng cách nhấp vào Mới.
Mã Arduino
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 2; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
Mã cần lưu ý
Khi công tắc mở, (không nhấn nút nhấn), không có kết nối giữa hai đầu cuối của nút nhấn, do đó chân cắm được nối với đất (thông qua điện trở kéo xuống) và chúng tôi đọc là LOW. Khi công tắc đóng (nhấn nút bấm), nó tạo kết nối giữa hai đầu cực của nó, kết nối chân cắm với 5 volt, do đó chúng tôi đọc mức CAO.
Kết quả
Đèn LED BẬT khi nhấn nút và TẮT khi nhả nút.