Bài viết này sẽ hướng dẫn các bạn sử dụng chân cảm ứng điện dung sử dụng Arduino IDE. Các chân cảm ứng này có thể cảm nhận được sự thay đổi của bất kỳ thứ gì chứa điện tích. Chúng thường được dùng để đánh thức ESP32 khi nó đang trong chế độ deep sleep (ngủ sâu).

Bạn đang cần ESP32 để thực hành? Mua ngay tại đây.

Các chân cảm ứng điện dung của ESP32:

ESP32 có 10 GPIO cảm ứng điện dung. Các GPIO này có thể cảm nhận được các biến thể của bất kỳ thứ gì chứa điện tích, như da người. Vì vậy, chúng ta có thể phát hiện sự thay đổi khi chạm vào GPIO. 

Các chân này có thể dễ dàng tích hợp vào các miếng đệm điện dung, và thay thế các nút cơ học. Ngoài ra, các chân cảm ứng cũng có thể được sử dụng làm nguồn đánh thức khi ESP32 đang ở chế độ ngủ sâu.

Nhìn vào hình bên dưới, các chân cảm ứng chạm được đánh dấu bằng màu hồng.

Chân cảm ứng điện dung
Chân cảm ứng điện dung

touchRead()

Đọc cảm biến chạm rất đơn giản. Trong Arduino IDE bạn dùng hàm touchRead() với đối số là chân GPIO bạn muốn đọc.

touchRead(GPIO);

Code – Đọc cảm biến chạm:

Để xem cách hàm hoạt động, vào File > Examples > ESP32 > Touch và mở TouchRead 

// ESP32 Touch Test
// Just test touch pin - Touch6 is T6 which is on GPIO 14.
void setup()
{
  Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  Serial.println("ESP32 Touch Test");
}
void loop()
{
Serial.println(touchRead(T6));  // get value using T6
delay(1000);
}

Ví dụ này đọc chân cảm biến chạm T6 là chân GPIO 14. Giá trị đọc được gửi qua Serial Monitor

Trong setup(), khởi tạo Serial để hiển thị kết quả đọc được ra cảm biến:

 Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  Serial.println("ESP32 Touch Test");
Trong loop(), in giá trị đọc được từ chân T6 lên Serial:
Serial.println(touchRead(T6));  // get value using T6

Kết quả đọc được:

Kết quả đọc được

Vào Tools > SerialPlotter để xem nhiều hơn:

Vào SerialPlotter

Thử điều khiển Led:

Điều khiển đèn led ESP32

Upload đoạn code sau:

const int ledPin = 19;
// change with your threshold value
const int threshold = 20;
// variable for storing the touch pin value 
int touchValue;
void setup(){
 Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  // initialize the LED pin as an output:
pinMode (ledPin, OUTPUT);
}
void loop(){
  // read the state of the pushbutton value:
  touchValue = touchRead(T6);
  Serial.print(touchValue);
  // check if the touchValue is below the threshold
  // if it is, set ledPin to HIGH
  if(touchValue < threshold){
    // turn LED on
    digitalWrite(ledPin, HIGH);
    Serial.println(" - LED on");
}
  else{
    // turn LED off
    digitalWrite(ledPin, LOW);
    Serial.println(" - LED off");
}
  delay(500);
}

Kết quả như sau: 

Kết quả lập trình

Kết luận,

Bài viết trên đã mô tả cho bạn khái niệm cảm biến điện dung cũng như cách sử dụng, điều khiển cảm biến này trên ESP32. Chúc các bạn thành công!

Để xem tất cả các bài hướng dẫn về lập trình Arduino, bạn truy cập vào đây nhé: Tổng hợp các bài hướng dẫn về Arduino. Nếu bạn có bất kỳ ý kiến đóng góp hoặc thắc mắc gì, bạn có thể để lại comment phía dưới hoặc liên hệ với OhStem qua Fanpage để được hỗ trợ nhé!

Tags: , ,

Những bài liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Fill out this field
Fill out this field
Vui lòng nhập địa chỉ email hợp lệ.
You need to agree with the terms to proceed

Menu