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

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

Chân GPIO ESP32

Trên thị trường, các bộ dụng cụ dành cho nhà phát triển ESP32 khác nhau có sẵn và bộ dụng cụ được sử dụng trong hướng dẫn này có 36 chân GPIO, mặc dù không phải tất cả chúng đều có thể được sử dụng làm chân đầu ra kỹ thuật số. Trong tổng số 30 chân, 24 chân có thể hoạt động như cả đầu vào và đầu ra kỹ thuật số, trong khi sáu chân còn lại (GPIO34, GPIO35, GPIO36, GPIO37, GPIO38, GPIO39) chỉ có thể đóng vai trò là chân đầu vào kỹ thuật số. Tuy nhiên, 24 chân có sẵn cho đầu ra kỹ thuật số là đủ để cấp nguồn cho đèn LED, rơle, màn hình và các bộ truyền động khác. Do đó, bất kỳ chân nào trong số ba mươi chân đều có thể được sử dụng cho mục đích này.

Lưu ý: GPIO6 đến GPIO 11 không tiếp xúc với sơ đồ chân của bộ công cụ phát triển ESP32 mà chúng tôi đang sử dụng trong hướng dẫn này. Bởi vì các chân này được kết nối bên trong với đèn flash SPI tích hợp trên chip ESP-WROOM-32.

Bây giờ tôi tin rằng bạn đã cài đặt ESP32 trong Arduino IDE Bạn cũng đã xem qua bài viết về sơ đồ chân ESP32. Bây giờ chúng ta hãy xem cách nhấp nháy đèn LED bằng ESP32 và Arduino IDE.

Ánh xạ chân ESP32

Ví dụ về điều khiển nhấp nháy đèn LED sử dụng ESP32

Như tôi đã đề cập trước đó trong ESP32, chúng ta có thể sử dụng 30 chân làm chân đầu ra kỹ thuật số. Bây giờ chúng ta hãy chọn một pin 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 đè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 ohms. Ví dụ nhấp nháy 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 cao hoạt động

  • Trong bước tiếp theo, đèn LED sẽ tắt trong một giây, có nghĩa là GPIO22 chuyển sang trạng thái thấp hoạt động

  • Hai bước trên tiếp tục lặp lại như hình dưới đây:

Ví dụ về đèn LED nhấp nháy ESP32 trong Arduino IDE

Như bạn có thể làm trong sơ đồ sơ đồ chân trên của ESP32, chúng tôi 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ân này có thể được đặt ở các vị trí khác nhau. Do đó, bạn cần kiểm tra bảng 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à làm cho nó trên bảng bánh mì của bạn như hình dưới đây:

Đèn LED nhấp nháy ESP32

Bây giờ thực hiện kết nối mạch theo sơ đồ mạch trên trên bảng bánh mì.

  • Kết nối GPIO22 · với cực dương hoặc chân dương của đèn LED. Pin dương thường là cạnh tròn.

  • Kết nối đầu kia của đèn LED với mặt đất thông qua điện trở 330 ohm. Điện trở được sử dụng như một điện trở giới hạn hiện tại.

  • Mỗi chân có thể cung cấp dòng điện tối đa 10mA. Vì vậy, điện trở giới hạn hiện tại được sử dụng để hạn chế dòng điện không vượt quá giới hạn này.

  • Nếu bạn muốn sử dụng chân GPIO để lái bất kỳ thiết bị nào khác có yêu cầu hiện tại 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

ESP32 GPIO Pins Chức năng Arduino

Để 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 để kiểm soát các chân đầu ra đầu vào có mục đích chung. Nếu bạn đã sử dụng Arduino IDE cho 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à bạn muốn sử dụng pin kỹ thuật số theo hướng nào. Ví dụ: nếu chúng ta viết pinMode (22, OUPUT), nó sẽ khai báo số pin 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ẽ tạo ra số pin 22 logic CAO 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 THẤP hoặc bạn sẽ nhận được không volt ở chân đầu ra.

  • delay(value):Chức năng này được sử dụng để tạo ra độ trễ tính bằng mili giây. Nếu bạn muốn thêm độ trễ một giây giữa khi 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. Chức năng pinMode được sử dụng để khai báo các chân kỹ thuật số. Vì vậy, nó sẽ được xác định 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.

  • Vòng lặp():Trong Arduino IDE, hàm loop giống như một hàm 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 một số tác vụ nhất định lặp đi lặp lại, chúng tôi 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 một số tác vụ nhất định lặp đi lặp lại.

Mã Arduino

Mã này được sử dụng để nhấp nháy đèn LED được kết nối với chân số 22 với độ trễ 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

}

Code bao gồm hai hàm: setup() và loop().

Hàm setup() được gọi một lần khi bo mạch được bật nguồn hoặc đặt lại lần đầu tiên. Nó đặt chế độ của GPIO22 thành một chân đầu ra.

Hàm loop() được gọi đi gọi lại sau khi setup() và chứa logic chính của chương trình.

Trong vòng lặp (), chân kỹ thuật số 22 được bật (đặt thành trạng thái HIGH) bằng cách sử dụng hàm digitalWrite (). Sau đó, độ trễ 1000 mili giây (1 giây) được đưa ra bằng cách sử dụng hàm delay(). Sau khi trì hoãn, chân 22 bị tắt (đặt ở trạng thái THẤP) bằng cách sử dụng lại hàm digitalWrite (). Một độ trễ khác là 1000 mili giây được giới thiệu. Quá trình bật và tắt chốt này được lặp lại vô thời hạn trong một vòng lặp.

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

Tóm lại, mã này bật và tắt chân kỹ thuật số (GPIO22) trên bảng Arduino với độ trễ 1 giây giữa mỗi lần thay đổi trạng thái. Điều này có thể được sử dụng cho các mục đích khác nhau như nhấp nháy đèn LED được kết nối với chốt, điều khiển rơle hoặc gửi tín hiệu đến các thiết bị khác.

Bản demo điều khiển đèn LED nhấp nháy bằng ESP32

Bây giờ để chạy ví dụ này về đèn LED nhấp nháy bằ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 devkit ESP32.

Trước khi tải mã lên, 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 công cụ > cổng, 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 công cụ>Bảng và chọn ESP32

Đi tới công cụ > Tốc độ tải lên và chọn 115200

Ngoài ra, hãy chọn Tần số flash 80Mhz từ các tùy chọn công cụ.

Bây giờ hãy nhấp vào nút tải lên.

>>> 100+ Mã Sản Phẩm Dây Rút: https://mecsu.vn/san-pham/day-rut-nhua.5op

>>> 1000+ Mã Sản Phẩm Đầu Cosse: https://mecsu.vn/san-pham/dau-cosse.Q1j

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