ESP8266 Cảm biến cảm ứng Động cơ servo

Hướng dẫn này trình bày cho bạn cách sử dụng ESP8266 và cảm biến chạm để điều khiển động cơ servo. Cụ thể:

Quy trình tương tự được thực hiện lại.

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×cảm biến chạm
1×động cơ servo
1×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Giới thiệu về Động cơ Servo và Cảm biến Chạm

Nếu bạn chưa quen với động cơ servo và cảm biến chạm (bao gồm sơ đồ chân, chức năng và lập trình), các hướng dẫn sau đây có thể hữu ích:

Sơ đồ đấu dây

sơ đồ nối dây ESP8266 NodeMCU cảm biến chạm và động cơ servo

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

Xin lưu ý rằng sơ đồ đấu dây được hiển thị ở trên chỉ phù hợp với một động cơ servo có mô-men xoắn thấp. Trong trường hợp động cơ rung lên thay vì quay, cần sử dụng một nguồn điện bên ngoài để cấp thêm công suất cho động cơ servo. Phần dưới đây trình bày sơ đồ đấu dây với nguồn điện bên ngoài cho động cơ servo.

sơ đồ đấu dây nguồn cấp ngoài cho động cơ servo ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Vui lòng đừng quên kết nối GND của nguồn cấp ngoài với GND của ESP8266.

Mã ESP8266 - Cảm biến cảm ứng điều khiển động cơ servo

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-touch-sensor-servo-motor */ #include <Servo.h> #define TOUCH_SENSOR_PIN D1 // The ESP8266 pin connected to button's pin #define SERVO_PIN D5 // The ESP8266 pin connected to servo motor's pin Servo servo; // create servo object to control a servo int angle = 0; // The current angle of servo motor int prev_touch_state; // The previous state of touch sensor int touch_state; // The current state of touch sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(TOUCH_SENSOR_PIN, INPUT); // Configure the ESP8266 pin to the input mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); touch_state = digitalRead(TOUCH_SENSOR_PIN); } void loop() { prev_touch_state = touch_state; // save the last state touch_state = digitalRead(TOUCH_SENSOR_PIN); // read new state if(prev_touch_state == LOW && touch_state == HIGH) { Serial.println("The sensor is touched"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // rotate the servo motor to the angle position servo.write(angle); } }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trong Arduino IDE, hãy làm theo các bước sau:

  • Xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Nối các linh kiện như được hiển thị trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng.
  • Kết nối ESP8266 của bạn với máy tính bằng cáp USB.
  • Mở Arduino IDE, chọn bo mạch và cổng phù hợp.
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấp vào nút Tải lên trong Arduino IDE để biên dịch và tải mã lên ESP8266.
  • Chạm cảm biến nhiều lần.
  • Theo dõi sự thay đổi góc quay của servo.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.