Ikẹkọ yii jẹ apakan ti: Àwọn Ẹ̀rọ Iṣẹ́-Ẹ̀rọ
Gbogbo awọn fidio ti o ni ibatan si awọn ẹrọ servo ti o ni ibatan, ti a ṣe akojọ si ibi. Awọn ọna asopọ si awọn fidio miiran wa ni isalẹ nkan yii.
Líloṣiṣẹ́ Servo pẹ̀lú Àwọn Bọ́tìnì Títẹ̀ Nípa Lílo Arduino
Nínú ẹ̀kọ́ yìí, a óò kọ́ bí a ṣe lè ṣàkóso ẹ̀rọ servo kan nípa lílo àwọn bọ́tìnnì ìtẹ̀ méjì, ọ̀kan fún gbígbé servo lọ sí òsì àti èkejì fún gbígbé e lọ sí ọ̀tún. Nígbà tí o bá tẹ bọ́tìnnì ọ̀tún, servo yóò gbéra ní ìwọ̀n 10 ìyíwọ̀ sí ọ̀tún, àti nígbà tí o bá tẹ bọ́tìnnì òsì, yóò gbéra ní ìwọ̀n kan náà sí òsì. Bí o bá di bọ́tìnnì kan múlẹ̀, servo yóò máa gbéra ní ìtọ́sọ́nà yẹn títí tí o fi yóò tú u sílẹ̀.

Iṣẹ́-ọwọ́ yìí jẹ́ ọ̀nà tí ó dára láti lóye bí a ṣe lè so àwọn bọ́tìnnì pọ̀ mọ́ ẹ̀rọ servo nípa lílo Arduino. A óò bo àwọn ohun èlò tí a nílò, àwọn ìtọ́sọ́nà ìsopọ̀, àti kóòdù tí a nílò láti mú kí gbogbo rẹ̀ ṣiṣẹ́. Fún òye tí ó ṣe kedere, o lè wo fídíò tí ó bá ẹ̀kọ́ yìí lọ (nínú fídíò ní 01:00).
Àlàyé Ohun Èlò
Fún iṣẹ́-ọwọ́ yìí, o óò nílò Arduino board kan, ẹ̀rọ servo kan, àti àwọn bọ́tìnnì ìtẹ̀ méjì. Ẹ̀rọ servo ni ó máa ṣe gbígbéra, nígbà tí àwọn bọ́tìnnì ìtẹ̀ yóò sì ṣiṣẹ́ gẹ́gẹ́ bí àwọn ohun tí a fi ń kó wọlé láti ṣàkóso ìtọ́sọ́nà gbígbéra yẹn. Arduino ni ó máa ṣe àgbéyẹ̀wò àwọn ohun tí a kó wọlé wọ̀nyí, kí ó sì rán àwọn àmì tí ó yẹ sí ẹ̀rọ servo.
Ẹ̀rọ servo máa ń ṣiṣẹ́ nípa lílo àwọn àmì pulse-width modulation (PWM). Nípa ríran àwọn ìwọ̀n pulse tí ó yàtọ̀ síra, o lè ṣàkóso ìyíwọ̀ ẹ̀rọ servo. A óò so àwọn bọ́tìnnì ìtẹ̀ pọ̀ mọ́ àwọn pin input oní nọ́ńbà ní orí Arduino, àti pé a óò lo àwọn resistor ìfà-oke inú láti rọrùn ìsopọ̀.
Àwọn Àlàyé Datasheet
| Olùṣe | Oríṣiríṣi |
|---|---|
| Nọ́ńbà apá | SG90 |
| Fóltì Logic/IO | 5 V |
| Fóltì ìpèsè | 4.8–6 V |
| Ìwọ̀n ìjàde lọ́wọ́ (fún ikanni kọ̀ọ̀kan) | 1.5 A tí ó pọ̀ jù |
| Ìwọ̀n ìṣàn tí ó ga jù (fún ikanni kọ̀ọ̀kan) | 2.5 A tí ó pọ̀ jù |
| Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM | 50 Hz |
| Àwọn ìpele ìwọ̀n input logic | 0.3VCC sí 0.7VCC |
| Ìdínkù fóltì / RDS(on) / ìkún | 0.4 V |
| Àwọn ìwọ̀n ooru | 85 °C |
| Àpótí | Ṣíṣe láti inú plástìkì |
| Àwọn àkíyèsí / àwọn oríṣi | Yíyí 180° tí ó jẹ́ bọ́g-bọ́g |
- Rí i dájú pé ẹ̀rọ servo náà bá fóltì ìpèsè rẹ mu.
- Lo ìmú-ooru tí ó yẹ bí o bá ń ṣiṣẹ́ ní àwọn ìwọ̀n ìṣàn gíga.
- So àwọn bọ́tìnnì pọ̀ mọ́ ilẹ̀ pẹ̀lú ìtòlẹ́sẹẹsẹ ìfà-oke.
- Ṣe debounce àwọn bọ́tìnnì rẹ bí o bá ń rí ìwà tí kò dúró ṣinṣin.
- Ṣàkíyèsí ìjàde serial fún ṣíṣe àtúnṣe àṣìṣe.
Àwọn Ìtọ́sọ́nà Ìsopọ̀

Láti so àwọn ohun èlò pọ̀, bẹ̀rẹ̀ nípa sísopọ̀ ẹ̀rọ servo. So okùn pupa ti ẹ̀rọ servo pọ̀ mọ́ pin 5V ní orí Arduino, okùn dúdú pọ̀ mọ́ pin GND, àti okùn àmì yẹ́lò tàbí funfun pọ̀ mọ́ pin 9 ní orí Arduino. Pin yìí ni yóò ṣàkóso ipò ẹ̀rọ servo.
Lẹ́yìn náà, so àwọn bọ́tìnnì ìtẹ̀ pọ̀. So ìpẹ̀kun kan ti bọ́tìnnì ọ̀tún pọ̀ mọ́ pin 2 àti ìpẹ̀kun kejì pọ̀ mọ́ ilẹ̀. Fún bọ́tìnnì òsì, so ìpẹ̀kun kan pọ̀ mọ́ pin 12 àti ìpẹ̀kun kejì pọ̀ mọ́ ilẹ̀ pẹ̀lú. Ìtòlẹ́sẹẹsẹ yìí máa jẹ́ kí àwọn resistor ìfà-oke inú pa àwọn pin mọ́ ní gíga nígbà tí a kò tẹ àwọn bọ́tìnnì.
Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà
Ẹ jẹ́ kí a bẹ̀rẹ̀ pẹ̀lú kóòdù fún ṣíṣe àkóso ẹ̀rọ servo pẹ̀lú bọ́tìnnì ìtẹ̀ kan ṣoṣo. Kóòdù náà bẹ̀rẹ̀ nípa ṣíṣe ìmúrasílẹ̀ ohun servo àti ṣíṣètò ìyíwọ̀ àkọ́kọ́ kan. Èyí ni àpẹẹrẹ kúkúrú kan:
int angle = 90; // ìyíwọ̀ àkọ́kọ́ fún servo
int angleStep = 10; // ìwọ̀n ìgbésẹ̀ fún gbígbéra
Nínú àpẹẹrẹ yìí, angle dúró fún ipò lọ́wọ́lọ́wọ́ ti ẹ̀rọ servo, nígbà tí angleStep ṣàlàyé iye tí servo máa gbéra pẹ̀lú ìtẹ̀ bọ́tìnnì kọ̀ọ̀kan. Kóòdù yìí ṣe pàtàkì fún títọ̀pasẹ̀ ipò ẹ̀rọ servo.
Lẹ́yìn náà, a ní iṣẹ́ ìmúrasílẹ̀ níbi tí a ti so servo pọ̀ àti tí a ṣètò àwọn pin input:
void setup() {
Serial.begin(9600); // ṣètò serial
myservo.attach(9); // so servo pọ̀ mọ́ pin 9
pinMode(2, INPUT_PULLUP); // ṣètò pin bọ́tìnnì
}
Nínú ìmúrasílẹ̀, a bẹ̀rẹ̀ ìṣàkíyèsí serial àti a so servo pọ̀ mọ́ pin 9. Bọ́tìnnì tí ó wà ní pin 2 ni a ṣètò gẹ́gẹ́ bí input pẹ̀lú resistor ìfà-oke, èyí tí ó rọrùn ìsopọ̀ àti tí ó yẹra fún àìní àwọn resistor ìta.
Níkẹyìn, a wo iṣẹ́ loop tí ó ń ṣe ìtọ́jú ìtẹ̀ bọ́tìnnì:
while(digitalRead(2) == LOW) {
angle = angle + angleStep; // pọ̀ ìyíwọ̀ sí i
myservo.write(angle); // gbé servo
}
Loop yìí ń ṣàyẹ̀wò nígbà gbogbo bí a bá tẹ bọ́tìnnì. Nígbà tí a bá tẹ̀ ẹ́, ìyíwọ̀ náà máa pọ̀ sí i nípa ìwọ̀n ìgbésẹ̀ tí a ṣètò, àti servo yóò gbéra ní ìbámu. Ó ṣe pàtàkì láti rí i dájú pé ìyíwọ̀ náà wà láàárín àwọn ìwọ̀n tí ó yẹ (0 sí 180 ìyíwọ̀) láti yẹra fún ìbàjẹ́ ẹ̀rọ servo.
Ìfihàn / Ohun Tí O Lè Retí
Nígbà tí o bá tẹ bọ́tìnnì ọ̀tún, ẹ̀rọ servo yóò gbéra sí ọ̀tún ní àwọn ìwọ̀n 10 títí tí yóò fi dé ìwọ̀n 180 tí ó pọ̀ jù. Bákan náà, tí o bá tẹ bọ́tìnnì òsì, yóò gbé e lọ sí òsì. Bí o bá di bọ́tìnnì kan múlẹ̀, servo yóò máa gbéra ní ìtọ́sọ́nà yẹn títí tí o fi yóò tú u sílẹ̀ (nínú fídíò ní 01:00).
Àwọn àṣìṣe tí ó wọ́pọ̀ pẹ̀lú àwọn ìṣòro ìsopọ̀, bíi àwọn ìsopọ̀ tí kò tọ́ tàbí àwọn input tí ń fòfò. Rí i dájú nígbà gbogbo pé àwọn ìsopọ̀ rẹ ṣe dáradára àti pé o ń lo àwọn pin tí ó tọ́ gẹ́gẹ́ bí a ti sọ nínú kóòdù.
Ikẹkọ yii jẹ apakan ti: Àwọn Ẹ̀rọ Iṣẹ́-Ẹ̀rọ
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- Líloṣiṣẹ́ Servo pẹ̀lú Potentiometer Nípa Lílo Arduino
- Pipọntiọmita ati LCD1602 lilo Arduino
- Lílọ̀ àwọn ẹ̀rọ Servo Motors Nípa Lílò Infrared Remote pẹ̀lú Arduino
- Iṣakoso Moto Servo Arduino Pẹlu Potentiometer
- Iṣakoso ipo servo pẹlu awọn iṣe ọwọ fun Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- Bí Ọ̀nà Láti Lo Servo 360° Tí Ó Máa ń Yí Po Pẹ̀pẹ̀ pẹ̀lú Arduino
- Koodu Arduino ati Fidio fun PCA9685 16-ikanni 12-Bit Servo Oludari V1
- Kọ́ Arduino Servo Toggle Switch pẹ̀lú Bọ́tìnì Títẹ̀
/*
Controlling a servo with a push button with Arduino
When a push button is pressed, the servo starts moving to the right or left until
it reaches 180 and then returns to 0 degrees.
May 22, 2018 at 01:00
Written by Ahmad S. for Robojax.com in Ajax, Ontario, Canada
Watch a video for this code at https://youtu.be/7woqNH_qby4
This code is taken from http://robojax.com/learn/arduino
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int angle =90; // initial angle for servo
int angleStep =10;
void setup() {
// Servo button demo by Robojax.com
Serial.begin(9600); // setup serial
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(2,INPUT_PULLUP);
Serial.println("Robojax Servo Button ");
}
void loop() {
while(digitalRead(2) == LOW){
// change the angle for the next time through the loop:
angle = angle + angleStep;
// reverse the direction of the movement at the ends of the angle:
if (angle <= 0 || angle >= 180) {
angleStep = -angleStep;
}
myservo.write(angle); // move the servo to the desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degrees");
delay(100); // waits for the servo to get there
}// while
}
/*
Controlling a servo with two push buttons with Arduino
When the left push button is pressed, the servo starts moving to the left until it reaches 180 (or zero) degrees.
When the right push button is pressed, the servo starts moving to the right until it reaches 180 (or zero) degrees.
At any instance, if the button is released, the servo stops.
May 22, 2018, at 01:00
Written by Ahmad S. for Robojax.com in Ajax, Ontario, Canada
Watch a video for this code at https://youtu.be/7woqNH_qby4
This code is taken from http://robojax.com/learn/arduino
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int angle =90; // initial angle for servo
int angleStep =5;
#define LEFT 12 // pin 12 is connected to left button
#define RIGHT 2 // pin 2 is connected to right button
void setup() {
// Servo button demo by Robojax.com
Serial.begin(9600); // setup serial
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(LEFT,INPUT_PULLUP); // assign pin 12 as input for Left button
pinMode(RIGHT,INPUT_PULLUP);// assign pin 2 as input for right button
myservo.write(angle);// send servo to the middle at 90 degrees
Serial.println("Robojax Servo Button ");
}
void loop() {
// Servo button demo by Robojax.com
while(digitalRead(RIGHT) == LOW){
if (angle > 0 && angle <= 180) {
angle = angle - angleStep;
if(angle < 0){
angle = 0;
}else{
myservo.write(angle); // move the servo to desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degree");
}
}
delay(100); // waits for the servo to get there
}// while
// Servo button demo by Robojax.com
while(digitalRead(LEFT) == LOW){
// Servo button demo by Robojax.com
if (angle >= 0 && angle <= 180) {
angle = angle + angleStep;
if(angle >180){
angle =180;
}else{
myservo.write(angle); // move the servo to desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degree");
}
}
delay(100); // waits for the servo to get there
}//
}
Ohun ti o le nilo
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Orisun & itọkasi
Ko si awọn orisun sibẹsibẹ.
Fáìlìs📁
Ko si awọn faili ti o wa.