Tìm kiếm mã

Hướng dẫn ESP32 7/55 - Sử dụng Mảng với Lập trình ESP32 Arduino - Bộ học IoT ESP32 của SunFounder

Hướng dẫn ESP32 7/55 - Sử dụng Mảng với Lập trình ESP32 Arduino - Bộ học IoT ESP32 của SunFounder

Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng mảng trong lập trình ESP32 Arduino. Mảng cho phép bạn lưu trữ nhiều giá trị trong một biến duy nhất, giúp việc quản lý dữ liệu dễ dàng hơn, đặc biệt khi xử lý các tập hợp các mục tương tự. Hướng dẫn này sẽ hướng dẫn bạn cách định nghĩa, truy cập và sửa đổi mảng, cũng như sử dụng các vòng lặp để tương tác với chúng một cách hiệu quả. Hiểu được những khái niệm này sẽ nâng cao đáng kể khả năng lập trình của bạn với ESP32.

Chúng ta sẽ đặc biệt đề cập đến việc sử dụng các loại vòng lặp khác nhau, chẳng hạn như for, whiledo while, để duyệt qua các phần tử của mảng. Điều này sẽ giúp bạn tự động hóa các tác vụ và làm cho chương trình của bạn hiệu quả hơn. Để xem các khái niệm này hoạt động, hãy xem video tại 2:30 để có phần trình diễn thực tế.

Phần cứng được giải thích

Thành phần phần cứng chính mà chúng ta sẽ sử dụng trong hướng dẫn này là vi điều khiển ESP32. ESP32 là một vi điều khiển mạnh mẽ, chi phí thấp, có cả khả năng Wi-Fi và Bluetooth, phù hợp cho nhiều ứng dụng IoT. Bo mạch này có thể thực hiện các tác vụ tương tự như Arduino Uno trong khi cung cấp thêm các chức năng bổ sung, chẳng hạn như kết nối đám mây.

Trong hướng dẫn cụ thể này, chúng ta sẽ sử dụng một mảng để điều khiển đầu ra thông qua các chân kỹ thuật số. Mỗi chân có thể được đặt ở mức cao hoặc thấp, cho phép chúng ta tạo ra các mẫu hoặc hành vi khác nhau dựa trên dữ liệu được lưu trữ trong mảng. Các chân GPIO của ESP32 sẽ được cấu hình cho đầu ra, cho phép chúng ta điều khiển các thiết bị hoặc linh kiện được kết nối.

Hướng dẫn nối dây

ESP32-07_74HC595_walking_light_wiring

Để nối dây ESP32 của bạn cho hướng dẫn này, hãy bắt đầu bằng cách kết nối các chân kỹ thuật số. Kết nối chân STcp (27) với chân ST_CP của thanh ghi dịch của bạn. Chân SHcp (26) nên được kết nối với chân SH_CP của thanh ghi dịch. Cuối cùng, kết nối chân DS (25) với chân DS của thanh ghi dịch. Đảm bảo rằng chân nối đất của ESP32 được kết nối với chân nối đất của thanh ghi dịch để cung cấp một tham chiếu chung.

Đảm bảo cấp nguồn cho ESP32 bằng nguồn 3.3 V ổn định. Nếu bạn đang sử dụng các linh kiện bổ sung, hãy đảm bảo chúng tương thích với mức điện áp của ESP32. Điều quan trọng là phải kiểm tra lại các kết nối của bạn trước khi cấp nguồn cho hệ thống để tránh hư hỏng tiềm ẩn (trong video tại 4:10).

Ví dụ mã và hướng dẫn chi tiết

Trong đoạn mã được cung cấp, chúng ta định nghĩa một mảng có tên datArray chứa các giá trị nhị phân. Mỗi giá trị trong mảng tương ứng với một mẫu khác nhau có thể được xuất ra thông qua các chân GPIO. Mảng được định nghĩa như sau:

int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};

Mảng này chứa các biểu diễn nhị phân, trong đó mỗi bit tương ứng với một trạng thái chân (bật hoặc tắt). Trong hàm loop(), chúng ta duyệt qua mảng để xuất ra các mẫu này bằng vòng lặp for:

for(int num = 0; num < 10; num++) {
    digitalWrite(STcp, LOW); 
    shiftOut(DS, SHcp, MSBFIRST, datArray[num]);
    digitalWrite(STcp, HIGH); 
    delay(1000);
}

Trong vòng lặp này, chúng ta liên tục gửi dữ liệu từ datArray đến thanh ghi dịch, tạo ra hiệu ứng đèn chạy. delay(1000) tạo ra một khoảng dừng giữa mỗi mẫu, cho phép các thay đổi được nhìn thấy rõ ràng. Để có mã đầy đủ, vui lòng tham khảo bên dưới vì nó sẽ được tải động.

Trình diễn / Điều gì sẽ xảy ra

Sau khi hoàn tất việc nối dây và tải mã lên, bạn sẽ thấy hiệu ứng đèn chạy trên các thiết bị được kết nối. Mỗi bit trong mảng sẽ sáng lên tuần tự, tạo ra một mẫu trực quan hấp dẫn. Hãy cẩn thận với các kết nối bị đảo ngược vì chúng có thể dẫn đến hành vi không mong muốn (trong video tại 8:15).

Mốc thời gian video

  • 00:00 Bắt đầu
  • 1:24 Giới thiệu
  • 3:15 Chip thanh ghi dịch 74HC595
  • 5:25 Nối dây đèn chạy
  • 18:56 Giải thích mã Arduino cho 74HC595
  • 24:24 Trình diễn dự án
  • 25:49 Sửa mã
  • 28:11 Đèn di chuyển qua lại
  • 30:28 Đèn chạy

Hình ảnh

ESP32-07_74HC595_walking_light_wiring
ESP32-07_74HC595_walking_light_wiring
ESP32-07_74HC595_walking_light_schematic
ESP32-07_74HC595_walking_light_schematic
807-ESP32 Tutorial 7/55 - Walking Light using 74HC595 and learn array
Ngôn ngữ: C++
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP 
const int DS = 25; //DS 

int datArray[] = {B00000000, B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111};

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}
void loop()
{
  for(int num = 0; num <10; num++)
  {
    digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
    delay(1000);
  }
}

Tài nguyên & tài liệu tham khảo

Tập tin📁

Không có tệp nào khả dụng.