Raadi Koodka

Xakameynta Moterka Servo ee Arduino iyadoo la adeegsanayo Potentiometer

Xakameynta Moterka Servo ee Arduino iyadoo la adeegsanayo Potentiometer

Casharakan, waxaan ku sahmin doonaa sida loo xakameeyo mishiinka servo adigoo isticmaalaya potentiometer oo leh Arduino. Ujeedadu waa in la sameeyo wareeg fudud halkaas oo booska servo la hagaajinayo iyadoo lagu saleynayo wareegga potentiometer-ka. Dhamaadka mashruucan, waxaad yeelan doontaa moodel shaqeynaya oo si siman u beddelaya xagalka servo laga bilaabo 0 ilaa 180 darajo markaad rogto potentiometer-ka. Tani waa hab weyn oo lagu fahmo aasaaska gelinta analoogga ah iyo xakameynta servo ee Arduino.

Si aad tan u gaadho, waxaanu isticmaali doonaa guddiga Arduino, mishiinka servo, iyo potentiometer. Potentiometer-ku wuxuu u shaqeeyaa sidii iska caabin isbeddel ah, isagoo siinaya gelin analog ah Arduino, kaas oo markaa go'aamin doona booska mishiinka servo sida ku xusan. Mashruucan ma aha oo kaliya madadaalo laakiin sidoo kale waxbarasho, maadaama uu muujinayo fikradaha muhiimka ah ee korontada iyo barnaamijyada. Si aad u hesho sharaxaad qoto dheer, hubi inaad eegto fiidiyowga (fiidiyowga ku jira 00:00).

Qalabka la Sharxay

Mashruucan, qaybaha ugu muhiimsan waa guddiga Arduino, mishiinka servo, iyo potentiometer. Arduino waa maskaxda hawlgalka, oo ka shaqeysa gelinta iyo xakameynta wax soo saarka. Mishiinka servo waa waxa si jir ahaan u dhaqaaqi doona iyadoo ku saleysan amarrada uu ka helo Arduino. Potentiometer-ka wuxuu noqon karaa 1k ohm ilaa 1M ohm, wuxuuna u oggolaanayaa isticmaaleyaasha inay bixiyaan gelin isbeddel ah oo u tarjumaysa dhaqdhaqaaqa servo.

Mashiinka servo wuxuu shaqeeyaa isagoo helaya calaamad PWM (Pulse Width Modulation) ah oo muujinaysa booska la rabo. Potentiometer-ka, marka la jeexjeexo, wuxuu beddelaa iska caabinta, taasoo ay akhrido Arduino sida koronto analoog ah. Mashiinka Servo wuxuu ku shaqeeyaa 5V. Ma shaqeeyo 3.3V. Korontadan ayaa markaas loo qoondeeyaa xadka dhaqdhaqaaqa mashiinka servo, taasoo u oggolaanaysa dhaqdhaqaaq siman oo u dhexeeya 0 digrii ilaa 180 digrii.

Faahfaahinta Warqadda Xogta ee Mashiinka Servo SG90

SoosaarParallax
Lambarka qaybtaSG90
Voltage-ka loogiga/IO5 V
Koronto sahayada4.8-6 V
Hawada hadda (kanaal kasta)~500 mA
Culayska ugu sarreeya (kanaal kasta)1 A
Hagaha soo noqnoqoshada PWM50 Hz
Xadka loogaga talagalay gelinta0.5 V (hoose), 2.5 V (sare)
Hoos u dhaca koronto / RDS(on)/ buuxinta0.5 V oo 500 mA
Xadidaheeda kulaylka0°C ilaa 60°C
BaakidhkaServo heerka 9g
Xusuusin / noocyoSiyaab ahaan loo isticmaalo codsiyada RC

  • Hubi in servo-gu uusan ka badin qiimaha ugu badan ee hadda.
  • Isticmaal heat sink haddii servo-gu si joogto ah u shaqeeyo culeysyo sarreeya.
  • Ku xidh potensiometer-ka pin analog ah si loo helo akhris sax ah.
  • Ka taxaddar waqtiga calaamadda PWM ee xakamaynta servo.
  • Hubi xadka dhaqdhaqaaqa servo si aad uga fogaato caqabadaha jireed.

Tilmaamaha Xadhigga

Arduino wiring for controlling Servo motor with Potentiometer
Arduino wiring for controlling Servo motor with Potentiometer
Arduino wiring for servo motor
Arduino wiring for servo motor

Si aad u dejiso, waxaad u baahan doontaa inaad ku xidhid qaybaha sida soo socota:

Ku xir pin-ka dhexe ee potentiometer-ka (wiper) pin-ka analog-ka ee Arduino.A0Laba laba pins ee potentiometer-ka waa in lagu xiraa5ViyoGNDArduino. Moterka servo, ku xir xadhigga cas ilaa5V, xargaha madow ilaaGND, iyo xadhigga huruudda ama caddaanka ahna pin dijital ah9Arduino-da. Qaabkan wuxuu u oggolaanayaa potentiometer-ka inuu bixiyo gelin analog ah oo ku saabsan Arduino, kaas oo xakameyn doona booska mishiinka servo iyadoo lagu saleynayo gelintaas.

Hubi inaad xaqiijiso dhammaan xiriirada oo aad hubiso in servo-gu aanu ku xannibanaynin xadka dhaqdhaqaaqa. Haddii aad isticmaalayso nooc kale oo Arduino ah, xaqiiji in qoondeynta pins-ka ee gelinta analog iyo soo saarka servo ay is waafaqsan yihiin.

Tusaalooyinka Koodhka & Socodka

Hooska waxaa ku qoran qayb ka mid ah koodhka oo dejinaya servo-ga iyo akhrinta qiimaha potentiometer-ka:


#include 

Servo myservo;  // create servo object to control a servo
int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

Koodhkan, waxaan ku darnaa maktabadda Servo oo aan abuurnaa shay servo ah oo la yiraahdomyservo. Servo-ga waxaa lagu xidhay pin9, taasoo noo ogolaanaysa inaan ku xakameyno isticmaalka pin-kan.


void loop() {
  int sensorValue = analogRead(A0);  // read the potentiometer
  pos = map(sensorValue, 0, 1023, 0, 180);  // map to servo position
  myservo.write(pos);  // move servo to position
  delay(15);  // waits 15ms for the servo to reach the position
}

Hawsha loop-ka, waxaan ka akhrinaa qiimaha potentiometer-ka pinA0iyo ka khariidso xadka (0-1023) ilaa xadka servo (0-180 darajo). myservo.write(pos)amarka ayaa markaas u dhaqaaqda servo-ga si uu u gaadho booska la rabo iyadoo lagu saleynayo wareegga potentiometer-ka.

Muuqaal / Waxa La Filayo

Marka aad barnaamijkan ordo, waa in aad aragto mishiinka servo oo si siman uga dhaqaaqaya 0 ilaa 180 darajo marka aad rogto potentiometer-ka. Haddii servo-gu uusan u dhaqaaqin sidii la filayay, hubi xargaha oo xaqiiji in potentiometer-ku si sax ah u shaqeynayo. Intaas waxaa dheer, hubi in Arduino-gu si sax ah loo koriyo iyo in koodhka la geliyay aanay khaladaad lahayn. Waxaad filan kartaa in servo-gu uu muujinayo booska potentiometer-ka waqtiga dhabta ah (fiidiyowga 02:00).

Video Timestamps

  • 00:00- Hordhaca mashruuca
  • 01:30- Sharaxaada dejinta qalabka
  • 03:45- Tilmaamaha xadhigga
  • 05:00- Socodka koodhka
  • 07:30- Muuqaalka mashruuca dhameystiran

Sawirro

Arduino wiring for controlling Servo motor with Potentiometer
Arduino wiring for controlling Servo motor with Potentiometer
Arduino wiring for servo motor
Arduino wiring for servo motor
11-Controlling a servo position using a potentiometer using Arduino
Luqadda: C++
/**
*Original source: Arduino IDE
* Arduino Project: Controlling the servo position
* This code is used with a video tutorial for Robojax.com
* Published on April 24, 2017, from Ajax, ON, Canada.
* Written/Edited by Ahmad Shamshiri
* Watch the video on YouTube: https://youtu.be/kZ9b31gVemc
* View tutorial page for this code https://robojax.com/RJT8
* Controlling a servo position using a potentiometer (variable resistor)
*/



#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

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

Kheyraadka & Tixraacyada

Wali wax kaydsan ah oo weli ma jiro.

Faylasha📁

Waraaqa xogta (pdf)