Оңай Arduino жобасы: Сервоны түйме арқылы 180 градустан 0-ге және кері басқару
Кіріспе
Бұл мақала серво қозғалтқышты басқару үшін түймені пайдаланатын қарапайым 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 сигналы пайда болғандықтан, сервоны 180 градусқа жылжыту үшін if (buttonState == LOW) шарты қолданылады.
#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);
}
}
Сізге қажет болуы мүмкін нәрселер
-
АмазонкаServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 Servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Файлдар жоқ.