Nút nhấn với các chân ESP32 - GPIO làm đầu vào kỹ thuật số

Nút nhấn với các chân ESP32 - GPIO làm đầu vào kỹ thuật số

Chế độ kéo lên

Ở chế độ Kéo lên, khi không nhấn nút nhấn, đầu vào logic cao sẽ xuất hiện trên chân ESP32 GPIO. Bởi vì tín hiệu 5V xuất hiện trên cực đầu vào thông qua điện trở R1. Ngược lại, khi nhấn nút nhấn, các tiếp điểm kim loại của nút nhấn sẽ tiếp xúc với thiết bị đầu cuối nối đất và thiết bị đầu cuối đầu vào. Do đó, một đầu vào logic thấp phản ánh trên chân đầu vào kỹ thuật số của bo mạch ESP32. Tóm lại, bằng cách đọc trạng thái này của nút nhấn bằng chân đầu vào kỹ thuật số của vi điều khiển, chúng ta có thể xác định xem nút nhấn có được nhấn hay không. Sơ đồ sau đây cho thấy kết nối của nút nhấn với điện trở kéo lên.

Sơ đồ điện trở Pullup STM32F4

Chế độ kéo xuống

Ở chế độ Kéo xuống, khi không nhấn nút nhấn, đầu vào logic thấp sẽ xuất hiện trên chân ESP32 GPIO. Bởi vì tín hiệu tham chiếu mặt đất xuất hiện trên đầu cuối đầu vào thông qua điện trở R1. Ngược lại, khi nhấn nút nhấn, các tiếp điểm kim loại của nút nhấn sẽ tiếp xúc với tín hiệu +5V và cực đầu vào. Do đó, một đầu vào logic cao phản ánh trên chân đầu vào kỹ thuật số của bo mạch ESP32. Sơ đồ sau đây cho thấy kết nối của nút nhấn với điện trở kéo lên.

Kéo điện trở xuống với nút Nhấn Sơ đồ

Nút nhấn giao diện với ESP32

  • Nút nhấn có thể được giao tiếp với ESP32 thông qua điện trở kéo lên hoặc điện trở kéo xuống. Ở chế độ Kéo lên điện trở, khi nhấn nút nhấn, đầu vào chân GPIO sẽ cao hợp lý hoặc ngược lại.

  • Ở chế độ điện trở kéo xuống, khi nhấn nút nhấn, đầu vào chân GPIO sẽ là trạng thái thấp logic và nếu không thì logic trạng thái cao.

Vì vậy, chúng tôi sẽ sử dụng chân đầu vào kỹ thuật số của bảng phát triển ESP32 để đọc trạng thái thấp logic và logic này bằng cách sử dụng chức năng pinMode của Arduino IDE. Vì vậy, bây giờ hãy bắt đầu với sơ đồ mạch của nút nhấn giao diện với esp32 và sau đó tôi sẽ giải thích phần lập trình.

Nút nhấn và đèn LED ESP32

Vì vậy, bây giờ hãy thực hiện một ví dụ đơn giản để kết nối nút nhấn với bất kỳ chân GPIO nào và bật đèn LED được kết nối với một chân kỹ thuật số khác.

Như được hiển thị trong sơ đồ chân ở trên, chúng tôi sẽ sử dụng GPIO15 · để kết nối nút nhấn và GPIO22 · để kết nối nút nhấn. Chúng tôi có thể sử dụng bất kỳ chân GPIO nào làm chân đầu vào kỹ thuật số hoặc chân đầu ra kỹ thuật số ngoại trừ một số chân GPIO chỉ có thể được sử dụng làm chân đầu vào kỹ thuật số để biết thêm thông tin về nó

Sơ đồ mạch của nút Nhấn với ESP32

Sơ đồ dành cho giao diện nút nhấn được hiển thị bên dưới:

Nút nhấn giao diện với ESP32

  • Trong sơ đồ mạch trên, GPIO22 · được kết nối với chân cực dương của đèn LED và một chân khác của đèn LED được kết nối với mặt đất thông qua điện trở 330ohm. bạn có thể kiểm tra hướng dẫn nhấp nháy đèn LED để biết thêm thông tin về nó.

  • Nút nhấn tiếp theo, một thiết bị đầu cuối được kết nối với 3.3 volt ESP32 và các thiết bị đầu cuối khác của nút nhấn là phổ biến vớiGPIO15 · và điện trở.

  • Một đầu khác của điện trở được kết nối với mặt đất. Khi nhấn nút nhấn, logic thấp sẽ xuất hiện trên GPIO15 hoặc trạng thái nút nhấn sẽ thấp và khi nhấn nút nhấn, mức cao logic sẽ nằm trên GPIO15.

  • Vì vậy, chúng ta sẽ đọc hai trạng thái này của nút nhấn và bật và tắt đèn LED cho phù hợp.

Mã cho giao diện nút nhấn được đưa ra dưới đây. Tất cả các chức năng được sử dụng trong mã này giống như được sử dụng trong hướng dẫn cuối cùng về nhấp nháy LED ngoại trừ một chức năng hàm digitalRead. Vì vậy, tôi sẽ giải thích chức năng đọc kỹ thuật số ngay bây giờ:

digitalRead (Pin_number):Chức năng đọc kỹ thuật số được sử dụng để đọc trạng thái của chân đầu vào. Hàm digitalRead này trả về đầu vào logic HIGH hoặc logic LOW. Nếu trạng thái đầu vào của chân là CAO, nó sẽ trả về CAO và thấp khác. Bạn chỉ cần chuyển số pin để tăng cường cho chức năng này. Ví dụ trong hướng dẫn này, chúng tôi đang sử dụng số pin 15 làm đầu vào kỹ thuật số, vì vậy chúng tôi sẽ sử dụng chức năng này như digitalRead (22) này hoặc chúng tôi có thể định nghĩa 22 với bất kỳ tên nào và sử dụng tên thay vì số pin như chúng tôi đã làm trong mã ví dụ bên dưới:

// We assigned a name LED pin to pin number 22

const int LEDPIN = 22; 

// this will assign the name PushButton to pin numer 15

const int PushButton 

// This Setup function is used to initialize everything 

void setup()

{

// This statement will declare pin 22 as digital output 

pinMode(LEDPIN, OUTPUT);

// This statement will declare pin 15 as digital input 

pinMode(PushButton, INPUT);

}

 

void loop()

 

{

// digitalRead function stores the Push button state 

// in variable push_button_state

int Push_button_state = digitalRead(PushButton);

// if condition checks if push button is pressed

// if pressed LED will turn on otherwise remain off 

if ( Push_button_state == HIGH )

digitalWrite(LEDPIN, HIGH); 

}

else 

{

digitalWrite(LEDPIN, LOW); 

}

}

Vì vậy, đây là mã đơn giản được sử dụng để đọc trạng thái của nút nhấn hoặc bất kỳ công tắc nào. Vậy hãy xem code hoạt động như thế nào?

  • Trong mã, 2 dòng đầu tiên đặt tên cho chân đầu vào 15 là Nút nhấn và chân đầu ra 22 là đèn LEDPIN. Vì vậy, bây giờ bên trong mã, chúng ta có thể sử dụng tên này thay vì số pin.

  • Trong thiết lập() chức năng, chúng tôi sử dụng pinMode() chức năng khởi tạo chân PushButton dưới dạng INPUT và LEDPIN làm INPUT.

  • Trong vòng lặp() chức năng kỹ thuật sốĐọc chức năng đọc trạng thái của nút nhấn và lưu trữ giá trị của nó trong biến Push_button_state.

  • Sau đó, nếu điều kiện được sử dụng để kiểm tra trạng thái biến Push_button_state.

  • Nếu Push_button_state cho đầu ra CAO, Đèn LED sẽ được bật và nếu không, nó sẽ vẫn tắt.

Bài viết cùng chuyên mục

NHANH

NHANH

Vì Đổi mới liên tục nên Nhanh hơn

ĐÚNG

ĐÚNG

Coi trọng và ưu tiên việc làm Đúng

ĐỦ

ĐỦ

Tìm và mua Đủ Đơn hàng hơn

KỊP THỜI

KỊP THỜI

Hiệu suất tối ưu bởi Kịp Thời hơn