Darasi na 89: Yin Amfani da Motar Servo mai Ci gaba ko 360 | Kwas ɗin Arduino Mataki-mataki
Shin ka so taɓa son juya mota ta kowane bangare har tsawon lokacin da kake so, maimakon kawai juyawa da dawowa kamar servo na yau da kullun? Wannan shine ainihin abin da servo motor mai ci gaba ko digiri 360 ke bayarwa. Ba kamar servo na yau da kullun da ke motsawa zuwa wani kusurwa (yawanci 0 zuwa 180 digiri) ba, servo mai ci gaba yana juyawa ba iyaka a kowane bangare na agogo ko kishiyar agogo. Wannan ya sa ya dace don gina ƙananan robots, dandamalin kyamara, ko kowane aiki da ke buƙatar sarrafa juyawa mai ci gaba.
A cikin wannan aikin, za mu gina tsarin sarrafawa don servo na digiri 360 ta amfani da maɓallan turawa guda uku kawai. Za ka iya umurtar servo ya juyo da agogo, kishiyar agogo, ko tsayawa a kowane lokaci. Wannan jagorar za ta bi ka ta hanyar haɗin waya, ta bayyana sassan lambar da za ka iya daidaita, kuma ta nuna maka nunin aiki na tsarin a aikace.
Ga wasu ra'ayoyi masu amfani don amfani da servo mai ci gaba a cikin ayyukanka:
- Gina ƙaramin robot mai ƙafafu biyu: Yi amfani da servos masu ci gaba guda biyu don motsa ƙafafun, wanda ke ba da damar gaba, baya, da juyawa.
- Ƙirƙiri madaidaicin kyamara mai juyawa: Yi amfani da servo mai ci gaba guda ɗaya don juyawa a hankali ba iyaka na kyamaran tsaro ko namun daji.
- Sarrafa bel ɗin jigilar kaya: Sarrafa ƙaramin tsarin jigilar kaya don rarrabawa ko bayar da abubuwa.
- Ƙirƙiri madaidaicin nunin juyawa: Nuna samfurin 3D ko samfur a kan dandamali wanda ke juyawa ba iyaka.
Kayan aikin da ake buƙata
- Arduino board (Uno, Nano, da sauransu)
- Servo motor mai ci gaba (digiri 360) (misali, FS90R, DS04-NFC)
- Maɓallan turawa 3x
- Wayoyin haɗi
- Breadboard
Jagorar Haɗin Waya
Haɗin waya na wannan aikin yana da sauƙi. Servo motor yana da wayoyi uku: yawanci duhu don ƙasa (GND), na tsakiya (yawanci ja) don wutar lantarki (5V), da kuma mai haske (orange, rawaya, ko fari) don sigina. Kamar yadda aka nuna a cikin bidiyo, an haɗa servo zuwa Arduino kamar haka:
- Ƙasar Servo (waya mai duhu): Haɗa zuwa Arduino GND.
- Wutar Servo (waya ta tsakiya/ja): Haɗa zuwa Arduino 5V.
- Sigina na Servo (waya mai haske): Haɗa zuwa fil 9 na Arduino.
Ga maɓallan turawa guda uku, kowane maɓallin yana da ɓangarori biyu. Ɗaya ɓangaren duk maɓallan an haɗa su tare sannan zuwa Arduino GND. Sauran ɓangaren kowane maɓallin an haɗa shi zuwa wani fil na dijital daban, kamar yadda aka bayyana a ƙasa (a cikin bidiyo a 03:40):
- Maɓallin agogo (CW): Haɗa zuwa fil 2 na Arduino.
- Maɓallin tsayawa: Haɗa zuwa fil 3 na Arduino.
- Maɓallin kishiyar agogo (CCW): Haɗa zuwa fil 4 na Arduino.

Bayanin Lambar
An tsara lambar don sauƙin daidaitawa. Mafi mahimmancin ɓangaren da za ka buƙaci daidaita shine sc[] array, wanda ke riƙe ƙimar PWM na musamman da aka aika zuwa servo don sarrafa ayyukansa. Waɗannan ƙimar ba na duniya ba ne kuma dole ne a daidaita su ga servo motor ɗinka na musamman (a cikin bidiyo a 12:23).
int sc[]={106, 58, 0};// umarnin servo suna cikin tsari
//CCW, STOP,CW
Wannan array shine tushen daidaitawa. Ana amfani da ƙimar a cikin wannan tsari:
- sc[0] = 106: Ana aika wannan ƙimar don sa servo ya juyo kishiyar agogo.
- sc[1] = 58: Wannan shine ƙimar "tsayawa". Saboda kewayen ciki, ainihin ƙimar da ke sa motar ta tsaya ya bambanta. Kana iya ganin servo ɗinka yana juyawa a hankali ko da an aika wannan umarni, kuma za ka buƙaci daidaita wannan lambar kaɗan don samun ainihin ƙimar "tsayawa cikakke" ga motarka.
- sc[2] = 0: Wannan ƙimar tana sa servo ya juyo da agogo a matsakaicin sauri.
Kana iya daidaita ƙimar a cikin sc[] array don canza saurin juyawa. Misali, saita sc[0] zuwa 70 zai sa juyawar kishiyar agogo ta yi hankali. Mafi kusancin ƙimar zuwa ƙimar "tsayawa" (58), mafi hankalin motar zai juyo a wannan bangaren. Ƙimar da ke nesa da 58 za su ƙara sauri har zuwa iyakar matsakaici.
Akwai kuma wasu mahimman masu canji waɗanda za ka iya buƙatar canza. servoPin an saita shi zuwa 9, wanda dole ne ya zama fil mai iya PWM akan Arduino ɗinka. An ayyana fil ɗin maɓallin a saman lambar kuma ana iya canza su idan an buƙata.
int servoPin = 9;// wannan fil dole ne ya kasance ɗaya daga cikin waɗanda ke da PWM ~
#define STOPpin 3 // fil ɗin maɓallin turawa don STOP
#define CWpin 2 // fil ɗin maɓallin turawa don CW
#define CCWpin 4 // fil ɗin maɓallin turawa don CCW
A ƙarshe, scText[] array yana riƙe da kirtani waɗanda ake bugawa zuwa Serial Monitor don gyara kuskure. Kana iya canza waɗannan idan kana son nuna saƙonni daban.
Yadda Ake Amfani da Lambar
Loda lambar da aka bayar zuwa Arduino board ɗinka. Buɗe Serial Monitor (saita zuwa 9600 baud) don ganin saƙonnin matsayi. Kana iya sarrafa servo yanzu ta amfani da maɓallan uku:
- Danna ka riƙe maɓallin CW: Servo zai fara juyawa da agogo. Serial Monitor zai nuna "CW" da ƙimar da ake aikawa.
- Danna ka riƙe maɓallin CCW: Servo zai fara juyawa kishiyar agogo. Serial Monitor zai nuna "CCW" da ƙimar da ake aikawa.
- Danna maɓallin Tsayawa: Servo zai yi ƙoƙarin tsayawa. Serial Monitor zai nuna "Stop".
Idan servonka ba ta tsayawa gaba daya lokacin da aka danna maɓallin Stop, za ka buƙaci daidaita ƙimar sc[1] a cikin jerin sc[]. Gwada canza ƙimar kaɗan (misali, daga 58 zuwa 54 ko 52) sannan ka sake loda lambar har sai motar ta tsaya cikakke ba tare da motsi ba.
Nunin Aiki Kai Tsaye
A cikin bidiyon, mai gabatarwa yana nuna cikakken tsarin. Za ka iya ganin servo tana juyawa a dukkan hanyoyi biyu bisa ga danna maɓallan. Ana kuma nuna fitarwar Serial Monitor, wanda ke nuna halin yanzu ("CW", "Stop", ko "CCW") da ƙimar musamman da ake aikawa zuwa servo. Wannan kayan aiki ne mai kyau don gano kurakurai da samun ingantattun ƙimar daidaitawa don motarka ta musamman. Nunin kuma yana nuna yadda daidaita ƙimar a cikin jerin sc[] ke shafar saurin motar kai tsaye, daga motsi a hankali har zuwa iyakar saurin juyawa.
Ƙarshe
Wannan aikin yana ba da hanya mai sauƙi kuma ingantacciya don sarrafa motar servo mai ci gaba. Ta hanyar fahimtar tsarin daidaitawa na ƙimar "tsayawa", za ka iya tabbatar da sarrafawa daidai a cikin ayyukan robotics da sarrafa kai na kanka.
Sassan Bidiyo
- [00:05] Gabatarwa ga Motar Servo Mai Ci Gaba
- [02:02] Bayanin Kayan Aiki na Servo
- [02:40] Tsarin Wayoyi da Haɗin Kai
- [05:07] Bayanin Lambar: Masu Canji da Saitawa
- [08:03] Bayanin Lambar: Babban Tsarin Zagayawa
- [09:56] Aikin servoCommand()
- [10:54] Nunin Aiki Kai Tsaye da Fitowar Serial Monitor
- [12:23] Daidaita Saurin Servo da Ƙimar Tsayawa
++
/*
* S05-13 Servo with 3 push buttons
* Demonstration of Controlling a Continuous Servo (360 servo)
* This code allows you to control a 360-degree servo using push buttons
*
* Modified by Ahmad Shamshiri for Robojax Robojax.com
* on Jan 17, 2019 at 22:42 in Ajax, Ontario, Canada
Watch the video instruction for this sketch: https://youtu.be/hVe4TSRV4ww
Watch Introduction to 360 Servo video with code: https://youtu.be/b_xvu6wWafA
You can get the wiring diagram from my Arduino Course at Udemy.com
Learn Arduino step by step with all libraries, codes, and wiring diagrams all in one place
visit my course now http://robojax.com/L/?id=62
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
Original code by BARRAGAN <http://barraganstudio.com>
*
* Code is available at http://robojax.com/learn/arduino
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int servoPin = 9;// this pin must be one of those with PWM ~
#define STOPpin 3 // push button pin for STOP
#define CWpin 2 // push button for CW
#define CCWpin 4 // push button for CCW
int sc[]={106, 58, 0};// servo commands are in order
//CCW, STOP,CW
String scText[]={"CCW","Stop","CW"};// define texts for 3 actions
int statusText;
int CWBS, CCWBS, SBS;
//CW button status (CWBS)
//CCW button status (CCWBS)
//stop button status (SBS)
void setup() {
Serial.begin(9600);
pinMode(STOPpin,INPUT_PULLUP);// set pin for push button STOP
pinMode(CCWpin,INPUT_PULLUP);// set pin for push button CCW
pinMode(CWpin,INPUT_PULLUP);// set pin for push button CW
myservo.attach(servoPin); // attaches the servo on pin 9 to the servo object
myservo.write(sc[1]);// send STOP command
statusText=1;// initial value is STOP
}
void loop() {
CCWBS = digitalRead(CCWpin);// read status of button CCW
SBS = digitalRead(STOPpin);// read status of button STOP
CWBS = digitalRead(CWpin);// read status of button CW
if(CCWBS ==LOW)
{
servoCommand(0);
}else if(SBS ==LOW)
{
servoCommand(1);
}else if(CWBS ==LOW)
{
servoCommand(2);
}
Serial.println(scText[statusText]);
delay(50);
}// loop
void servoCommand(int n)
{
statusText = n;
myservo.write(sc[n]);
Serial.print("Going to ");
Serial.print(scText[n]);
Serial.print( "(");
Serial.print(sc[n]);
Serial.println(")");
}
Abin da zaka iya bukata
-
Amazon360 Degree Servo motor on Amazonlink.amazon
-
eBay360 Degree Servo motor on eBayebay.us
-
AliExpress360 Degree Servo motor on AliExpresss.click.aliexpress.com
-
AliExpress360 Degree Servo motor on AliExpress-2s.click.aliexpress.com
Albarkatun da kuma shafukan da za a duba
-
Ciki
Fayiloli📁
Sauran fayiloli
-
SG90 Seroo motar datasheet
robojax-servo-SG90_datasheet.pdf0.12 MB