Пребарување код

Лесен Arduino проект: Контролирај серво со копче 180 степени до 0 и назад

Лесен Arduino проект: Контролирај серво со копче 180 степени до 0 и назад

Вовед

Оваа статија објаснува едноставен Arduino проект кој користи копче за контрола на серво мотор. Серво моторот е прецизен мотор кој може да ротира до одредена позиција, што го прави идеален за апликации како роботика и автоматизација. Овој проект ќе направи сервото да се движи од 0 до 180 степени кога копчето е притиснато и да се врати на 0 кога е отпуштено.

Компоненти на проектот и поврзување

Ќе ви требаат Arduino плоча, серво мотор и копче.

Инструкции за поврзување:

  • Серво мотор: Поврзете ја сигналната жица (обично жолта/портокалова) на пин 3 на Arduino, жицата за напојување (црвена) на 5V, и жицата за заземјување (црна/кафеава) на GND.
  • Копче: Поврзете една нога на дигитален пин 2, а другата нога на GND пин. Тоа е сè! Со користење на внатрешниот pull-up отпорник на Arduino, не ви треба надворешен отпорник.

 

Објаснување на кодот

Програмата е поделена на три главни дела: дефиниции на пиновите, функцијата setup() и функцијата loop().

Дефиниции на пиновите

Овој дел ги поставува потребните библиотеки и доделува значајни имиња на пиновите што ги користите.

#include <Servo.h>

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

Servo myServo;

Функцијата setup()

Функцијата setup() содржи код кој се извршува само еднаш кога Arduino плочата се вклучува или ресетира. Се користи за почетна конфигурација.

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

Клучната промена е pinMode(buttonPin, INPUT_PULLUP);. Ова активира внатрешен отпорник кој го повлекува напонот на пинот на HIGH. Кога ќе го притиснете копчето, тоа го поврзува пинот со земја, и напонот паѓа на LOW.

Функцијата loop()

Функцијата loop() ја содржи главната програмска логика и се извршува повторно и повторно засекогаш откако функцијата setup() ќе заврши.

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

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

Логиката овде сега е обратна. Бидејќи притискањето на копчето резултира со LOW сигнал, условот if (buttonState == LOW) се користи за движење на сервото до 180 степени.

Слики

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
Јазик: 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);
  }
}

Работи што можеби ќе ви требаат

Ресурси и референци

Сè уште нема ресурси.

Датотеки📁

Нема достапни датотеки.