Cashar 92: Xakamaynta Servo badan oo mid kastaaba leeyahay potentiometer| Koorsada Arduino Tallaabo Tallaabo
Mashruucan, waxaad ku baran doontaa sida loo dhiso kontaroolaha servo-ga madax-bannaan, kanaal badan oo adeegsada Arduino Uno iyo laba potentiometer. Halkii aad ka isticmaali lahayd hal servo oo raacaya hal knob, hagahan wuxuu ku tusayaa sida loo siiyo servo kasta analog input u gaar ah, taas oo kuu oggolaanaysa inaad kontoroolto laba—iyo ilaa lix—servo motor oo madax-bannaan isla markaana isku waqti. Tani waa dhismo aasaasi u ah mashruuc kasta oo u baahan kontorool gacmeed sax ah oo dhinacyo badan oo dhaqaaqaya.

Qaabkani waa mid aad u badan oo loo isticmaali karo. Waa kuwan qaar ka mid ah siyaabaha wax ku oolka ah ee aad u isticmaali karto:
- Robotics: Kontoroolka pan iyo tilt ee camera gimbal ama salka iyo kala-gooyaha gacanta ee robot yar.
- Animatronics: Abuurista dhaqdhaqaaqyo nool u eg oo loogu talagalay puppet ama jilaa animatronic ah adoo si madax-bannaan u kontoroolaya madaxiisa iyo indhihiisa.
- Kontoroolka Moodellada: Dhisista kontaroolar gaar ah oo loogu talagalay RC vehicles ama model aircraft si sax ah loogu hagaajiyo flaps iyo ailerons.
- Automation: Abuurista saldhig kontorool gacmeed ah oo loogu talagalay solar tracker ama multi-axis positioning jig.
Qalabka Loo Baahan Yahay
- Arduino Uno (ama board kasta oo la jaan qaadaya)
- 2x Servo motors (standard 180-degree servos ayaa halkan lagu isticmaalay)
- 2x Potentiometers (10kΩ waa doorasho caadi ah)
- Breadboard iyo fiilooyin jumper ah
- Koronto bixiye 5V oo dibadda ah (waxaa lagugula talinayaa servo badan)
Hagaha Wiring
Mashruucani wuxuu u baahan yahay waxoogaa wiring ah oo ka badan qaabka hal-servo, sababtoo ah waxaad u baahan tahay inaad qaybiso korontada iyo dhulka qaybaha kala duwan. Furaha ayaa ah inaad isticmaasho breadboard-ka power rails si aad u abuurto bus 5V iyo GND oo wadaag ah. Jaantuska wiring ayaa lama huraan u ah dhismahan.

Aynu kala furfurno xiriirada, sida lagu sharaxay fiidiyowga (fiidiyowga 02:23). Marka hore, deji power rails-kaaga: ku xir Arduino-ga 5V pin-ka breadboard-ka positive rail iyo GND pin-ka negative rail. Tani waxay kuu siinaysaa marin u furan oo koronto ah dhammaan qaybahaaga.
Potentiometers: Potentiometer kastaa wuxuu u shaqeeyaa sidii voltage divider. Ku xir midigta pin-ka ee pot kasta 5V rail-ka iyo bidixda pin-ka GND rail-ka. Bartamaha pin-ka waa "wiper" wuxuuna bixiyaa voltage doorsooma. Ku xir bartamaha pin-ka ee potentiometer-ka koowaad analog input A0, iyo bartamaha pin-ka ee kan labaad A1 (fiidiyowga 03:22).
Servo Motors: Servo kastaa wuxuu leeyahay saddex fiilo. Ku xir fiilada midabka madow (badanaa madow ama brown) GND rail-ka. Ku xir fiilada dhexe (badanaa casaan) 5V rail-ka. Ugu dambeyntii, ku xir fiilada signal-ka (badanaa orange ama yellow) pin-ka PWM-ka ee Arduino-ga. Fiilada signal-ka ee servo-ga koowaad waxay tagtaa pin 3, fiilada signal-ka ee servo-ga labaadna waxay tagtaa pin 5 (fiidiyowga 04:01). Xusuusnow, waa inaad isticmaashaa PWM-enabled pins (kuwa lagu calaamadeeyay tilde "~" ee Uno) kontoroolka servo-ga.
Sharaxaadda Koodhka
Koodhku wuxuu ku salaysan yahay tusaalaha caadiga ah ee "Knob" ee Arduino IDE laakiin waa la beddelay si uu u qabto laba servo. Macquulku waa toos: akhri qiimaha analog-ga ee potentiometer-ka, u sawir xagal, oo amar ku bixi servo-ga inuu u dhaqaaqo xagashaas. Qaybta configuration-ka ee korka koodhka ayaa ah meesha aad ku samayn doonto dhammaan hagaajintaada.
Waa kuwan qaybta isticmaalaha uu hagaajin karo oo qeexaysa pins-ka oo abuuraya walxaha servo-ga:
#include <Servo.h>
//**** servo 1 settings
Servo servo1;
const int servo1PotPin = A0;
const int servo1Pin = 3;// Must use PWM enabled pin
int servo1Value;
//**** servo 1 settings END
//**** servo 2 settings
Servo servo2;
const int servo2PotPin = A1;
const int servo2Pin = 5;// Must use PWM enabled pin
int servo2Value;
//**** servo 1 settings END
Kani waa xudunta configuration-ka. Si aad ugu darto servo saddexaad, waxaad koobiyeysaa block-ka "servo 2 settings", waxaad u beddeshaa dhammaan "2"-yada "3", waxaadna u qoondeysaa analog pin cusub (tusaale, A2) iyo PWM pin cusub (tusaale, 9). Fasalka Servo wuxuu ku dhex jiraa Arduino IDE, marka looma baahna maktabado dheeri ah.
Gudaha setup() function-ka, amarka servo.attach(pin) wuxuu u sheegaa Arduino-ga pin-ka uu ku xiran yahay fiilada signal-ka ee servo kasta. Waa inaad haysataa hal sadar oo loogu talagalay servo kasta oo aad isticmaalayso.
void setup() {
//Robojax.com multiple servo
servo1.attach(servo1Pin);
servo2.attach(servo2Pin);
}
Gudaha loop(), koodhku wuxuu akhriyaa qiimaha potentiometer-ka, wuxuu u sawiraa 0-180 degree, wuxuuna u qoraa xagashaas servo-ga. delay(5) ee dhamaadka waa halbeeg hagaajin ah. Sida lagu muujiyay fiidiyowga, hoos u dhigista qiimahan 15 ilaa 5 milliseconds waxay ka dhigaysaa dhaqdhaqaaqa servo-ga mid siman oo waxay baabi'ineysaa gariirka (fiidiyowga 12:00).
Muuujinta Mashruuca Tooska ah
Marka aad circuit-ka ku xirto oo aad koodhka kor u qaaddo, muujintu waa isla markiiba. Markaad koronto siiso Arduino-ga, servo kastaa wuxuu u dhaqaaqi doonaa meel uu go'aamiyo goobta hadda ee potentiometer-kiisa u dhigma. Markaad wareejiso knob, servo-kiisu wuxuu si siman u raaci doonaa dhaqdhaqaaqa. Fiidiyowgu wuxuu muujinayaa in labada servo ay si buuxda u madax-bannaan yihiin, taas oo u oggolaanaysa dhaqdhaqaaqyo adag oo isku waqti ah. Haddii aad ogaato jitter ama gariir, hagaajinta qiimaha delay() ee loop-ka ayaa ah waxa ugu horreeya ee la tijaabiyo.
Cutubyada
- [00:00] Hordhac iyo Dulmarka Mashruuca
- [00:56] Fahamka Matoorada Servo
- [02:23] Jaantuska Xidhiidhka Labada Servo iyo Potentiometer-yada
- [04:15] Sharaxaad Faahfaahsan oo Ku Saabsan Xidhiidhka
- [06:49] Sharaxaadda Koodhka: Qaabaynta iyo Dejinta
- [09:15] Sharaxaadda Koodhka: Xakamaynta Caqliga iyo Qaabaynta
- [11:15] Bandejig Toos ah iyo Hagaajin
/*
* Control two or more servo motors
* using potentiometers.
* Modified by Ahmad Shamshiri on Oct 17, 2019 at 20:13
* in Ajax, Ontario, Canada . www.Robojax.com
* This code on robojax https://robojax.com/RJT766
*
* Original code from Arduino IDE: File->Examples->Servo->knob
*
Controlling a servo position using a potentiometer (variable resistor)
by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>
modified on 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Knob
* Get this code and other Arduino codes from Robojax.com
* * 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 download 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 1 settings
Servo servo1;
const int servo1PotPin =A0;
const int servo1Pin = 3;// Must use PWM enabled pin
int servo1Value;
//**** servo 1 settings END
//**** servo 2 settings
Servo servo2;
const int servo2PotPin =A1;
const int servo2Pin = 5;// Must use PWM enabled pin
int servo2Value;
//**** servo 1 settings END
void setup() {
//Robojax.com multiple servo
servo1.attach(servo1Pin);
servo2.attach(servo2Pin);
}
void loop() {
//Robojax.com multiple servo
servo1Value = analogRead(servo1PotPin);
servo1Value = map(servo1Value, 0, 1023, 0, 180);
servo1.write(servo1Value);
servo2Value = analogRead(servo2PotPin);
servo2Value = map(servo2Value, 0, 1023, 0, 180);
servo2.write(servo2Value);
delay(5);
//Robojax.com multiple servo
}// loop end
Waad u baahan tahay
-
Amaazon
-
Amaazon
-
eBay
-
AliExpressPurchase SG90 servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Kheyraadka & Tixraacyada
Wali wax kaydsan ah oo weli ma jiro.
Faylasha📁
Faylal kale
-
SG90 Seroo motor warbixin
robojax-servo-SG90_datasheet.pdf0.12 MB