This tutorial is part of: Motocin Servo
Duk bidiyon da suka shafi injinan servo waɗanda ke da alaƙa, an jera su a nan. Hanyoyin haɗi zuwa wasu bidiyo suna ƙasa da wannan labarin.
Yadda ake Amfani da Continuous 360° Servo tare da Arduino
A cikin wannan koyawa, za mu koyi yadda ake sarrafa servo mai ci gaba na 360° ta amfani da Arduino. Ba kamar daidaitattun servos ba, servos masu ci gaba na iya juyawa har abada a kowane bangare, wanda ke ba da damar aikace-aikace masu yawa. Duk da haka, sarrafa matsayinsu yana buƙatar fahimtar umarnin da aka aika musu da ɗan gwaji don nemo ƙimar tsayawa daidai.
Za mu ƙera shirin da zai ba mu damar aika umarni ta hanyar Serial Monitor don juya servo zuwa hagu, dama, ko tsayar da shi. Lambar za ta haɗa da mahimmancin dabaru don fassara ƙimar ASCII na umarnin da muka shigar. Don ƙarin bayani kan tsarin coding, tabbatar da duba bidiyon a (a cikin bidiyo a 12:30).
Kayan Aiki Da Aka Bayyana
Don aiwatar da wannan aikin, za ku buƙaci servo mai ci gaba na 360°, allo na Arduino, da kuma wutar lantarki mai iya samar da isasshen wutar lantarki (aƙalla 500mA). Servo yana karɓar siginonin sarrafawa daga Arduino, wanda ke amfani da pulse width modulation (PWM) don nuna alkibla da saurin juyawa.
Motar servo kanta tana da wayoyi uku: wutar lantarki, ƙasa, da sarrafawa. Wayar wutar lantarki tana haɗawa da wutar lantarki, wayar ƙasa tana haɗawa da duka wutar lantarki da ƙasar Arduino, kuma wayar sarrafawa tana haɗawa da wani fil ɗin da aka keɓe akan Arduino don aika sigina.
Cikakkun Bayanai na Datasheet
| Mai ƙera | Generic |
|---|---|
| Lambar sashi | Servo mai ci gaba na 360° |
| Wutar Logic/IO | 5 V |
| Wutar samarwa | 4.8–6 V |
| Fitowar wutar lantarki (kowane tashar) | 500 mA |
| Ƙarfin wutar lantarki (kowane tashar) | 1 A max |
| Jagorar mitar PWM | 50 Hz |
| Shigar da matakan dabaru | High: >2.5 V, Low: <0.8 V |
| Rage wutar lantarki / RDS(on) / saturation | — |
| Iyakokin zafi | — |
| Kunshin | Daidaitaccen gidan servo |
| Bayanan kula / bambance-bambance | Akwai a cikin girma dabam-dabam |
- Tabbatar da ƙasa guda tsakanin Arduino da wutar lantarki.
- Yi amfani da wutar lantarki ta waje don servo don guje wa ɗaukar nauyi fiye da kima akan Arduino.
- Gwada ƙimar tsayawa don nemo mafi kyawun aiki ga servo ɗin ku.
- Kula da zafin servo yayin aiki don hana yin zafi fiye da kima.
- Yi amfani da siginar PWM don sarrafa sauri da alkiblar servo.
Umarnin Haɗin Waya
Don haɗa servo ɗin ku mai ci gaba na 360° zuwa Arduino, fara da haɗa wayar wutar servo zuwa wutar lantarki ta waje wadda ke ba da 5V. Wayar ƙasa ta servo yakamata a haɗa ta zuwa fil ɗin ƙasa (GND) akan Arduino, tabbatar da cewa wutar lantarki da Arduino suna raba ƙasa ɗaya. Wayar sarrafawa ta servo za ta tafi zuwa fil 9 akan Arduino, wanda shine inda za a aika siginar PWM daga.
Sau biyu duba cewa haɗin ku sun amintu, saboda haɗin da ba su da ƙarfi na iya haifar da halayen servo marasa daidaituwa. Idan servo ɗin ku nau'in da za a iya kunna shi kai tsaye daga Arduino, kuna iya haɗa wayar wutar zuwa fil 5V na Arduino, amma tabbatar da cewa jimlar wutar lantarki ba ta wuce abin da Arduino zai iya bayarwa ba.
Misalan Lamba & Bayani
Ɗan ƙaramin rubutu mai zuwa yana nuna yadda ake saita servo da karanta umarni daga Serial Monitor:
#include
Servo myservo; // ƙirƙirar abu na servo don sarrafa servo
int incomingByte = 0; // don shigowar bayanan serial
void setup() {
Serial.begin(9600);
myservo.attach(9); // haɗa servo akan fil 9 zuwa abu na servo
}
A cikin wannan ɗan ƙaramin lamba, mun haɗa da ɗakin karatu na Servo kuma mun ƙirƙiri abu na servo mai suna myservo. Mun kuma saita sadarwar serial a 9600 baud kuma mun haɗa servo zuwa fil 9.
Na gaba, muna da babban madauki inda muke karanta shigowar bayanan serial da sarrafa servo bisa ga umarnin:
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
if (incomingByte == 108) { // umarnin 'L'
myservo.write(0); // juya zuwa agogo
} else if (incomingByte == 114) { // umarnin 'R'
myservo.write(180); // juya sabanin agogo
} else if (incomingByte == 60) { // umarnin tsayawa
myservo.write(60); // tsayar da servo
}
}
}
Wannan lambar tana duba idan akwai wani bayanai a cikin buffer na serial. Dangane da ƙimar ASCII na shigarwa (misali, 108 don 'L' don juya zuwa agogo, 114 don 'R' don juya sabanin agogo), tana aika umarnin da ya dace zuwa servo.
Don cikakken lamba da ƙarin bayani, da fatan za a koma ga cikakken shirin da aka ɗora a ƙarƙashin labarin.
Nuni / Abin da Za Ku Yi Tsammani
Lokacin da kuka ɗora lambar kuma ku buɗe Serial Monitor, kuna iya shigar da 'L' don juya servo zuwa hagu, 'R' don juya shi zuwa dama, ko wasu ƙimomi don gwada tsayar da servo. Yi tsammanin samun ƙimar tsayawa daban-daban, saboda halayen servo na iya bambanta bisa ga ingancinsa da ƙirarsa (a cikin bidiyo a 18:45).
Yi hattara da yadda servo ke amsa umarnin; idan bai tsaya kamar yadda ake tsammani ba, gwada ƙimomi daban-daban har sai kun sami mafi kyawun umarnin tsayawa. Wannan na iya buƙatar ɗan gwaji, musamman don guje wa yin zafi fiye da kima ga servo.
Babuka
- Gabatarwa (0:00)
- Kayan Aiki Da Aka Bayyana (1:30)
- Umarnin Haɗin Waya (3:45)
- Bayani kan Lamba (5:15)
- Nuni (18:00)
Albarkatu
- Takardun ɗakin karatu na Arduino Servo
- Takardun bayanai na masu ƙera Servo mai ci gaba
This tutorial is part of: Motocin Servo
- Sarrafa Servo da Maɓallan Turawa ta amfani da Arduino
- 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)
- Sarrafa Servo da Potentiometer ta amfani da Arduino
- Sarrafa Servo da Potentiometer da LCD1602 ta amfani da Arduino
- Controlling Servo Motors Using an Infrared Remote with Arduino
- Kulawa na Motar Servo Arduino ta Amfani da Potentiometer
- Sarrafawa Matsayi na Servo da Hanyoyin Hannu don Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- Arduino Code and Video for PCA9685 16-Channel 12-Bit Servo Controller V1
- Gina Arduino Servo Toggle Switch tare da Push Button
/*
*
* Demonstration of Controlling Continuous Servo (360 servo)
* This code allows you to control a 360-degree servo by a command from the Serial Monitor.
* this 350 servo motor is a just for fun. it can't be used for real application where you need exact positioning. get stepper motor or expensive servo motor.
📚⬇️ Download and resource page https://robojax.com/RJT762
*
* Modified by Ahmad Shamshiri for Robojax.com
* on Sunday, July 1, 2018, at 11:09 AM in Ajax, Ontario, Canada
* Watch a video instruction of this project: https://youtu.be/b_xvu6wWafA
* Get this code from Robojax.com
*
Original code by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.
Modified 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Sweep
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600);
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("received: ");
Serial.print (incomingByte);
if(incomingByte == 108){
Serial.println(" sent 0 Rotating CW ");
myservo.write(0);
}else if(incomingByte == 114){
Serial.println(" sent 180 Rotating CCW ");
myservo.write(180);
}else if(incomingByte == 60){
Serial.println(" sent Stopped ");
myservo.write(60);
}else{
Serial.println(" moving Randomly");
myservo.write(incomingByte);
}
}
}
Albarkatun da kuma shafukan da za a duba
Babu kayan aiki tukuna.
Fayiloli📁
Babu fayiloli da ake da su.