Search Code

Dự án Arduino đơn giản: Điều khiển Servo bằng nút nhấn 180 độ về 0 và quay lại

Dự án Arduino đơn giản: Điều khiển Servo bằng nút nhấn 180 độ về 0 và quay lại

Giới thiệu

Bài viết này giải thích một dự án Arduino đơn giản sử dụng nút nhấn để điều khiển động cơ servo. Động cơ servo là một động cơ chính xác có thể xoay đến một vị trí cụ thể, lý tưởng cho các ứng dụng như robot và tự động hóa. Dự án này sẽ làm cho servo di chuyển từ 0 đến 180 độ khi nút được nhấn và trở về 0 khi nhả nút.

Linh kiện dự án và cách nối dây

Bạn sẽ cần một bo mạch Arduino, một động cơ servo và một nút nhấn.

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

  • Động cơ servo: Kết nối dây tín hiệu (thường là màu vàng/cam) với chân 3 của Arduino, dây nguồn (màu đỏ) với 5Vdây nối đất (màu đen/nâu) với GND.
  • Nút nhấn: Kết nối một chân với chân kỹ thuật số 2 và chân còn lại với chân GND. Vậy là xong! Bằng cách sử dụng điện trở kéo lên nội bộ của Arduino, bạn không cần điện trở ngoài.

 

Giải thích mã code

Chương trình được chia thành ba phần chính: định nghĩa chân, hàm setup() và hàm loop().

Định nghĩa chân

Phần này thiết lập các thư viện cần thiết và gán tên có ý nghĩa cho các chân bạn đang sử dụng.

#include <Servo.h>

const int servoPin = 3;
const int buttonPin = 2;

Servo myServo;

Hàm setup()

Hàm setup() chứa mã chỉ chạy một lần khi bo mạch Arduino được cấp nguồn hoặc được đặt lại. Nó được sử dụng để cấu hình ban đầu.

void setup() {
  myServo.attach(servoPin);
  pinMode(buttonPin, INPUT_PULLUP);
  myServo.write(0);
}

Thay đổi quan trọng là pinMode(buttonPin, INPUT_PULLUP);. Điều này kích hoạt một điện trở nội bộ kéo điện áp của chân lên mức HIGH. Khi bạn nhấn nút, nó kết nối chân với đất và điện áp giảm xuống mức LOW.

Hàm loop()

Hàm loop() chứa logic chính của chương trình và chạy lặp đi lặp lại mãi mãi sau khi hàm setup() hoàn tất.

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW) {
    myServo.write(180);
  } else {
    myServo.write(0);
  }
}

Logic ở đây bây giờ đã bị đảo ngược. Vì việc nhấn nút dẫn đến tín hiệu LOW, điều kiện if (buttonState == LOW) được sử dụng để di chuyển servo đến 180 độ.

Hình ảnh

Arduino wiring for Servo motor with a push button
Arduino wiring for Servo motor with a push button
795-Ardunino code to control servo motor using a push button to move between 180 and zero degree
Ngôn ngữ: C++
#include <Servo.h>
/*
This is sketch for controlling servo motor. when push button is pressed, the servo moves to 180 degreees and stays there. when the push button is released, the servo motor returns back to 0 degree.
*/
// Define the pin for the servo motor
const int servoPin = 3;
// Define the pin for the push button
const int buttonPin = 2;

// Create a Servo object
Servo myServo;

void setup() {
  // Attach the Servo object to the servo pin
  myServo.attach(servoPin);
  // Set the button pin as an input
  pinMode(buttonPin, INPUT);
  // Start the servo at 0 degrees
  myServo.write(0);
}

void loop() {
  // Read the state of the push button
  int buttonState = digitalRead(buttonPin);

  // If the button is pressed (HIGH)
  if (buttonState == HIGH) {
    // Move the servo to 180 degrees
    myServo.write(180);
  } else {
    // If the button is released (LOW), move the servo back to 0 degrees
    myServo.write(0);
  }
}

Nghĩ bạn có thể cần

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

Chưa có tài nguyên nào.

Tập tin📁

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