Search Code

Iṣakoso Moto Servo Arduino Pẹlu Potentiometer

Iṣakoso Moto Servo Arduino Pẹlu Potentiometer

Ninu ẹkọ yii, a yoo ṣawari bi a ṣe le ṣakoso moto servo nipa lilo potentiometer pẹlu Arduino. Ibi-afẹde ni lati ṣẹda iyika ti o rọrun nibiti ipo servo ti wa ni atunṣe da lori iyipo potentiometer. Ni ipari iṣẹ akanṣe yii, iwọ yoo ni awoṣe ti n ṣiṣẹ ti o yipada laisiyonu igun servo lati 0 si 180 iwọn bi o ṣe n yi potentiometer. Eyi jẹ ọna nla lati ni oye awọn ipilẹ ti input analog ati iṣakoso servo ni Arduino.

Lati le e, a o lo igbimọ Arduino, moto servo, ati potentiometer. Potentiometer naa n ṣiṣẹ gẹgẹbi olutọju oniyipada, n pese input analog si Arduino, eyiti yoo pinnu ipo moto servo naa ni ibamu. Ise agbese yii kii ṣe igbadun nikan ṣugbọn tun jẹ ẹkọ, bi o ṣe n ṣe afihan awọn imọran pataki ni itanna ati siseto. Fun alaye jinlẹ diẹ sii, rii daju lati wo fidio naa (ni fidio ni 00:00).

Itumọ Ẹrọ

Ninu iṣẹ́ akanṣe yìí, àwọn eroja pàtàkì ni àtàwọn àgbájọ Arduino, motor servo, àti potentiometer. Arduino ni ọpọlọ iṣẹ́ náà, tó ń ṣe àtúnṣe àwọn ìkànsí àti ṣàkóso àwọn ìtẹ̀sí. Motor servo ni ohun tí yóò gbe nípa ìṣẹ́ tí ó gba láti ọdọ Arduino. Potentiometer lè jẹ́ 1k ohm sí 1M ohm tó ń jẹ́ kí àwọn olumulo lè fi ìkànsí oníyí padà sí ìgbésẹ̀ motor servo.

Motor servo n ṣiṣẹ nipa gbigba ifihan PWM (Ipa Iwọn Iwọn) ti o tọka ipo ti a fẹ. Potentiometer, nigbati a ba yi i, yi resistance rẹ pada, eyiti Arduino ka gẹgẹbi folti analog. Motor Servo n ṣiṣẹ pẹlu 5V. Ko ṣiṣẹ pẹlu 3.3V. Folti yii ni a ṣe afiwe si ibiti gbigbe ti motor servo, ti o fun laaye fun gbigbe rirọ lati 0 iwọn si 180 iwọn.

Alaye iwe data fun moto servo SG90

OlùṣelọpọParallax
Nọmba apakanSG90
Iwọn folti logic/IO5 V
Iwọn folti ipese4.8-6 V
Iwọn lọwọlọwọ (nipasẹ ikanni)~500 mA
Iwọn lọwọlọwọ to ga julọ (fun ikanni kọọkan)1 A
Itọsọna igbohunsafẹfẹ PWM50 Hz
Iwọn aala iṣiro input0.5 V (kekere), 2.5 V (giga)
Iwọn folti / RDS(on)/ idapọ0.5 V ni 500 mA
Iwọn otutu to pọ julọ0°C si 60°C
PàkàjìIṣẹ́ 9g Servo àtẹ́wọ́dá.
Akọsilẹ / awọn iyatọTi a maa n lo ninu awọn ohun elo RC

  • Rii daju pe servo naa ko kọja iwọn lọwọlọwọ ti o pọ julọ rẹ.
  • Lo lo ohun amuṣiṣẹpọ ti servo ba n ṣiṣẹ ni itẹsiwaju ni awọn ẹru giga.
  • So pọ́tentiọ́métà náà sí pin ànàlógì fún ìtẹ́numọ́ tó péye.
  • Mura ni akiyesi akoko ifihan PWM fun iṣakoso servo.
  • Ṣayẹwo ibiti iṣipopada servo lati yago fun awọn idena ti ara.

Ilana Asopọ

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

Fun iṣeto yii, iwọ yoo nilo lati so awọn eroja pọ bi atẹle:

So pọ́tentiọ́métà àárín (wiper) sí pin àlàgèdá Arduino.A0. Awọn pin meji miiran ti potentiometer yẹ ki o sopọ si5VatiGNDni Arduino. Fun moto servo, so pọ mọ́ àwọ̀ pupa si5V, okun dudu siGND, ati okun ofeefee tabi funfun si pin oni-nọmba9ni Arduino. Ilana yi n jẹ ki potentiometer funni ni analog input si Arduino, eyi ti yoo ṣakoso ipo servo motor da lori input yẹn.

Rii daju lati ṣayẹwo gbogbo awọn asopọ ki o si rii daju pe servo ko ni idiwọ ninu ibiti gbigbe rẹ. Ti o ba nlo awoṣe Arduino miiran, jẹrisi pe awọn atokọ pin fun input analog ati output servo jẹ ibamu.

Àpẹẹrẹ Kóòdù & Irin-ajo

Ní isalẹ ni apakan koodu ti o bẹrẹ servo ati ka iye 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
}

Ninu koodu yii, a fi ile-ika Servo kun ati ṣẹda ohun kan servo ti a npe nimyservo. Servo naa so pọ si pin9, eyi ti o fun wa laaye lati ṣakoso rẹ nipa lilo pin yii.


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
}

Ninu iṣẹ́ àtẹ̀jáde, a ka iye potentiometer láti pinA0ati ki o lati inu ibiti rẹ (0-1023) si ibiti servo naa (0-180 iwọn). Ẹgbẹmyservo.write(pos)aṣẹ naa lẹhinna gbe servo si ipo ti a fẹ da lori iyipo potentiometer.

Iṣafihan / Kí ni láti retí

Nigbati o ba n ṣiṣẹ eto yii, o yẹ ki o rii moto servo n gbe ni irọrun lati 0 si 180 iwọn bi o ṣe n yi potentiometer. Ti servo ko ba gbe bi a ti nireti, ṣayẹwo awọn asopọ ki o si rii daju pe potentiometer n ṣiṣẹ ni deede. Pẹlupẹlu, rii daju pe Arduino ni agbara to peye ati pe koodu ti wa ni ikojọpọ laisi awọn aṣiṣe. O le nireti lati rii servo ti n ṣe afihan ipo potentiometer ni akoko gidi (ni fidio ni 02:00).

Àkókò Fídíò

  • 00:00- Ifihan si iṣẹ akanṣe
  • 01:30- Àkọsílẹ̀ ìtọ́kasí ohun èlò
  • 03:45- Àkọsílẹ́ ìtòsọ́na fífi ẹ̀rọ pọ̀
  • 05:00- Iṣipopada koodu
  • 07:30- Ifihan ti iṣẹ akanṣe ti a pari

Aworan

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

Orisun & itọkasi

Ko si awọn orisun sibẹsibẹ.

Fáìlìs📁

Fọọmu data (pdf)