Kontrola Servo Motori: Gidin Daɗi
Abubuwa mai yawa:
Kontrola Servo Motori ta bayyana: Kontrola servo motori tana iya aiki da zama a yi gaba-gaban abin da ake ƙirƙira, kadan da yanayi na motori, a kan iska masu elektronika.
Mekanisman na Fidiyarwa: Mekanisman na fidiyarwa, domin potentiometer ko encoder, tana ba da haka cewa aiki na motori ya shafi shiga a kan kontrola.
Iskar Masu PWM: Pulse-width modulation (PWM) tana da muhimmanci wajen bincike wurin servo tare da a yi ƙarin da tsawon iska masu jirgin magana.
Arduino da Servo Motori: Amfani da Arduino board tana da kyau da ke mata a yi aiki da kontrola servo motori a kan haɗin setup na hardware.
Ayyuka na Servo Motori: Servo motori tana da muhimmanci wajen ƙarfin ayyuka da ke buƙatar ingantaccen kontrola, kamar robotics da ayyukan automatikin.
Servo motori shine motori da ake gudanar da zama a yi gaba-gaban koyarwa. Tana zaɓe da DC motori na musamman a kan yadda ake iya ƙirƙira wurin da ba suka ci gaba-gaba. Wannan muhimmiya tana da servo motori ideal a kan robotics, automatikin da ƙarfin hobby.
Wannan makalun tana bayyana yadda ake yi kontrola servo motori, farkon daga cikin servo motori, da kuma ayyukan kontrola da tashiyoyi. Tana taka misalai na ayyukan servo motori da ayyukan ayyuka.
Me Servo Motori?
Servo motori tana nufin actuator da ke iya ƙirƙira wurin (angle), kadan da yanayi. Servo motori na biyu tana da uku mafi girma: DC motor, kontrola circuit, da feedback device.
DC motor tana taimakawa servo da kuma tana zaɓe da gears wadanda tana ƙara kadan da yanayi da kuma samun torque a kan output shaft.

Output shaft shine ƙarfi na servo wanda tana ƙirƙira da kuma tana ƙarƙashinsa mutum.
Kontrola circuit tana da muhimmanci wajen ƙara da tattara aiki daga kontrola na gargajiya. Wanene ne tana ce servo ina iya ƙirƙira, kadan da yanayi, ko yadda ina iya ƙirƙira. Kontrola circuit tana taka power zuwa DC motor don taimakawa.
Feedback device tana da potentiometer ko encoder wanda tana ƙara da wurin da aka ƙirƙira output shaft.

Feedback device tana ƙara da data na wurin zuwa kontrola circuit, wanda tana taka ƙara da DC motor’s power don taimakawa wurin da aka ƙirƙira da shiga a kan iska.
Loop na feedback bayan kontrola circuit da feedback device tana ba da haka cewa servo zai iya ƙirƙira da kuma ƙara wurin da aka ƙirƙira a kan range of motion.
Yadda Ake Kontrola Servo Motori?
Servo motori tana kontrola a kan ƙara da iskar masu PWM (pulse-width modulation) zuwa signal line na servo. PWM tana da muhimmanci wajen switch iska on da off tare da a yi ƙarin da tsawon iska. Tsawon iska tana ƙirƙira wurin output shaft.
Misali, idan kake ƙara da iskar masu PWM da pulse width na 1.5 milliseconds (ms), servo tana ƙirƙira zuwa neutral position (90 degrees).

Idan kake ƙara da iskar masu PWM da pulse width na 1 ms, servo tana ƙirƙira zuwa minimum position (0 degrees). Idan kake ƙara da iskar masu PWM da pulse width na 2 ms, servo tana ƙirƙira zuwa maximum position (180 degrees).
Iskar masu PWM tana da frequency na 50 Hz, wanda tana ƙara da ƙarin ƙarin 20 ms. Tsawon iska zai iya ƙara da ƙarin ƙarin 1 ms zuwa 2 ms a kan lokacin.
An fi sani ayyukan ƙara da iskar masu PWM zuwa servo motori. Wasu daga cikin ayyukan da ake fi sani:
Amfani da Arduino board ko microcontroller na musamman
Amfani da potentiometer ko analog sensor na musamman
Amfani da joystick ko digital input device na musamman
Amfani da dedicated servo controller ko driver
A cikin sections na biyu, zan iya duba ayyukan da ake fi sani a cikin ƙarin ƙarin da kuma taka misalai na yadda suke aiki.
Kontrola Servo Motori ta hanyar Arduino
Arduino tana da kyau a kan ƙarfin kontrola servo motori. Arduino boards tana da built-in PWM outputs wanda ake amfani da su wajen ƙara da iska zuwa servos. Arduino tana da Servo library wanda tana da kyau wajen rubuta code na kontrola servo.
Don kontrola servo motori ta hanyar Arduino, zaka bukata:
Arduino board (kamar Arduino UNO)
Standard servo motor (kamar SG90)
Jumper wires
Breadboard (optional)
Wire na red daga servo tana zaɓe zuwa 5V a kan Arduino board. Wire na black daga servo tana zaɓe zuwa GND a kan Arduino board. Wire na white daga servo tana zaɓe zuwa pin 9 a kan Arduino board.
Don rubuta code zuwa Arduino board, zaka bukata a amfani da Arduino IDE (online ko offline). Zaka iya amfani da one of the examples from the Servo library ko rubuta code kaɗan.
Code na biyu tana nuna yadda ake sweep servo motori across 180 degrees ta hanyar for loop:
#include <Servo.h> // Include Servo library
Servo myservo; // Create Servo object
int pos = 0; // Variable for position
void setup() {
myservo.attach(9); // Attach Servo object to pin 9
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // Loop from 0 to 180 degrees
myservo.write(pos); // Write position to Servo object
delay(15); // Wait 15 ms
}
for (pos = 180; pos >= 0; pos -= 1) { // Loop from 180 to 0 degrees
myservo.write(pos); // Write position to Servo object
delay(15); // Wait 15 ms
}
}
Code na biyu tana amfani da two loops don increment and decrement variable na position daga 0 zuwa 180 degrees da kuma vice versa. Tana taka wannan value zuwa Servo object ta hanyar myservo.write(pos). Tana taka ƙara da delay na 15 ms a kan ƙarin ƙarin don ƙara da yanayi.
Upload code na biyu zuwa Arduino board ta hanyar Upload button na IDE, kuma tafara a cewa servo motori tana ƙirƙira back and forth smoothly.
Kontrola Servo Motori ta hanyar Potentiometer
Potentiometer tana da analog sensor wanda ake iya ƙara da resistance depending on how much you turn its knob. Zaka iya amfani da potentiometer a kan ƙarfin kontrola servo motori.
Don kontrola servo motori ta hanyar potentiometer, zaka bukata:
Arduino board (kamar Arduino UNO)
Standard servo motor (kamar SG90)
Potentiometer (10k Ohms)
Jumper wires
Breadboard
Wiring diagram na connection ta hanyar potentiometer da servo motor zuwa Arduino board tana nuna a nan:
Wire na red daga potentiometer tana zaɓe zuwa 5V a kan Arduino board. Wire na black daga potentiometer tana zaɓe zuwa GND a kan Arduino board. Wire na green daga potentiometer tana zaɓe zuwa pin A0 a kan Arduino board.
Wire na red daga servo tana zaɓe zuwa 5V a kan another row a kan breadboard. Wire na black daga servo tana zaɓe zuwa GND a kan another row a kan breadboard. Wire na white daga servo tana zaɓe zuwa pin D9 a kan another row a kan breadboard.
Don rubuta code zuwa Arduino board, zaka bukata a amfani da same code as the previous example but change a few lines:
#include <Servo.h> // Include Servo library
Servo myservo; // Create Servo object
int potpin = A0; // Pin connected to potentiometer
int val = 0; // Variable for reading potentiometer value
void setup() {
myservo.attach(9); // Attach Servo object pin D9
}
void loop() {
val = analogRead(potpin); // Read value from potentiometer (0 -1023)
val = map(val,0,1023,0,180); // Map value range (0 -180)
myservo.write(val); // Write mapped value Servo object
delay(15); // Wait 15 ms
}
Code na biyu tana amfani da function na analogRead(potpin) don ƙara da value daga potentiometer connected pin A0. Tana taka ƙara da function na map(val,0,1023,0,180) don map value range from 0 -1023 degrees. Tana taka ƙara da value zuwa Servo object ta hanyar function na myservo.write(val). Tana taka ƙara da delay, the same previous example.
Zaka iya upload code na biyu zuwa Arduino board ta hanyar Upload button na IDE. Zaka tafara a cewa servo motori tana ƙirƙira according to the knob position potentiometer.
Kontrola Servo Motori ta hanyar Joystick
Joystick tana da digital input device wanda ake iya detect direction and magnitude of movement along two axes. Zaka iya amfani da joystick don kontrola servo motori ta hanyar mapping x-axis na joystick zuwa angle na servo.
Don kontrola servo motori ta hanyar joystick, zaka bukata:
Arduino board (kamar Arduino UNO)
Standard servo motor (kamar SG90)
Joystick module (kamar KY-023)
Jumper wires
Breadboard
Wiring diagram na connection ta hanyar joystick module da servo motor zuwa Arduino board tana nuna a nan:
!https://www.makerguides.com/wp-content/uploads/2019/01/Servo-motor-control-with-Arduino-and-joystick-wiring-diagram.png
Wire na red daga joystick module tana zaɓe zuwa 5V a kan Arduino board. Wire na black daga joystick module tana zaɓe zuwa GND a kan Arduino board. Wire na green daga joystick module tana zaɓe zuwa pin A0 a kan Arduino board.
Wire na red daga servo tana zaɓe zuwa 5V a kan another row a kan breadboard. Wire na black daga servo tana zaɓe zuwa GND a kan another row a kan breadboard. Wire na white daga servo tana zaɓe zuwa pin D9 a kan another row a kan breadboard.
Don rubuta code zuwa Arduino board, zaka bukata a amfani da same code as the previous example but change a few lines:
#include <Servo.h> // Include Servo library
Servo myservo; // Create Servo object
int joyX = A0; // Pin connected to joystick x-axis
int val = 0; // Variable for reading joystick value
void setup() {
myservo.attach(9); // Attach Servo object to pin 9
}
void loop() {
val = analogRead(joyX); // Read value from joystick x-axis (0 - 1023)
val = map(val, 0, 1023, 0, 180); // Map value range (0 - 180)
myservo.write(val); // Write mapped value to Servo object
delay(15); // Wait 15 ms
}
Code na biyu tana amfani da function na analog.Read(joyX) don ƙara da value daga joystick x-axis connected to pin A0. Tana