Cảm biến cảm ứng ESP32 - Cách sử dụng chân cảm ứng làm nút

Cảm biến cảm ứng ESP32 - Cách sử dụng chân cảm ứng làm nút

(Cơ điện tử Việt Nam - Vi điều khiển) Trong hướng dẫn này, bạn sẽ học cách sử dụng bảng phát triển ESP32 và cách sử dụng cảm ứng esp32 làm nút nhấn mà không cần kết nối nút nhấn bên ngoài. Chip ESP32 cung cấp mười cảm biến cảm ứng, các cảm biến cảm ứng này được tích hợp sẵn trong chip ESP32. 

Các cảm biến cảm ứng này là loại điện dung, được chia sẻ với các chân GPIO của ESP32. Cảm biến điện dung có thể phát hiện các thay đổi điện trên các chân GPIO tương ứng. Ví dụ: nếu bạn chạm vào bất kỳ chân nào trong số này, chân GPIO sẽ tạo ra đầu ra theo điện tích trên ngón tay của bạn. Bởi vì cơ thể con người cũng giữ một số điện tích. Do đó các cảm biến cảm ứng này còn được gọi là cảm biến điện dung. 

Vì vậy, bây giờ chúng ta hãy xem chân GPIO nào được ánh xạ tới các cảm biến này và sau đó, chúng ta sẽ xem cách sử dụng chúng để đo các biến thể điện và ở cuối bài viết, Tôi sẽ cung cấp cho bạn một ví dụ về cách sử dụng các cảm biến này như một nút bấm hoặc nút nhấn, bạn có thể kiểm tra dự án của chúng tôi trên thực tế nút nhấn giao tiếp với bảng phát triển ESP32.

Lập bản đồ ghim các chân GPIO của ESP32 với cảm biến cảm ứng trong Devkit

Bản đồ chân của các chân cảm ứng với các chân GPIO được hiển thị bên dưới. Ánh xạ pin này dành cho ESP32 Devkit DOIT. Nhưng bạn có thể kiểm tra hình ảnh sơ đồ chân của các loại bảng phát triển ESP32 khác. Devkit hỗ trợ 9 chân cảm ứng trong tổng số 10 chân cảm ứng có trên chip ESP32 WROOM. Touch1 không khả dụng trên phiên bản ESP32 này. Vì Touch1 được chia sẻ với GPIO0 và nó không có sẵn trên bảng Devkit DOIT. Phần còn lại của ánh xạ pin được đưa ra bên dưới và cũng được hiển thị trong hình ảnh bên dưới. Trong hình ảnh, các hình chữ nhật có màu xanh lam hiển thị một cảm biến cảm ứng ở cả hai mặt của bảng phát triển.

  • Touch0 >> GPIO4
  • Touch1 >> Không khả dụng trên phiên bản Devkit 30 pin nhưng khả dụng trên phiên bản Devkit 36 ​​pin 
  • Touch2 >> GPIO2
  • Touch3 >> GPIO15
  • Touch4 >> GPIO13
  • Touch5 >> GPIO12
  • Touch6 >> GPIO14
  • Touch7 >> GPIO27
  • Touch8 >> GPIO33
  • Touch9 >> GPIO32

Cảm biến cảm ứng ESP32 - Cách sử dụng chân cảm ứng làm nút

Vì vậy, bây giờ chúng ta hãy xem làm thế nào để lập trình chân cảm biến cảm ứng và đọc các thay đổi điện trên các chân này. Nhưng trước khi bắt đầu hướng dẫn này, sau đây là các điều kiện tiên quyết cho hướng dẫn này:

Bây giờ, hãy tạo sơ đồ mạch này trên breadboard.

Cảm biến cảm ứng ESP32 - Cách sử dụng chân cảm ứng làm nút

Trong sơ đồ mạch trên, touch0 được sử dụng được ánh xạ với GPIO4. Bây giờ chúng ta hãy xem cách viết mã để đo giá trị cảm biến cảm ứng và gửi giá trị này trên màn hình nối tiếp của Arduino IDE.

Chương trình của cảm biến cảm ứng ESP32

Để viết mã cho cảm biến cảm ứng, chúng ta cần đến chức năng touchRead của Arduino. Nó rất dễ dàng để sử dụng chức năng touchRead.

touchRead (touch_sensor_pin_number):  Chức năng này được sử dụng để đọc giá trị của giá trị cảm biến chạm được liên kết với chân cảm ứng. bạn chỉ cần chuyển tên của pin cảm ứng cho chức năng này. Ví dụ, nếu bạn muốn sử dụng touch pin zero, bạn sẽ chỉ cần sử dụng chức năng này như touchRead (T0).

Bây giờ, chúng ta hãy chuyển sang làm việc một phần của chức năng này. Dưới đây là một đoạn mã đơn giản cho hướng dẫn này.

int touch_sensor_value=0;

void setup()

{

Serial.begin(115200);

Serial.println("Touch sensor tutorial ESP32");

}


void loop()

{


touch_sensor_value = touchRead(T0);

Serial.print("Touch0 value is = ");

Serial.println( touch_sensor_value);

delay(1000);

}

Trong mã này, biến touch_sensor_value được sử dụng để lưu trữ đầu ra của hàm touchRead.

int touch_sensor_value=0;

Trong chức năng thiết lập, giao tiếp uart được khởi tạo với tốc độ truyền là 115200 và sau đó, hàm Serial.println () được sử dụng để truyền chuỗi “Hướng dẫn cảm biến cảm ứng ESP32” đến màn hình nối tiếp của Arduino IDE.

Serial.begin(115200);

Serial.println("Touch sensor tutorial ESP32");

Bây giờ đến phần chính của vòng hướng dẫn này, trong phần vòng lặp, chức năng touchRead (T0) sẽ đọc giá trị của cảm biến cảm ứng trên GPIO4 và sẽ lưu giá trị của nó trong biến touch_sensor_value. Vậy là xong phần đọc hiểu. Sau đó, chức năng thư viện nối tiếp đầu tiên sẽ gửi một chuỗi “Touch0 value is = ” đến màn hình nối tiếp và sau đó, giá trị của cảm biến cảm ứng sẽ được gửi. Quá trình này sẽ tự lặp lại sau mỗi giây.

  • Nếu không chạm ngón tay vào chốt, bạn sẽ thấy các giá trị cao hơn của đầu ra cảm biến cảm ứng trên màn hình nối tiếp.
  • Sau khi bạn chạm vào dây được kết nối với GPIO bốn, bạn sẽ nhận thấy rằng các giá trị sẽ bắt đầu giảm.
  • Bây giờ bạn cần tải mã này lên bảng ESP32 và bạn sẽ thấy đầu ra như sau:

Cảm biến cảm ứng ESP32 - Cách sử dụng chân cảm ứng làm nút

Cách sử dụng cảm biến cảm ứng làm nút trong ESP32

Bây giờ, chúng ta sẽ thấy một ví dụ về việc sử dụng chân cảm ứng ESP32 làm nút kỹ thuật số. Thay vì sử dụng nút bên ngoài, bạn có thể sử dụng bất kỳ chân cảm ứng nào làm chân đầu vào kỹ thuật số cho nút .. Nhưng để làm như vậy, bạn cần tìm ngưỡng của chân cảm ứng. Theo ngưỡng, ý tôi là giá trị nào mà không cần chạm vào dây và giá trị cao nhất của cảm biến sau khi chạm vào dây là gì. chỉ cần ghi lại giá trị này và chúng tôi sẽ sử dụng nó trong mã của mình để sử dụng chân cảm ứng làm nút kỹ thuật số. Bạn có thể tìm thấy ngưỡng bằng cách tải lên cùng một mã được cung cấp ở trên. Chỉ cần đo các giá trị này trên màn hình nối tiếp của Arduino IDE và ghi lại giá trị ngưỡng.

Ví dụ trong trường hợp của chúng tôi, ngưỡng là từ 20-30.

  • Nếu không chạm vào dây, đầu ra là khoảng 60-80
  • Sau khi chạm vào dây, đầu ra là từ 20-30.
  • Vì vậy, chúng tôi có thể sử dụng ngưỡng nhỏ hơn 30.
  • chúng tôi sẽ bật đèn LED nếu ngưỡng nhỏ hơn hoặc bằng 30.
  • Nếu ngưỡng lớn hơn 30, điốt phát sáng sẽ vẫn tắt.

Sau đây là sơ đồ mạch dùng để điều khiển LED với chân cảm ứng là nút bấm. Nối mạch này với các thành phần bắt buộc:

Cảm biến cảm ứng ESP32 - Cách sử dụng chân cảm ứng làm nút

  • Trong sơ đồ mạch này, cảm biến cảm ứng zero touch0 được sử dụng. Bạn có thể sử dụng giấy nhôm màu bạc có ghim cảm ứng để kết nối và đầu ra tốt hơn như trong hình.
  • Đèn LED được kết nối với chân đầu ra đầu vào mục đích chung 22 thông qua điện trở 330ohm.
  • Khi chúng ta chạm vào lá, đèn LED sẽ phát sáng nếu không đèn LED sẽ vẫn ở trạng thái tắt.

Chương trình cho hướng dẫn này được đưa ra dưới đây.

  • Ba dòng đầu tiên xác định tên cho chân cảm ứng, chân dẫn và xác định các biến số nguyên để lưu trữ giá trị và ngưỡng cảm biến.
  • Biến VALUE_THRESHOLD được định nghĩa là một kiểu hằng số vì chúng tôi muốn sửa đổi nó trong chương trình của mình.
  • Phần còn lại của mã giống như mã trên ngoại trừ nếu điều kiện khác kiểm tra giá trị ngưỡng và làm cho đèn LED bật và tắt.

#define touch_pin_numer T0

const int LED_PIN_NUMBER = 22;

const int VALUE_THRESHOLD = 30;

int TOUCH_SENSOR_VALUE;

void setup()

{

delay(1000); 

pinMode (LED_PIN_NUMBER, OUTPUT);

}

void loop(){

TOUCH_SENSOR_VALUE = touchRead(touch_pin_numer);

Serial.print(TOUCH_SENSOR_VALUE);

if(TOUCH_SENSOR_VALUE < VALUE_THRESHOLD)

{

digitalWrite(LED_PIN_NUMBER, HIGH);

}

else{

digitalWrite(LED_PIN_NUMBER, LOW);

}

}

Mã cho ví dụ này giống như chúng ta đã sử dụng trong ví dụ đầu tiên. ngoại trừ biến ngưỡng và phần nhấp nháy LED. Tôi đã nói về nhấp nháy LED trong các hướng dẫn trước.

Đọc thêm
Đăng nhận xét

Các Khóa Học IoT - Nhúng - ECU Chất Lượng Tại Việt Nam