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.
#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
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 Servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Resurser och referenser
Inga resurser än.
Filer📁
Inga filer tillgängliga.