(Cơ điện tử Việt Nam - Vi điều khiển) Cách sử dụng các chân GPIO của bộ phát triển ESP32 với LED nhấp nháy. Bất cứ khi nào bất kỳ người mới bắt đầu nào bắt đầu tìm hiểu về bất kỳ bo mạch phát triển dựa trên vi điều khiển nào, các Chuyên gia luôn khuyến nghị người mới bắt đầu bắt đầu với ví dụ nhấp nháy LED còn được gọi là diode phát sáng . Ví dụ về nhấp nháy LED để sử dụng các chân đầu ra đầu vào mục đích chung để bật và tắt đèn LED. Bằng cách học cách điều khiển các chân GPIO, bạn sẽ có thể sử dụng các chân GPIO của bo mạch ESP32 cho các ứng dụng khác như giao diện LCD, giao diện bàn phím và các dự án hệ thống nhúng khác.
Điều kiện tiên quyết trong hướng dẫn sử dụng đèn LED nhấp nháy ESP32
Hãy bắt đầu với phần giới thiệu cơ bản về các chân đầu vào - đầu ra có mục đích chung của ESP32 Devkit. Bạn có thể sử dụng bất kỳ bảng phát triển ESP32 nào bạn muốn cho đến khi nó có chip ESP-WROOM-32 trên đó. Ngoài ra, các khái niệm được sử dụng trong bài viết này sẽ vẫn áp dụng cho các loại bo mạch ESP32 khác. Để biết thêm các tính năng của bảng này, bạn có thể xem qua hướng dẫn này:
Chúng tôi sẽ sử dụng Arduino IDE để lập trình ESP32. Vì vậy, nếu bạn không biết cách cài đặt thư viện của bảng IOT này, bạn có thể xem hướng dẫn này:
Các chân GPIO của ESP32
ESP32 Devkit hỗ trợ 36 chân GPIO và không phải tất cả các chân đều có thể được sử dụng làm chân đầu ra kỹ thuật số. Từ tổng số 30 chân, chỉ có 24 chân có thể được sử dụng làm đầu vào và đầu ra kỹ thuật số. Nhưng sáu chân như GPIO34, GPIO35, GPIO36, GPIO37, GPIO38, GPIO39 chỉ có thể được sử dụng làm chân đầu vào kỹ thuật số. Nhưng chúng tôi có đủ 24 chân có thể được sử dụng làm chân đầu ra kỹ thuật số. Vì vậy, chúng tôi có thể sử dụng bất kỳ chân nào trong số ba mươi chân để điều khiển đèn LED, rơ le, màn hình bảy đoạn, màn hình tinh thể lỏng và các thiết bị truyền động khác.
Lưu ý: GPIO6 đến GPIO 11 không tiếp xúc với sơ đồ chân của bộ phát triển ESP32 mà chúng tôi đang sử dụng trong hướng dẫn này. Vì các chân này được kết nối nội bộ với đèn flash SPI tích hợp trên chip ESP-WROOM-32.
Bạn có muốn tìm hiểu sự khác biệt giữa cảm biến và thiết bị truyền động? Kiểm tra tại đây . Để biết thêm thông tin về các chân GPIO của bảng phát triển ESP32, hãy xem bài viết này:
Bây giờ tôi tin rằng bạn đã cài đặt ESP32 trong Arduino IDE và Bạn cũng đã xem qua bài viết về sơ đồ chân của ESP32. Bây giờ chúng ta hãy xem cách nhấp nháy đèn LED bằng cách sử dụng ESP32 và Arduino IDE.
Nhấp nháy LED bằng ESP32
Như tôi đã đề cập trước đó trong ESP32, chúng ta có thể sử dụng 30 chân như một chân đầu ra kỹ thuật số. Bây giờ chúng ta hãy chọn một chân và sử dụng nó để bật và tắt đèn LED với một số độ trễ.
Trong ví dụ này, chúng tôi sẽ điều khiển một đèn LED với GPIO22 của ESP32. Điều đó có nghĩa là chúng ta sẽ học cách sử dụng chân GPIO làm chân đầu ra kỹ thuật số. Chúng tôi kết nối đèn LED với GPIO22 thông qua điện trở giới hạn dòng điện là 220 ohm. Ví dụ nhấp nháy đèn LED ESP32 này hoạt động như được đề cập bên dưới:
- Đèn LED ĐỎ Bật trong một giây có nghĩa là GPIO22 chuyển sang trạng thái hoạt động cao
- Trong bước tiếp theo, đèn LED tắt trong một giây có nghĩa là GPIO22 chuyển sang trạng thái hoạt động thấp
- Hai bước trên cứ lặp lại như hình dưới đây:
Sơ đồ kết nối LED nhấp nháy
Như bạn có thể thấy trong sơ đồ chân ở trên của ESP32, chúng ta có tổng cộng 36 chân GPIO, nhưng chúng tôi sẽ sử dụng GPIO22 làm chân đầu ra kỹ thuật số. Trên các bảng khác nhau, các chốt này có thể được đặt ở các vị trí khác nhau. Do đó, bạn cần kiểm tra biểu dữ liệu của nó trước khi sử dụng số pin trong lập trình mà tôi sẽ giải thích trong phần lập trình của bài viết này.
Bây giờ hãy kiểm tra sơ đồ và tạo nó trên breadboard của bạn như hình dưới đây:
Bây giờ thực hiện kết nối mạch theo sơ đồ mạch trên trên bảng mạch bánh mì.
- Kết nối GPIO22 với chân cực dương hoặc cực dương của đèn LED. Chân dương thường có cạnh tròn.
- Kết nối đầu kia của đèn LED với đất thông qua điện trở 330 ohm. Điện trở được sử dụng như một điện trở hạn chế dòng điện.
- Mỗi chân có thể cung cấp dòng điện tối đa là 10mA. Vì vậy điện trở giới hạn dòng được sử dụng để giới hạn dòng điện không vượt qua giới hạn này.
- Nếu bạn muốn sử dụng chân GPIO để điều khiển bất kỳ thiết bị nào khác có yêu cầu dòng điện cao hơn, bạn nên kết nối bóng bán dẫn ở giữa hoặc mạch tích hợp trình điều khiển hiện tại như IC mạch điều khiển rơ le ULN2003.
Các chức năng của Arduino Pins ESP32 GPIO
Để viết mã cho đèn LED nhấp nháy bằng ESP32, trước tiên, bạn cần hiểu ba chức năng chính được sử dụng trong Arduino IDE để điều khiển các chân đầu ra đầu vào mục đích chung. Nếu bạn đã sử dụng Arduino IDE để lập trình Arduino hoặc esp8266, bạn sẽ quen thuộc với các chức năng sau:
- pinMode (): Chức năng này được sử dụng để chọn chế độ chân đầu ra đầu vào làm đầu vào hoặc đầu ra. Đối số đầu tiên của hàm này là số pin mà bạn muốn khai báo dưới dạng đầu vào hoặc đầu ra. Đối số thứ hai cho hàm này là hướng bạn muốn sử dụng ghim kỹ thuật số. Ví dụ, nếu chúng ta viết pinMode (22, OUPUT), nó sẽ khai báo chân số 22 là chân đầu ra kỹ thuật số.
- digitalWrite (pin_number, LOGIC_HIGH_LOW): Chức năng này được sử dụng để điều khiển chân đầu ra kỹ thuật số. Đối số đầu tiên là số pin và giá trị thứ hai của hàm này là trạng thái logic 'HIGH' hoặc 'LOW'. Ví dụ: nếu bạn viết digitalWrite (22, HIGH), nó sẽ làm cho chân số 22 logic HIGH hoặc 3,3 volt và nếu bạn viết digitalWrite (22, LOW), nó sẽ làm cho chân đầu ra kỹ thuật số 22 LOW hoặc bạn sẽ nhận được 0 volt ở chân đầu ra.
- delay(value): Hàm này được sử dụng để tạo độ trễ tính bằng mili giây. Nếu bạn muốn thêm thời gian trễ một giây giữa bật và tắt đèn LED, bạn sẽ sử dụng độ trễ trạng thái này (1000).
- setup( ): Trong Arduino IDE, chức năng thiết lập được sử dụng để khai báo hoặc khởi tạo. Một hàm pinMode được sử dụng để khai báo các chân kỹ thuật số. Vì vậy, nó sẽ được định nghĩa bên trong chức năng thiết lập. Nó sẽ trở nên rõ ràng hơn khi bạn nhìn thấy mã ví dụ ở cuối bài viết này.
- Loop( ): Trong Arduino IDE, chức năng vòng lặp giống như một chức năng chính trong lập trình c. Trong lập trình c, bất cứ khi nào bạn muốn thực hiện lặp đi lặp lại các tác vụ nhất định, chúng ta sử dụng các câu lệnh c đó bên trong vòng lặp. Tương tự, chúng tôi sử dụng chức năng vòng lặp trong Arduino IDE để thực hiện lặp đi lặp lại các tác vụ nhất định.
Mã Arduino
Mã này được sử dụng để nhấp nháy LED được kết nối với chân số 22 với độ trễ là một giây.
void setup()
{
pinMode(22, OUTPUT); // Set GPIO22 as digital output pin
}
void loop()
{
digitalWrite(22, HIGH); // Set GPIO22 active high
delay(1000); // delay of one second
digitalWrite(22, LOW); // Set GPIO22 active low
delay(1000); // delay of one second
}
Thử nghiệm
Bây giờ để chạy ví dụ về đèn LED nhấp nháy này bằng cách sử dụng ESP32, chỉ cần sao chép mã này vào Arduino IDE và biên dịch mã.
Sau khi biên dịch mã, nhấp vào nút tải lên để tải mã lên ESP32 devkit.
Trước khi tải lên mã, hãy đảm bảo rằng bạn đã chọn bảng và chân COM mà bảng ESP32 của bạn được kết nối.
Nếu bạn không thấy bảng này trong tùy chọn toots> port, bạn cần cài đặt trình điều khiển cho bảng này, bạn có thể tải xuống và cài đặt trình điều khiển từ liên kết này .
Đi tới Tools > Boards và chọn ESP32
Chuyển đến Tools> Upload speed và chọn 115200
Ngoài ra, chọn Tần số flash là 80Mhz từ các tùy chọn công cụ.
Bây giờ bấm vào nút tải lên.
Sau đó, bạn sẽ thấy đèn LED sẽ nhấp nháy với độ trễ là 1 giây.
Đây là hướng dẫn bắt đầu với ESP32. Để khám phá thêm các hướng dẫn và dự án, hãy làm theo các hướng dẫn sau:
- Nút nhấn giao diện với ESP32
- Cách sử dụng Cảm biến hiệu ứng hội trường tích hợp của ESP32
- Sử dụng cảm biến cảm ứng của ESP32 làm nút nhấn
- Giao diện LCD I2C với các ví dụ
- Tạo máy chủ Web ESP32 trong Arduino IDE