Nút ấn với ESP32 – Arduino IDE

Nut An Voi Esp32 Arduino Ide



ESP32 là một bo mạch IoT có thể giao tiếp với các thiết bị ngoại vi bên ngoài khác nhau để tạo đầu ra. ESP32 nhận đầu vào từ các thiết bị như nút ấn và tạo phản hồi theo đầu vào nhận được. Các nút ấn có thể được sử dụng để điều khiển nhiều cảm biến và thiết bị như điều khiển đèn LED hoặc duy trì tốc độ của động cơ. Ở đây trong bài học này, chúng ta sẽ thảo luận về giao tiếp nút nhấn với ESP32.

Sau đây là mục lục của bài học này:







1: Giới thiệu về Nút ấn



2: Hoạt động của nút nhấn



2.1: Chế độ làm việc của nút nhấn





3: Nút ấn giao tiếp với ESP32

3.1: Chân đầu ra đầu vào kỹ thuật số trong ESP32



3.2: Cách đọc đầu vào kỹ thuật số trong ESP32

3.3: Giao tiếp Nút nhấn với ESP32 Sử dụng Chức năng Đọc Kỹ thuật số

3.4: Yêu cầu phần cứng

3.5: Sơ đồ

3.6: Mã Giao tiếp ESP32 với Nút ấn

3.7: Đầu ra

1: Giới thiệu về Nút ấn

Nút nhấn là một nút đơn giản với cơ chế kiểm soát trạng thái của các máy hoặc quy trình khác nhau. Nút nhấn được làm bằng vật liệu cứng như nhựa hoặc kim loại và bề mặt trên thường phẳng để người dùng có thể ấn vào.

Trong các dự án ESP32, nút ấn được sử dụng rộng rãi để kiểm soát trạng thái đầu vào và đầu ra của chân. Công tắc chuyển đổi và nút ấn hoạt động theo các nguyên tắc hơi khác nhau. Công tắc thông thường hoặc công tắc bật tắt sẽ dừng lại sau khi được nhấn trong khi nút ấn là thiết bị hai vị trí thường dừng lại sau khi được nhả ra.

Hãy đi sâu vào nguyên lý hoạt động của nút nhấn một cách chi tiết:

2: Hoạt động của nút nhấn

Một nút ấn thường có 4 chân. 4 chân này được kết nối theo dạng một cặp chẳng hạn như hai chân phía trên được kết nối bên trong tương tự như vậy hai chân còn lại cũng được kết nối bên trong.


Để biết hai chân nào được kết nối, hãy lấy đồng hồ vạn năng (DMM) và đặt nó thành kiểm tra tính liên tục , bây giờ gắn đầu dò dương với bất kỳ chân nào của nút và sau đó lần lượt gắn đầu dò âm của đồng hồ vạn năng với các chân khác. Nếu kết nối hoàn tất giữa cả hai đầu, âm thanh bíp có thể được nghe thấy từ đồng hồ vạn năng. Hai chân được kết nối bên trong sẽ hoàn thành mạch.

2.1: Chế độ làm việc của nút nhấn

Để sử dụng nút ấn trong một mạch, chúng ta cần một chốt từ mỗi cặp được kết nối bên trong. Nếu chúng ta lấy các chân của nút ấn từ cùng một cặp được kết nối bên trong sẽ dẫn đến đoản mạch vì các chân này đã được kết nối rồi, nó sẽ bỏ qua cơ chế nút ấn.

Dựa trên cơ chế này, nút ấn có thể hoạt động ở hai chế độ sau:


Nếu chúng ta lấy một ví dụ về chế độ hiển thị trong hình dưới đây. Chúng ta có thể thấy rằng khi không nhấn nút, kết nối bên trong sẽ mở sau khi nhấn nút, đầu cuối A và B bên trong sẽ được kết nối và mạch sẽ hoàn thành.


Bây giờ chúng ta đã hoàn thành nguyên tắc cơ bản đằng sau hoạt động của các nút ấn. Tiếp theo, chúng ta sẽ giao tiếp một nút ấn đơn giản với ESP32 và điều khiển đèn LED bằng cách sử dụng nó.

3: Nút ấn giao tiếp với ESP32

Trước khi kết nối nút ấn với ESP32, người ta phải biết các chân GPIO có thể được sử dụng làm đầu vào. Bây giờ chúng ta sẽ thảo luận về các chân đầu ra đầu vào kỹ thuật số trong ESP32.

3.1: Chân đầu ra đầu vào kỹ thuật số trong ESP32

ESP32 có tổng cộng 48 mỗi chân dành riêng cho một chức năng nhất định, trong số 48 chân, một số chân không được tiếp xúc vật lý, điều đó có nghĩa là chúng ta không thể sử dụng chúng cho các mục đích bên ngoài. Các chân này được tích hợp bên trong ESP32 cho các chức năng khác nhau.

Bảng ESP32 có 2 biến thể khác nhau có 36 ghim và 30 ghim. Ở đây, sự khác biệt của 6 chân giữa cả hai bảng là do 6 chân đèn flash SPI tích hợp có sẵn để giao tiếp SPI trên một 36 biến thể chân của bảng ESP32. Tuy nhiên, 6 chân SPI này không thể được sử dụng cho các mục đích khác như đầu vào đầu ra.

Sơ đồ chân đưa ra dưới đây là của 30 chốt Bảng ESP32:


Trong số tất cả các GPIO chỉ có 4 chân ( 34, 35, 36 và 39 ) chỉ là đầu vào trong khi tất cả các chân khác có thể được sử dụng cho cả đầu vào và đầu ra. Như đã đề cập ở trên, 6 chân SPI không thể được sử dụng cho đầu vào hoặc đầu ra.

3.2: Cách đọc đầu vào kỹ thuật số trong ESP32

Đầu vào nút nhấn có thể được đọc trên chân GPIO được xác định có chức năng pinMode() cần được xác định đầu tiên bên trong mã Arduino. Chức năng này sẽ đặt chân GPIO làm đầu vào. pinMode() Cú pháp hàm như sau:

chế độ ghim ( GPIO, ĐẦU VÀO ) ;


Để đọc dữ liệu từ chân GPIO đã xác định kỹ thuật sốRead() chức năng sẽ được gọi. Sau đây là lệnh người ta có thể sử dụng để lấy dữ liệu từ nút ấn trên chân GPIO:

kỹ thuật sốĐọc ( GPIO ) ;

3.3: Giao tiếp Nút nhấn với ESP32 Sử dụng Chức năng Đọc Kỹ thuật số

Bây giờ chúng ta sẽ giao tiếp với ESP32 bằng nút nhấn bằng cách sử dụng đọc kỹ thuật số hoạt động ở bất kỳ chân GPIO nào. Lấy đầu vào từ nút ấn, đèn LED sẽ được BẬT hoặc TẮT.

3.4: Yêu cầu phần cứng

Dưới đây là danh sách các thành phần cần thiết:

    • Ban ESP32
    • một đèn LED
    • điện trở 220 Ohm
    • Nút nhấn 4 chốt
    • bánh mì
    • Kết nối dây Jumper

3.5: Sơ đồ

Hình ảnh bên dưới là sơ đồ của nút ấn với ESP32. Ở đây, đầu vào được đọc từ nút ấn ở chân GPIO 15 và đèn LED được kết nối ở chân GPIO 14.

3.6: Mã giao tiếp nút nhấn với ESP32

Bây giờ để tải mã lên trình soạn thảo ESP32 Arduino IDE sẽ được sử dụng. Mở IDE và kết nối bảng ESP32 sau đó chọn cổng COM từ phần công cụ. Khi bảng ESP32 đã sẵn sàng, hãy dán mã vào IDE và nhấp vào tải lên:

const int Push_Button = mười lăm ; /* chân kỹ thuật số mười lăm xác định nút nhấn */
const int LED_Pin = 14 ; /* chân kỹ thuật số 14 xác định DẪN ĐẾN */
int Button_State = 0 ;
thiết lập vô hiệu ( ) {
Nối tiếp.bắt đầu ( 115200 ) ;
chế độ ghim ( Push_Button, INPUT ) ; /* GPIO mười lăm bộ như Đầu vào */
chế độ ghim ( LED_Pin, ĐẦU RA ) ; /* GPIO 14 bộ như đầu ra */
}
vòng lặp trống ( ) {
Button_State = đọc kỹ thuật số ( Push_Button ) ; /* Kiểm tra trạng thái nút nhấn */
Nối tiếp.println ( Button_State ) ;
nếu ( Button_State == CAO ) { /* nếu điều kiện để kiểm tra trạng thái nút */
digitalWrite ( LED_Pin, CAO ) ; /* LED trạng thái CAO BẬT */
} khác {
digitalWrite ( LED_Pin, THẤP ) ; /* Khác ĐÈN LED TẮT */
}
}


Mã bắt đầu bằng cách xác định các chân GPIO cho đèn LED và nút bấm. Sau đó, đèn LED GPIO được khai báo là đầu ra trong khi GPIO của nút ấn được đặt làm đầu vào.

Cuối cùng, trạng thái nút ấn được kiểm tra bằng điều kiện if. Trạng thái nút nhấn cũng được in trên màn hình nối tiếp bằng cách sử dụng Serial.println(Button_State) .

Nếu đầu vào nút nhấn là đèn CAO, nó sẽ BẬT ngược lại, nó sẽ TẮT.

3.7: Đầu ra

Lúc đầu, chúng ta có thể thấy đèn LED TẮT.


Bây giờ hãy nhấn nút ấn, tín hiệu CAO sẽ được gửi đến ESP32 GPIO 15 và đèn LED sẽ BẬT.


Đầu ra tương tự cũng có thể được nhìn thấy trên màn hình nối tiếp Arduino.

Sự kết luận

ESP32 có nhiều chân GPIO có thể đọc dữ liệu kỹ thuật số từ các cảm biến như nút ấn. Sử dụng nút ấn chức năng đọc kỹ thuật số có thể dễ dàng giao tiếp với ESP32 để điều khiển các thiết bị khác nhau. Sử dụng bài viết này một lần có thể giao tiếp nút nhấn với bất kỳ chân GPIO nào của ESP32.