Search Code

Mradi Rahisi wa Arduino: Dhibiti Servo kwa Kitufe cha Kushinikiza digrii 180 hadi 0 na kurudi

Mradi Rahisi wa Arduino: Dhibiti Servo kwa Kitufe cha Kushinikiza digrii 180 hadi 0 na kurudi

Utangulizi

Makala hii inaelezea mradi rahisi wa Arduino unaotumia kitufe cha kushinikiza kudhibiti motor ya servo. Motor ya servo ni motor sahihi inayoweza kuzunguka hadi nafasi maalum, na kuifanya kuwa bora kwa matumizi kama robotiki na otomatiki. Mradi huu utafanya servo kusonga kutoka digrii 0 hadi 180 wakati kitufe kinapobonyezwa na kurudi kwenye 0 wakati kinapoachiliwa.

Vipengele vya Mradi na Uunganishaji wa Waya

Utahitaji bodi ya Arduino, motor ya servo, na kitufe cha kushinikiza.

Maagizo ya Uunganishaji wa Waya:

  • Motor ya Servo: Unganisha waya wa ishara (kawaida njano/chungwa) kwenye pini ya 3 ya Arduino, waya wa nguvu (nyekundu) kwenye 5V, na waya wa ardhi (nyeusi/hudhurungi) kwenye GND.
  • Kitufe cha Kushinikiza: Unganisha mguu mmoja kwenye pini ya dijiti 2 na mguu mwingine kwenye pini ya GND. Hivyo tu! Kwa kutumia kipingamizi cha ndani cha kuvuta-juu cha Arduino, hautahitaji kipingamizi cha nje.

 

Msimbo Umeelezwa

Programu imegawanywa katika sehemu tatu kuu: ufafanuzi wa pini, kazi ya setup(), na kazi ya loop().

Ufafanuzi wa Pini

Sehemu hii inaweka maktaba zinazohitajika na inapeana majina yenye maana kwa pini unazotumia.

#include <Servo.h>

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

Servo myServo;

Kazi ya setup()

Kazi ya setup() ina msimbo unaoendeshwa mara moja tu wakati bodi ya Arduino inapowashwa au kuwekwa upya. Inatumika kwa usanidi wa awali.

void setup() {
  myServo.attach(servoPin);
  pinMode(buttonPin, INPUT_PULLUP);
  myServo.write(0);
}
Mabadiliko muhimu ni pinMode(buttonPin, INPUT_PULLUP);. Hii inawasha kipingamizi cha ndani kinachovuta voltage ya pini hadi HIGH. Unapobonyeza kitufe, kinaunganisha pini kwenye ardhi, na voltage inashuka hadi LOW.

Kazi ya loop()

Kazi ya loop() ina mantiki kuu ya programu na inaendeshwa mara kwa mara milele baada ya kazi ya setup() kukamilika.

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

  if (buttonState == LOW) {
    myServo.write(180);
  } else {
    myServo.write(0);
  }
}
Mantiki hapa sasa imebadilishwa. Kwa kuwa kubonyeza kitufe kunasababisha ishara ya LOW, hali ya if (buttonState == LOW) inatumika kusogeza servo hadi digrii 180.

Bilder

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
Språk: 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);
  }
}

Tänker att du kanske behöver

Resurser och referenser

Inga resurser än.

Filer📁

Inga filer tillgängliga.