Продукти

Серво мотор SG90

Серво мотор SG90
9 януари 2025

 

Серво моторите са с 3 извода(3 проводника) – кафяв (GND), червен(+5V), оранжев (сигнал). Сигналният пин се използва за управление на мотора, като чрез микроконтролер се казва на какъв ъгъл да се завърти вала на сервото. Виж Фиг.1.

 

Серво моторите имат високо изискване за ток, така че когато използвате повече от един мотор с Ардуино е важно да свържете захранващите им проводници към външно захранване. В този урок ще използваме само едно серво, така че ще го захраним през Ардуино.

 

Включване на библиотека и програмиране

Благодарение на библиотеката инсталирана в Arduino IDE – „Servo.h” програмирането на серво мотор става много лесно.

 

Библиотеката улеснява завъртането на сервото под различни ъгли с помощта само на една команда. Пак повтарям , че библиотеката си е инсталирана и няма нужда и ние да я сваляме и инсталираме.

 

Кодът, който ще напишем е супер лесен и ще покаже как може при натискане на бутон да преместим ъгъла на сервото на 90градуса , а при не натиснат да се връща на 0градуса.

 

Просто към схемата по-горе добавете един обикновен превключвател(бутон) между пин 8 и GND.(тук няма значение коя жица къде ще е , това е просто един ключ). Или ако просто не ви се занимава с монтирането на бутон може да използвате два проводника на пин 8 и GND и да ги допирате , като по този начин имитирате натискането на бутона.

 

 

 

 

Фиг.1. Серво мотор SG90

 

 

Необходим хардуер

  • Arduino Uno;
  • Серво мотор Sg90;

 

Схема на свързване

 

Програмен код

 

Свържете схемата, след което препишете кода(да препишете го и обмислете всеки един ред ) в вашето Arduino IDE и започнете да сменята ъгъла на сервото от 0 до 90 градуса. Може да промените ъгъла, просто където пише 90 в кода може да го промените на 180 примерно. Вие решавате как да си го направите спрямо вашата цел.

 

#include <Servo.h> //библиотеката , която управлява сервото
Servo myservo; //задаваме име на сервото, което ще се използва от библиотеката в цялата програма
int buttonPin = 0; //задаваме аналогов,който ще чета стойността на бутона
int val = 0; //променлива за стойност, която започва от 0

void setup() { // в setup командите се изпълняват веднъж
myservo.attach(9); //задаваме pwm пин за сервото
pinMode(buttonPin,INPUT); //задаваме бутона като входен сигнал
}

void loop() { //цикъл без край(повтаря се отново и отново)
val = analogRead(buttonPin); //присвояваме стойността прочетена от бутона на val
if(val == LOW){ //проверяваме дали бутона не е натиснат, ако не е вала на сервото е на 0градуса
myservo.write(0); // 0 градуса на сервото
} else{ //ако бутона е натиснат сервото отива на 90градуса
myservo.write(90); //90градуса на сервото
}
}//край на цикъла , започва отначало...

 

На Фиг.2. е показано какъв ъгъл можете да избирате спрямо желаното от Вас положение на моторчето

 

Фиг.2. Положение на вала на сервото спрямо избрания ъгъл