This tutorial is part of: Àwọn Ẹ̀rọ Iṣẹ́-Ẹ̀rọ
Gbogbo awọn fidio ti o ni ibatan si awọn ẹrọ servo ti o ni ibatan, ti a ṣe akojọ si ibi. Awọn ọna asopọ si awọn fidio miiran wa ni isalẹ nkan yii.
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 apakan | SG90 |
| Iwọn folti logic/IO | 5 V |
| Iwọn folti ipese | 4.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ẹ PWM | 50 Hz |
| Iwọn aala iṣiro input | 0.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ọ


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
This tutorial is part of: Àwọn Ẹ̀rọ Iṣẹ́-Ẹ̀rọ
- Controlling a Servo with Push Buttons Using 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)
- Controlling a Servo with a Potentiometer Using Arduino
- Controlling a Servo with Potentiometer and LCD1602 using Arduino
- Controlling Servo Motors Using an Infrared Remote with Arduino
- Iṣakoso ipo servo pẹlu awọn iṣe ọwọ fun Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- Arduino Code and Video for PCA9685 16-Channel 12-Bit Servo Controller V1
- Build an Arduino Servo Toggle Switch with a Push Button
/**
*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)
-
sg90_serveo_motor_datasheet
sg90_serveo_motor_datasheet.pdf0.13 MB