Search Code

Kulawa na Motar Servo Arduino ta Amfani da Potentiometer

Kulawa na Motar Servo Arduino ta Amfani da Potentiometer

A cikin wannan koyarwar, za mu bincika yadda za a sarrafa motar servo ta amfani da potensioma tare da Arduino. Manufar ita ce ƙirƙirar ƙaramin zagaye inda matsayin servo ke daidaitawa bisa ga juyawar potensioma. A ƙarshen wannan aikin, za ku sami samfurin aiki wanda ke canza kusurwar servo daga 0 zuwa 180 digiri yayin da kuke juyawa potensioma. Wannan hanya ce mai kyau don fahimtar abubuwan asali na shigarwar analog da sarrafa servo a cikin Arduino.

Don samun wannan, za mu yi amfani da allon Arduino, motar servo, da potentiometer. Potentiometer yana aiki a matsayin mai canza juri, yana ba da shigarwa na analog ga Arduino, wanda zai tantance matsayin motar servo bisa ga haka. Wannan aikin ba kawai yana da nishadi ba har ma yana da ilimi, yayin da yake nuna muhimman ra'ayoyi a cikin lantarki da shirye-shirye. Don karin bayani, ku tabbata ku duba bidiyon (a cikin bidiyo a 00:00).

Kayan Aiki An Bayyana

A cikin wannan aikin, manyan abubuwan da ke ciki sune allon Arduino, motar servo, da potentiometer. Arduino shine kwakwalwar aikin, yana sarrafa shigarwa da kuma kula da fitarwa. Motar servo ita ce zata motsa a zahiri bisa ga umarnin da take karɓa daga Arduino. Potentiometer na iya zama 1k ohm zuwa 1M ohm yana ba masu amfani damar bayar da shigarwa mai canzawa wanda ke fassara zuwa motsin servo.

Motar servo yana aiki ta hanyar karɓar siginar PWM (Pulse Width Modulation) wanda ke nuna matsayin da ake so. Potentiometer, lokacin da aka juya, yana canza juriya, wanda Arduino ke karantawa a matsayin ƙarfin lantarki na analog. Motar Servo tana aiki da 5V. Ba ta aiki da 3.3V. Wannan ƙarfin lantarki yana daidaita zuwa iyakar motsin motar servo, yana ba da damar motsi mai laushi daga digiri 0 zuwa digiri 180.

Bayanin Takardar Bayani don Motar Servo SG90

Masana'antaParallax
Lambar sashiSG90
Lojik/IO wutar lantarki5 V
Wutar samar4.8-6 V
Fitar da yanzu (kowane tashar)~500 mA
Matsakaicin yanzu (kowane tashar)1 A
Jagoran frekwensin PWM50 Hz
Ka'idodin shigarwa0.5 V (kasa), 2.5 V (girma)
Rashin wutar lantarki / RDS(on)/ saturation0.5 V a 500 mA
Iyakokin zafi0°C zuwa 60°C
KunshinStandard 9g Servo
Littattafai / nau'ikanAna amfani da shi a cikin aikace-aikacen RC.

  • Tabbatar cewa servo ba ta wuce iyakar ƙarfin yanzu da aka kayyade ba.
  • Yi amfani da heat sink idan servo yana aiki a ci gaba a ƙarƙashin nauyi mai yawa.
  • Haɗa potensioma tare da pin analog don samun ingantaccen karatu.
  • Ka yi hankali da lokacin siginar PWM don sarrafa servo.
  • Duba iyakar motsin servo don guje wa shinge na jiki.

Umarni Waya

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

Don wannan tsari, za ku buƙaci haɗa abubuwan kamar haka:

Haɗa tsakiya pin na potentiometer (wiper) zuwa pin analog na Arduino.A0. Yaƙin sauran pins guda biyu na potentiometer ya kamata a haɗa su da5VdaGNDa kan Arduino. Don na'urar servo, haɗa jan wayar zuwa5V, wayar baƙar zuwaGNDda kuma wayar zinariya ko farar fata zuwa pin dijital9a kan Arduino. Wannan tsari yana ba da damar potensiomita ya bayar da shigarwa na analog ga Arduino, wanda zai kula da matsayin motar servo bisa ga wannan shigarwa.

Tabbatar da cewa ka duba dukkan haɗin kai kuma ka tabbatar cewa servo ba ta toshe a cikin iyakokin motsi ba. Idan kana amfani da wani samfurin Arduino daban, tabbatar cewa tsarin pin na shigar analog da fitar servo suna da jituwa.

Misalan Lamba & Jagora

A ƙasa akwai wani ɓangare na lambar da ke farawa servo da karanta ƙimar potentiometer:


#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
}

A cikin wannan lambar, muna haɗa ɗakin karatu na Servo kuma muna ƙirƙirar wani abu na servo da ake kiramyservo. An servo yana haɗe da pin9, wanda ke ba mu damar sarrafa shi ta amfani da wannan pin.


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
}

A cikin aikin loop, muna karanta darajar potentiometer daga pinA0da kuma tsara shi daga iyakarsa (0-1023) zuwa iyakar servo (0-180 digiri).myservo.write(pos)umarnin yana motsa servo zuwa matsayin da ake so bisa ga juyawar potentiometer.

Nuna / Abin da za a yi tsammani

Idan ka gudanar da wannan shirin, ya kamata ka ga motar servo tana motsawa cikin laushi daga 0 zuwa digiri 180 yayin da kake juyawa potensiomita. Idan motar servo ba ta motsa kamar yadda aka zata ba, duba wayoyi ka tabbatar da cewa potensiomita na aiki yadda ya kamata. Bugu da ƙari, tabbatar da cewa Arduino yana da wutar lantarki da kyau kuma an loda lambar ba tare da kuskure ba. Za ka iya sa ran ganin motar servo tana nuna matsayin potensiomita a cikin lokaci na gaske (a cikin bidiyo a 02:00).

Lokutan Bidiyo

  • 00:00- Gabatarwa ga aikin
  • 01:30- Bayani kan saitin kayan aiki
  • 03:45- Umarnin waya
  • 05:00- Binciken lambar
  • 07:30- Nuna aikin da aka kammala

Hotuna

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
Harshe: 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
  }
}

Albarkatun da kuma shafukan da za a duba

Babu kayan aiki tukuna.

Fayiloli📁

Takardar bayanai (pdf)