د آسانو آردوینو پروژه: د پشبټن سره د سروو کنټرول ۱۸۰ درجې څخه ۰ ته او بېرته
پیژندنه
دا مقاله یو ساده Arduino پروژه تشریح کوي چې د فشار تڼۍ څخه د سروو موټور کنټرول لپاره کار اخلي. یو سروو موټور یو دقیق موټور دی چې کولی شي یو ځانګړي موقعیت ته وګرځي، چې دا د روبوټیک او اتوماتیک په څیر غوښتنلیکونو لپاره مثالی کوي. دا پروژه به سروو له 0 څخه تر 180 درجو پورې حرکت وکړي کله چې تڼۍ فشارول شي او کله چې خوشې شي بیرته 0 ته راستون شي.
د پروژې اجزاوې او تارونه
تاسو به د Arduino بورډ، یو سروو موټور، او یو فشار تڼۍ ته اړتیا ولرئ.
د تارونو لارښوونې:
- سروو موټور: د سیګنال تار (معمولا ژیړ/نارنجي) د Arduino پن 3 سره وصل کړئ، د بریښنا تار (سور) د 5V سره، او د ځمکني تار (تور/نسواري) د GND سره.
- فشار تڼۍ: یوه پښه د ډیجیټل پن 2 سره او بله پښه د GND پن سره وصل کړئ. همدا ده! د 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 درجو ته د حرکت لپاره کارول کیږي.
#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);
}
}
Things you might need
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 Servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Resources & references
No resources yet.
Files📁
No files available.