Cashar 89: Isticmaalka Matoor-ka-socodka ama 360 ee Servo | Koorsada Arduino Tallaabo Tallaabo
Ma walig doonay in aad matoor ku wareejiso labada jiho muddo aad rabto, halkii aad ka rogi lahayd sidii servo caadi ah? Tan waxa si sax ah u bixiya matoor servo joogto ah ama 360-degree ah. Si ka duwan servo caadiga ah oo u dhaqaaqa xagal gaar ah (caadi ahaan 0 ilaa 180 darajo), servo joogtada ahi wuxuu si joogto ah u wareegaa jiho saacadda ama ka soo horjeeda saacadda. Tani waxay ka dhigaysaa mid ku habboon dhismaha robots yaryar, goobo kamaradaha, ama mashruuc kasta oo u baahan xakamaynta wareegga joogtada ah.
Mashruucan, waxaanu ku dhisi doonaa nidaam xakamayn oo loogu talagalay servo 360-degree ah iyadoo la isticmaalayo saddex badhamo riixid oo keliya. Waxaad awoodi doontaa inaad ku amarto servo inuu ku wareego jiho saacadda, ka soo horjeeda saacadda, ama uu istaago wakhti kasta. Hagahan ayaa ku tusi doona sida loo xiro, sharaxa qaybaha koodka ee aad beddeli karto, iyo muujin toos ah oo ku saabsan sida nidaamku u shaqeeyo.
Waa kuwan qaar ka mid ah fikrado wax ku ool ah oo ku saabsan isticmaalka servo joogtada ah ee mashruucyadaada:
- Dhis robot yar oo laba lug leh: Isticmaal laba servo oo joogto ah si aad u wado taayirada, taasoo kuu ogolaanaysa horay, gadaal, iyo leexasho.
- Abuur goob kamarad oo leexan karta oo kor u kaca: Isticmaal hal servo joogto ah si aad ugu wareejiso kamarad ammaan ama duurjoogta si tartiib ah oo joogto ah.
- Otomaatig ka dhig suunka gaadiidka: Xakamee nidaam suun yar oo gaadiid ah si aad u kala saarto ama ugu bixiso alaabta.
- Naqshadee goob bandhig oo wareegaya: Muuji moodal 3D ah ama badeecad goob si joogto ah u wareegaysa.
Qalabka Loo Baahan Yahay
- Arduino board (Uno, Nano, iwm.)
- Matoor servo joogto ah (360-degree) (tusaale, FS90R, DS04-NFC)
- 3x Badhamo riixid
- Fiilooyin isku xira
- Breadboard
Hagaha Xirista
Xirista mashruucan waa mid toos ah. Matorka servoga wuxuu leeyahay saddex fiilo: caadi ahaan mid madow oo dhulka (GND), mid dhexe (badanaa cas) oo koronto (5V), iyo mid khafiif ah (oranji, jaalle, ama caddaan) oo ah signal-ka. Sida lagu muujiyey fiidiyowga, servoga waxaa loo xirayaa Arduino sidan soo socota:
- Dhulka Servoga (fiilo madow): Ku xir Arduino GND.
- Korontada Servoga (fiilo dhexe/cas): Ku xir Arduino 5V.
- Signal-ka Servoga (fiilo khafiif ah): Ku xir Arduino pin 9.
Saddexda badhamo ee riixida, badhamo kastaa wuxuu leeyahay laba dhinac. Hal dhinac oo dhammaan badhamada ah ayaa la isku xiraya ka dibna lagu xiraya Arduino GND. Dhinaca kale ee badhamo kastaa wuxuu ku xiran yahay pin dijitaal oo gooni ah, sida hoos ku qoran (fiidiyowga 03:40):
- Badhanka saacadda (CW): Ku xir Arduino pin 2.
- Badhanka istaaga: Ku xir Arduino pin 3.
- Badhanka ka soo horjeeda saacadda (CCW): Ku xir Arduino pin 4.

Sharaxa Koodka
Koodku wuxuu u qorshaysan yahay in si fudud loo habeeyo. Qaybta ugu muhiimsan ee aad u baahan doonto inaad hagaajiso waa sc[] array, kaas oo haysta qiimayaasha PWM-ga ee gaarka ah ee loo diro servoga si loo xakameeyo ficilkiisa. Qiimayaashani ma aha kuwa caalami ah waa in lagu qiyaaso servogaaga gaarka ah (fiidiyowga 12:23).
int sc[]={106, 58, 0};// amarrada servoga waxay u kala horreeyaan
//CCW, STOP,CW
Array-kani waa xudunta qiyaasta. Qiimayaasha waxaa loo isticmaalaa sidan:
- sc[0] = 106: Qiimahan waxaa la diraa si servogu ugu wareego ka soo horjeeda saacadda.
- sc[1] = 58: Kani waa qiimaha "istaagga". Sababo la xiriira wareegyada gudaha, qiimaha saxda ah ee servoga joojiya wuu kala duwan yahay. Waxaad ogaan kartaa in servogaagu si tartiib ah u wareego xitaa marka amarkan la diro, waxaana u baahan doontaa inaad qiimahan wax yar hagaajiso si aad u hesho qiimaha "istaagga dhabta ah" ee matorkaaga.
- sc[2] = 0: Qiimahani wuxuu servoga ku wareejiyaa jiho saacadda xawaaraha ugu sarreeya.
Waxaad hagaajin kartaa qiimayaasha ku jira sc[] array si aad u beddesho xawaaraha wareegga. Tusaale ahaan, dejinta sc[0] ilaa 70 waxay ka dhigi doontaa wareegga ka soo horjeeda saacadda mid ka gaabis ah. Marka qiimuhu uu u dhow yahay qiimaha "istaagga" (58), xawaaraha matorku wuu ka gaabsi noqon doonaa jihooyinkaas. Qiimayaasha ka fog 58 waxay kordhin doonaan xawaaraha ilaa xadka ugu sarreeya.
Waxa kale oo jira doorsoomayaal kale oo muhiim ah oo aad u baahan karto inaad beddesho. servoPin waxaa lagu dejiyay 9, kaas oo ah inuu yahay pin PWM-ku shaqeeyo ee Arduino-gaaga. Pinnada badhamada waxaa lagu qeexay bilowga koodka waxaana la beddeli karaa haddii loo baahdo.
int servoPin = 9;// pin-kani waa inuu ka mid ahaadaa kuwa leh PWM ~
#define STOPpin 3 // pin badhanka STOP
#define CWpin 2 // pin badhanka CW
#define CCWpin 4 // pin badhanka CCW
Ugu dambeyntii, scText[] array wuxuu haystaa xuruufta lagu daabaco Serial Monitor-ka si loo ogaado cilladaha. Waxaad beddeli kartaa kuwan haddii aad rabto inaad muujiso farriimo kala duwan.
Sida Loogu Isticmaalo Koodka
Soo geli koodka la bixiyay Arduino-gaaga. Fur Serial Monitor-ka (deji 9600 baud) si aad u aragto farriimaha xaaladda. Hadda waxaad xakameyn kartaa servoga adigoo isticmaalaya saddexda badhamo:
- Riix oo hay badhanka CW: Servogu wuxuu bilaabi doonaa inuu ku wareego jiho saacadda. Serial Monitor-ku wuxuu muujin doonaa "CW" iyo qiimaha la dirayo.
- Riix oo hay badhanka CCW: Servogu wuxuu bilaabi doonaa inuu ku wareego ka soo horjeeda saacadda. Serial Monitor-ku wuxuu muujin doonaa "CCW" iyo qiimaha la dirayo.
- Riix badhanka Stop: Servogu wuxuu isku dayi doonaa inuu istaago. Serial Monitor-ku wuxuu muujin doonaa "Stop".
Haddii servo-gaagu uusan si buuxda u joogsan marka la riixo badhanka Stop, waxaad u baahan doontaa inaad hagaajiso qiimaha sc[1] ee ku jira safka sc[]. Isku day inaad wax yar beddesho qiimaha (tusaale, laga bilaabo 58 ilaa 54 ama 52) oo dib u soo geli koodka ilaa uu matoorku si buuxda u joogsado.
Muuujin Toos ah
Fiidiyowga, soo-bandhigu wuxuu muujinayaa nidaamka oo dhan. Waxaad arki kartaa servo-ga oo ku wareegaya labada jiho ee ku saleysan riixista badhanka. Wax soo saarka Serial Monitor-ka ayaa sidoo kale la muujinayaa, isagoo muujinaya xaaladda hadda jirta ("CW", "Stop", ama "CCW") iyo qiimaha gaarka ah ee loo dirayo servo-ga. Tani waa qalab aad u fiican oo lagu ogaado cilladaha iyo lagu helo qiimayaasha hagaajinta ee ugu habboon matoorkaaga gaarka ah. Muujintu waxay sidoo kale tusinaysaa sida hagaajinta qiimayaasha safka sc[] ay si toos ah u saameyso xawaaraha matoorka, laga bilaabo gurguurasho gaabis ah ilaa xawaarihiisa ugu sarreeya.
Gunaanad
Mashruucani wuxuu bixiyaa hab fudud oo wax ku ool ah oo lagu xakameeyo matoorka servo-ga joogtada ah. Adigoo fahmaya habka hagaajinta qiimaha "stop", waxaad hubin kartaa xakameyn sax ah mashruucyadaada robotiga iyo otomaatiga.
Qaybaha Fiidiyowga
- [00:05] Hordhaca Matoorka Servo-ga Joogtada ah
- [02:02] Dulmarka Qalabka ee Servo-ga
- [02:40] Jaantuska Xidhiidhka iyo Isku Xirka
- [05:07] Sharaxaadda Koodka: Doorsoomayaasha iyo Dejinta
- [08:03] Sharaxaadda Koodka: Macquulka Loop-ka Guud
- [09:56] Shaqada servoCommand()
- [10:54] Muujin Toos ah iyo Wax Soo Saarka Serial Monitor-ka
- [12:23] Hagaajinta Xawaaraha Servo-ga iyo Qiimayaasha Joogsiga
++
/*
* 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(")");
}
Waad u baahan tahay
-
Amaazon360 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
Kheyraadka & Tixraacyada
-
Gudaha
Faylasha📁
Faylal kale
-
SG90 Seroo motor warbixin
robojax-servo-SG90_datasheet.pdf0.12 MB