• Trang chủ
  • ESP32

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

Quản Trị Viên
Quản Trị Viên
08 tháng 8
0 minutes read

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

(Cơ điện tử Việt Nam - Vi điều khiển) Nút nhấn với ESP32 - chân GPIO làm đầu vào kỹ thuật số,  trong hướng dẫn thứ năm này trong loạt bài hướng dẫn về ESP32, chúng tôi sẽ dạy bạn cách sử dụng chân GPIO của ESP32 như chân đầu vào kỹ thuật số và cách giao diện một nút nhấn với bảng phát triển ESP32. Nút nhấn được sử dụng để điều khiển thiết bị như bật và tắt điốt phát quang khi nhấn hoặc không nhấn nút nhấn. Tương tự, chúng ta có thể sử dụng nút nhấn để tăng hoặc giảm tốc độ của động cơ điện một chiều. Khi bạn sử dụng nút nhấn với ESP32, chúng ta phải sử dụng chân GPIO làm chân đầu vào kỹ thuật số. Bởi vì chúng ta sẽ đọc trạng thái của nút nhấn. Nút nhấn sẽ đưa ra hai trạng thái logic cao hoặc thấp.

Trong hướng dẫn trước, chúng ta đã học cách sử dụng chân GPIO của ESP32 làm chân đầu ra kỹ thuật số bằng cách tạo một ví dụ nhấp nháy LED:

  • Chân GPIO của ESP32 - Ví dụ về nhấp nháy LED

Chúng tôi có một hướng dẫn tương tự với MicroPython:

  • Lập trình GPIO ESP32 và ESP8266 với MicroPython - Ví dụ về nhấp nháy đèn LED

Cấu hình giao diện nút nhấn

Có hai chế độ cấu hình để giao diện một nút nhấn với bảng ESP32. Chúng ta hãy thảo luận về cả hai chế độ này từng cái một.

Chế độ Pull-Up

Ở chế độ Pull-Up, khi không nhấn nút nhấn, đầu vào logic high sẽ xuất hiện trên chân GPIO của ESP32. Bởi vì tín hiệu 5V xuất hiện trên cực đầu vào thông qua một điện trở R1. Ngược lại, khi nhấn nút nhấn, các tiếp điểm bằng kim loại của nút nhấn sẽ tiếp xúc với đầu nối đất và đầu nối đầu vào. Do đó, một đầu vào logic low 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 với chân đầu vào kỹ thuật số của vi điều khiển, chúng ta có thể xác định nút nhấn có được nhấn hay không. Sơ đồ sau cho thấy kết nối của một nút nhấn với một điện trở kéo lên.

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

Chế độ Pull-Down

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

Nút nhấn với ESP32 - chân GPIO làm đầu vào kỹ thuật 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. Trong chế độ kéo điện trở lên, khi không nhấn nút ấn, đầu vào chân GPIO sẽ có giá trị logic high hoặc ngược lại.
  • Trong chế độ điện trở kéo xuống, khi nhấn nút nhấn, đầu vào chân GPIO sẽ ở trạng thái logic low và ngược lại là trạng thái logic high.

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 hợp lý 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ờ chúng ta hãy bắt đầu với một sơ đồ mạch của giao diện nút nhấn với esp32 và sau đó tôi sẽ giải thích phần lập trình.

Nếu bạn là người mới bắt đầu và không có ý tưởng về bảng phát triển ESP32, bạn có thể xem hướng dẫn này:

  • Bắt đầu với bảng phát triển ESP32 

Arduino IDE được sử dụng để lập trình ESP32 trong loạt bài hướng dẫn này và chúng ta có thể cài đặt bo mạch ESP32 trong Arduino IDE. Bạn có thể kiểm tra hướng dẫn này:

  • Cách cài đặt thư viện ESP32 trong Arduino IDE

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

Vì vậy, bây giờ chúng ta hãy thực hiện một ví dụ đơn giản để kết nối một nút nhấn với bất kỳ chân GPIO nào và bật mộ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 một 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ó, hãy xem hướng dẫn về chân ESP32.

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

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

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

  • 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 nối với đấ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 đầu cuối được kết nối với 3,3 volt của ESP32 và các đầu cuối khác của nút nhấn là chung với GPIO15 và điện trở.
  • Một đầu khác của điện trở được nối với đất. Khi không nhấn nút nhấn, mức logic low sẽ xuất hiện trên GPIO15 hoặc trạng thái nút nhấn sẽ ở mức thấp và khi nhấn nút nhấn, mức logic high sẽ xuất hiện 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 tắt LED cho phù hợp.

Code

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ề đèn LED nhấp nháy ngoại trừ một chức năng digitalRead function. 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à HIGH, nó sẽ trả về HIGH và nếu không thì ở mức LOW. Bạn chỉ cần chuyển số pin làm phần bổ sung cho chức năng này. Ví dụ trong hướng dẫn này, chúng tôi đang sử dụng chân số 15 làm đầu vào kỹ thuật số, vì vậy chúng tôi sẽ sử dụng hàm này như digitalRead (22) này hoặc chúng tôi có thể xác định 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 ví dụ mã 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ì vậy, chúng ta hãy xem mã 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à PushButton và chân đầu ra 22 là LEDPIN. Vì vậy, bây giờ bên trong mã, chúng ta có thể sử dụng những tên này thay vì số pin.
  • Trong chức năng setup(), chúng tôi sử dụng chức năng pinMode () khởi tạo chân PushButton làm ĐẦU VÀO và LEDPIN làm ĐẦU VÀO.
  • Trong chức năng loop(), digitalRead hàm đọc trạng thái của nút nhấn và lưu 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 của biến Push_button_state.
  • Nếu Push_button_state cho đầu ra HIGH, LEDPIN sẽ được bật và nếu không, nó sẽ vẫn tắt.

Sau khi xem qua hướng dẫn này, chắc chắn bạn sẽ có thể sử dụng các chân GPIO của ESP32 như một chân đầu vào kỹ thuật số. Bạn cũng có thể xem các hướng dẫn khác về ESP32:

  • Các kênh chuyển đổi tương tự sang kỹ thuật số của ESP32 và hướng dẫn đo điện áp 
  • Chân cảm ứng ESP32 - Cách sử dụng chân cảm ứng làm nút kỹ thuật số
  • Hướng dẫn từng bước về cảm biến hiệu ứng hội trường tích hợp của ESP32
  • Các kênh điều chế độ rộng xung của ESP32 với tạo PWM chu kỳ nhiệm vụ cố định và thay đổi 
  • Giao diện LCD I2C với ESP32
  • Gán địa chỉ IP cố định / tĩnh cho ESP32
  • Máy chủ web dựa trên ESP32 trong Arduino IDE - Cách điều khiển đèn LED từ máy chủ 
  • Máy chủ web điểm truy cập mềm ESP32 trong Arduino IDE
  • Máy chủ web ESP32 trong Arduino IDE - Điều khiển động cơ Servo

Also Read:
Quản Trị Viên
Quản Trị Viên
Related Posts
  • Skeleton Image
  • Skeleton Image
  • Skeleton Image
  • Skeleton Image
  • Skeleton Image
  • Skeleton Image
Trending
  • Cơ Khí

    Khóa Học AutoCAD Cơ Bản - Nền Tảng Thiết Kế 2D Cơ Khí

    21 tháng 3
    Khóa Học AutoCAD Cơ Bản - Nền Tảng Thiết Kế 2D Cơ Khí
  • Điện Tử Viễn Thông Mạng Cố Định Mạng Di Động Mạng Lưới Tối Ưu Hóa Viễn Thông

    Khóa Học Tối Ưu Hóa Mạng Lưới Viễn Thông Tại SmartIO Academy

    09 tháng 7
    Khóa Học Tối Ưu Hóa Mạng Lưới Viễn Thông Tại SmartIO Academy
  • Bài Viết Nổi Bật Vi Mạch Điện Tử

    Lộ Trình Học Thiết Kế Vi Mạch Điện Tử Cho Người Mới Bắt Đầu

    16 tháng 4
    Lộ Trình Học Thiết Kế Vi Mạch Điện Tử Cho Người Mới Bắt Đầu
  • PotPlayer Thủ Thuật Video

    Hướng Dẫn Sử Dụng PotPlayer Toàn Tập - Xem Video Nước Ngoài Có Vietsub

    07 tháng 11
    Hướng Dẫn Sử Dụng PotPlayer Toàn Tập - Xem Video Nước Ngoài Có Vietsub
  • Đào tạo Tin Tức

    Mức lương Cơ khí tự động hóa (cơ điện tử): Mức lương trung bình của một kỹ sư cơ điện tử

    23 tháng 1
    Mức lương Cơ khí tự động hóa (cơ điện tử): Mức lương trung bình của một kỹ sư cơ điện tử
Label
  • Ajax
  • Allen Bradley
  • Altium Designer 22
  • An Toàn Điện
  • Arduino
  • ASP.NET
  • AutoCAD Electrical
  • AVR ATMEGA32
  • Bài Viết Nổi Bật
  • Bản Vẽ Điện
  • Bảo Mật
  • Beaglebone Black
  • C
  • Catia
  • CCNA
  • CMS
  • Computer Vision
  • Công Nghệ
  • Cơ Khí
  • CSS
  • CubeIDE
  • Data Analyst
  • Data Analytics
  • Data Science
  • Datasheet
  • Deep Learning
  • Dịch Vụ
  • Đào tạo
  • Điện
  • Điện Thoại
  • Điện tử
  • Điện Tử Viễn Thông
  • Điều Khiển Quá Trình
  • Đồ án
  • Ebook
  • ECU_Ô Tô
  • Embedded Linux
  • ESP32
  • ESP8266
  • EV
  • Excel
  • FreeRTOS
  • Giáo trình
  • Go
  • Golang
  • Google Shared Drive
  • Google Workspace
  • Hệ Thống Nhúng
  • HMI
  • Hội Thảo
  • HTML
  • Hướng Dẫn
  • Internet Of Things
  • iOS
  • IoT
  • JavaScript
  • Khóa Học
  • Khóa Học Miễn Phí
  • Khóa học PLC
  • Khóa học Vi Điều Khiển
  • Kiến Thức Chuyên Ngành
  • Kỹ Thuật Số
  • LabVIEW
  • Lập Trình
  • Lập Trình Nhúng
  • Linux
  • Machine Learning
  • Mạng Cố Định
  • Mạng Di Động
  • Mạng Lưới
  • Mạng Truyền Thông Công Nghiệp
  • MATLAB
  • Máy Tính
  • MERN Fullstack
  • Microblaze
  • Microsoft
  • MongoDB
  • Motion Control Kinetix
  • MVC
  • MVC5
  • MySQL
  • NODEJS
  • OCR
  • OpenCV
  • Orcal
  • PCB
  • Phần Mềm
  • Pic
  • PLC
  • PLCopen
  • PotPlayer
  • Power BI
  • Project
  • Python
  • Quản Lý Xí Nghiệp
  • Quản Trị Mạng
  • Raspberry Pi
  • Raspberry Pi Pico
  • React js
  • Robot Công Nghiệp
  • ROS
  • RSLogix500 & 5000
  • SCADA
  • Self Driving Car
  • Siemens
  • SIMATIC WinCC V7
  • SolidWorks
  • SQL
  • STM32
  • STM32CubeMX 5
  • Thị giác máy tính
  • Thủ Thuật
  • TIA Portal
  • Tin Học Văn Phòng
  • Tin Tức
  • Tối Ưu Hóa
  • Tự Động Hóa
  • Tự Động Hóa Công Nghiệp
  • UDEMY
  • Vẽ kỹ thuật
  • Vi Điều Khiển
  • Vi Mạch Điện Tử
  • Video
  • Việc Làm
  • Viễn Thông
  • Vitis IDE
  • Xe Tự Lái
  • Xử lý hình ảnh
  • Contact
  • Bug
  • Report
  • HTML Generator
© 2026 SmartIO Academy by SmartIO Group

Share link

  • Copy link Copied
  • X
  • Facebook
  • WhatsApp
  • Telegram
  • LinkedIn
  • Pinterest
  • Snapchat