Trạng thái giám sát của công tắc (Đọc nối tiếp kỹ thuật số) - Kiến thức cơ bản về Arduino

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Khái niệm cơ bản về Arduino này thảo luận về phương pháp triển khai mã qua đó trạng thái BẬT hoặc TẮT của nút nhấn bên ngoài có thể được đọc hoặc theo dõi trong Arduino.

Đọc nối tiếp kỹ thuật số

Ở đây chúng ta cùng tìm hiểu qua một ví dụ về cách giám sát trạng thái của công tắc bằng cách thực hiện giao tiếp nối tiếp trên Arduino và PC của bạn qua USB.



Vượt quá Bảng Arduino của bạn, bạn sẽ yêu cầu các mục cơ bản sau:

Phần cứng

Công tắc tạm thời, nút hoặc công tắc nhấn để BẬT



Điện trở 10k, 1/4 watt ohm

breadboard
móc nối hoặc liên kết dây jumper.

Hoạt động mạch

Hoạt động có thể được thực hiện theo các bước sau:

Lấy 3 đoạn dây nhảy và nối chúng với bảng Arduino của bạn. Hai trong số các dây, màu đỏ và đen, đi thành hai hàng dọc dài ở bên cạnh bảng mạch, trở thành dây cung cấp của bảng để mang Yêu cầu 5V DC vào bảng.

Dây thứ ba được sử dụng để kết nối chân kỹ thuật số 2 với một trong các dây dẫn của công tắc push-to-ON.

Dây dẫn cụ thể này của nút cũng liên kết với một điện trở 10k kéo xuống đường ray cung cấp âm hoặc mặt đất. Dây dẫn tự do khác của công tắc được liên kết với cực dương của nguồn 5 volt.

Với các kết nối trên được thực hiện, công tắc sẽ chuyển đổi hoặc thực hiện một tác động kép trong mạch khi được đẩy.

Thông thường khi công tắc ở vị trí bị ngắt kết nối, hai dây dẫn của nó vẫn bị cô lập, sao cho chân được liên kết với đất thông qua điện trở kéo xuống hiển thị mức LOW hoặc mức logic 0.

Trong tình huống bị ép, công tắc thực hiện bắc cầu tạm thời giữa hai đạo trình của nó, sao cho các đạo trình của nó phải chịu + 5 volt, hiển thị mức CAO hoặc mức logic 1 trên chúng.

Cách ly sơ đồ chân i / o kỹ thuật số khỏi những thứ còn lại, có thể khiến đèn LED hoạt động tốt và gây nhấp nháy thất thường. Điều này là do đầu vào không được hiển thị cho bất kỳ thứ gì hoặc được giữ ở vị trí 'treo' - có nghĩa là nó không được chỉ định cho bất kỳ logic xác định nào, không cao cũng không thấp (+ 5V hoặc 0V), đây là lý do tại sao chúng tôi sử dụng kéo xuống điện trở với công tắc.

Sơ đồ

Hiểu mã

Trong chương trình tiếp theo bên dưới, chúng tôi bắt đầu với giao tiếp nối tiếp trong chức năng thiết lập với tốc độ 9600 bit dữ liệu mỗi giây, điều này được bắt đầu giữa bảng Arduino và máy tính kèm theo: Serial.begin (9600)

Trong bước tiếp theo, chúng tôi kích hoạt chân kỹ thuật số 2, chân sẽ chịu trách nhiệm cho đầu ra với công tắc đẩy làm đầu vào: pinMode (2, INPUT) Điều này hoàn thành 'thiết lập' của chúng tôi, bây giờ chúng tôi đi vào vòng lặp chính của mã của chúng tôi .

Ở đây khi nhấn nút nhấn, 5 volt được phép đi qua mạch của chúng tôi, trong khi chân đầu vào được liên kết với đất thông qua điện trở 10 kilohm khi nó ở điều kiện không được nhấn.

Ở trên chúng tôi gọi là đầu vào kỹ thuật số, đề cập đến điều kiện mà công tắc chỉ có thể ở một trạng thái cụ thể hoặc trạng thái bật (được Arduino chấp nhận là '1', hoặc LOGIC CAO) hoặc trạng thái tắt (hình dung bởi Arduino là '0', hoặc LOGIC THẤP), không có ngày nào khác không xác định ở giữa.

Hành động cơ bản mà chúng ta cần thực hiện trong vòng lặp chính của chương trình là áp dụng một biến để giữ thông tin đúng vị trí được gửi qua nút nhấn.

Như đã thảo luận ở trên với các tín hiệu ở dạng '1' hoặc '0', ở đây chúng tôi sử dụng một kiểu dữ liệu int. Chúng ta có thể đặt tên biến này là sensorValue và sửa nó để tương ứng với mọi thứ đang được đọc trên chân kỹ thuật số 2. Tất cả những điều này đều có thể đạt được thông qua một dòng mã:

int sensorValue = digitalRead (2) Khi Arduino đã đọc đầu vào, hãy in dữ liệu đó trở lại máy tính dưới dạng giá trị thập phân.

Điều này có thể được thực hiện với sự trợ giúp của lệnh Serial.println () trong dòng kết thúc của mã: Serial.println (sensorValue)

Sau đó, bất cứ khi nào Serial Monitor được khởi chạy trong miền Arduino, chúng ta sẽ chứng kiến ​​chuỗi số '0 trong khi nút nhấn ở vị trí mở và chuỗi' 1 trong trường hợp nút được giữ ở điều kiện đóng.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




Trước: Bộ điều khiển lưu lượng nước tùy chỉnh với mạch hẹn giờ Tiếp theo: Chuyển đổi Analogue sang Digital (Analogue Read Serial) - Kiến thức cơ bản về Arduino