Лесен Arduino проект: Контролирај серво со копче 180 степени до 0 и назад
Вовед
Оваа статија објаснува едноставен Arduino проект кој користи копче за контрола на серво мотор. Серво моторот е прецизен мотор кој може да ротира до одредена позиција, што го прави идеален за апликации како роботика и автоматизација. Овој проект ќе направи сервото да се движи од 0 до 180 степени кога копчето е притиснато и да се врати на 0 кога е отпуштено.
Компоненти на проектот и поврзување
Ќе ви требаат Arduino плоча, серво мотор и копче.
Инструкции за поврзување:
- Серво мотор: Поврзете ја сигналната жица (обично жолта/портокалова) на пин 3 на Arduino, жицата за напојување (црвена) на 5V, и жицата за заземјување (црна/кафеава) на GND.
- Копче: Поврзете една нога на дигитален пин 2, а другата нога на GND пин. Тоа е сè! Со користење на внатрешниот pull-up отпорник на 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);
}
}
Работи што можеби ќе ви требаат
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Ресурси и референци
Сè уште нема ресурси.
Датотеки📁
Нема достапни датотеки.