Search Code

Maklike Arduino-projek: Beheer 'n servo met 'n drukknoppie 180 grade na 0 en terug

Maklike Arduino-projek: Beheer 'n servo met 'n drukknoppie 180 grade na 0 en terug

Inleiding

Hierdie artikel verduidelik 'n eenvoudige Arduino-projek wat 'n drukknoppie gebruik om 'n servomotor te beheer. 'n Servomotor is 'n presiese motor wat na 'n spesifieke posisie kan draai, wat dit ideaal maak vir toepassings soos robotika en outomatisering. Hierdie projek sal 'n servo van 0 tot 180 grade laat beweeg wanneer 'n knoppie gedruk word en terugkeer na 0 wanneer dit losgelaat word.

Projekkomponente en Bedrading

Jy sal 'n Arduino-bord, 'n servomotor en 'n drukknoppie nodig hê.

Bedradingsinstruksies:

  • Servomotor: Verbind die seindraad (gewoonlik geel/oranje) aan Arduino pen 3, die kragdraad (rooi) aan 5V, en die gronddraad (swart/bruin) aan GND.
  • Drukknoppie: Verbind een been aan digitale pen 2 en die ander been aan 'n GND-pen. Dis al! Deur die Arduino se interne optrekweerstand te gebruik, benodig jy geen eksterne weerstand nie.

 

Die Kode Verduidelik

Die program word in drie hoofdele verdeel: die pen-definisies, die setup()-funksie en die loop()-funksie.

Pen-Definisies

Hierdie afdeling stel die vereiste biblioteke op en ken betekenisvolle name toe aan die penne wat jy gebruik.

#include <Servo.h>

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

Servo myServo;

Die setup()-Funksie

Die setup()-funksie bevat kode wat slegs een keer loop wanneer die Arduino-bord aangeskakel of herstel word. Dit word gebruik vir aanvanklike konfigurasie.

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

Die deurslaggewende verandering is pinMode(buttonPin, INPUT_PULLUP);. Dit aktiveer 'n interne weerstand wat die pen se spanning na HOOG trek. Wanneer jy die knoppie druk, verbind dit die pen aan grond, en die spanning daal na LAAG.

Die loop()-Funksie

Die loop()-funksie bevat die hoofprogramlogika en loop herhaaldelik vir ewig nadat die setup()-funksie voltooi is.

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

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

Die logika hier is nou omgekeer. Aangesien die knoppiedruk 'n LOW-sein tot gevolg het, word die if (buttonState == LOW)-toestand gebruik om die servo na 180 grade te beweeg.

Beelde

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
Taal: 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);
  }
}

Goedere wat jy dalk nodig het

Hulpbronne en verwysings

Geen hulpbronne nog.

Lêers📁

Geen lêers beskikbaar.