Arduino Cảm biến chạm Động cơ servo
Chúng ta sẽ học cách sử dụng Arduino và công tắc cảm biến chạm để điều khiển động cơ servo. Cụ thể:
- Nếu cảm biến chạm được kích hoạt, Arduino quay động cơ servo đến 90 độ
- Nếu cảm biến chạm được kích hoạt lần nữa, Arduino quay động cơ servo về 0 độ
Quá trình đó được lặp lại.
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (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 Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về động cơ Servo và cảm biến chạm
Nếu bạn chưa biết về động cơ servo và cảm biến chạm (bản đồ chân, cách hoạt động, cách lập trình ...), hãy tìm hiểu chúng trong các bài hướng dẫn sau đây:
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Mã Arduino - Cảm biến chạm điều khiển động cơ servo
/*
* Mã Arduino này được phát triển bởi newbiely.vn
* Mã Arduino 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/arduino/arduino-touch-sensor-servo-motor
*/
#include <Servo.h>
// constants won't change
const int TOUCH_SENSOR_PIN = 7; // Arduino pin connected to touch sensor's pin
const int SERVO_PIN = 9; // Arduino pin connected to servo motor's pin
Servo servo; // create servo object to control a servo
// variables will change:
int angle = 0; // the current angle of servo motor
int lastTouchState; // the previous state of touch sensor
int currentTouchState; // the current state of touch sensor
void setup() {
Serial.begin(9600); // initialize serial
pinMode(TOUCH_SENSOR_PIN, INPUT); // set arduino pin to input mode
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(angle);
currentTouchState = digitalRead(TOUCH_SENSOR_PIN);
}
void loop() {
lastTouchState = currentTouchState; // save the last state
currentTouchState = digitalRead(TOUCH_SENSOR_PIN); // read new state
if(lastTouchState == LOW && currentTouchState == HIGH) {
Serial.println("The sensor is touched");
// change angle of servo motor
if(angle == 0)
angle = 90;
else
if(angle == 90)
angle = 0;
// control servo motor arccoding to the angle
servo.write(angle);
}
}
Hướng dẫn từng bước
- Kết nối Arduino với máy tính bằng cáp USB
- Mở Arduino IDE, chọn board và cổng phù hợp
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấp nút Tải lên trên Arduino IDE để tải mã lên Arduino
- Chạm cảm biến cảm ứng vài lần.
- Quan sát sự thay đổi của động cơ 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.