Search Code

Ẹ̀kọ́ 92: Ṣíṣàkóso ọ̀pọ̀lọpọ̀ servo kọ̀ọ̀kan pẹ̀lú potentiometer | Arduino Ìgbésẹ̀-ọ̀kọ̀ọ̀kan Ẹ̀kọ́

Ẹ̀kọ́ 92: Ṣíṣàkóso ọ̀pọ̀lọpọ̀ servo kọ̀ọ̀kan pẹ̀lú potentiometer | Arduino Ìgbésẹ̀-ọ̀kọ̀ọ̀kan Ẹ̀kọ́

Nínú iṣẹ́ yìí, ìwọ yóò kọ́ bí o ṣe lè kọ́ àṣẹ̀kùn servo olúkúlùkù, oní-ikanni-púpọ̀ ní lílo Arduino Uno àti potentiometer méjì. Dípò kí servo kan ṣe àtẹ̀lé kọ́bù kan, ìtọ́sọ́nà yìí fi hàn bí o ṣe lè fún servo kọ̀ọ̀kan ní àmúṣọ̀rọ̀ analog tirẹ̀, tí ó jẹ́ kí o lè darí servo méjì—àti títí dé mẹ́fà—ní òmìnira àti ní àkókò kan náà. Èyí jẹ́ ìpìlẹ̀ pàtàkì fún iṣẹ́ èyíkéyìí tí ó nílò ìdarí ọwọ́ pípéye, lórí ọ̀pọ̀ ẹ̀yà tí ń gbé.

sg90_servo

Ìtò yìí wúlò ní ọ̀pọ̀lọpọ̀ ọ̀nà. Èyí ni àwọn ọ̀nà tí ó wúlò tí o lè lò ó fún:

  • Robotics: Ìdarí pan àti tilt ti camera gimbal tàbí àwọn ẹ̀yà ìpìlẹ̀ àti apá ti robot kékeré.
  • Animatronics: Ṣíṣe àwọn ìṣísẹ̀ tí ó dàbí ẹ̀mí fún ọmọlangidi tàbí ẹ̀yà animatronic nípa ìdarí orí àti ojú rẹ̀ ní òmìnira.
  • Model Control: Kíkọ́ àṣẹ̀kùn àdáni fún àwọn ọkọ̀ RC tàbí ọkọ̀ ofurufu àwòkọ́ṣe láti ṣàtúnṣe flaps àti ailerons ní pípéye.
  • Automation: Ṣíṣe ibùdó ìdarí ọwọ́ fún ohun tí ń tọ̀nà sí oòrùn tàbí jig ìpòpò-ọ̀pọ̀-ìsọ̀tọ̀.

Ohun èlò Tí A Nílò

  • Arduino Uno (tàbí bọ́ọ̀dì èyíkéyìí tí ó bá mu)
  • 2x Servo motors (àwọn servo 180-degree àròwọ́n ni a lò níbí)
  • 2x Potentiometers (10kΩ jẹ́ yíyan tí ó wọ́pọ̀)
  • Breadboard àti àwọn okun waya
  • Ìpèsè agbára 5V òde (tí a dábàá fún ọ̀pọ̀ servo)

 

Ìtọ́sọ́nà Ìsopọ̀ Waya

Iṣẹ́ yìí nílò ìsopọ̀ waya díẹ̀ síi ju ìtò servo kan lọ, ní pàtàkì nítorí pé o nílò láti pín agbára àti ilẹ̀ fún ọ̀pọ̀ ẹ̀yà. Bí o ṣe lè lo àwọn ìlà agbára breadboard láti dá bọ́ọ̀sì 5V àti GND kan ṣoṣo ni kókó. Àwòrán ìsopọ̀ waya ṣe pàtàkì fún ìkọ́lé yìí.

Two_or_more_Servo_pot_bb

Ẹ jẹ́ kí a tú àwọn ìsopọ̀ náà, gẹ́gẹ́ bí a ti ṣàlàyé rẹ̀ nínú fídíò (nínú fídíò ní 02:23). Kọ́kọ́, ṣètò àwọn ìlà agbára rẹ: sopọ̀ pin 5V ti Arduino sí ìlà rere breadboard àti pin GND sí ìlà òdì. Èyí fún ọ ní ìwọ̀lé rọrùn sí agbára fún gbogbo àwọn ẹ̀yà rẹ.

Potentiometers: Potentiometer kọ̀ọ̀kan ń ṣiṣẹ́ gẹ́gẹ́ bí olùpín folti. Sopọ̀ pin ọ̀tún ti pot kọ̀ọ̀kan sí ìlà 5V àti pin òsì sí ìlà GND. Pin àárín ni "wiper" tí ó ń pèsè folti tí ń yí padà. Sopọ̀ pin àárín ti potentiometer àkọ́kọ́ sí àmúṣọ̀rọ̀ analog A0, àti pin àárín ti èkejì sí A1 (nínú fídíò ní 03:22).

Servo Motors: Servo kọ̀ọ̀kan ní waya mẹ́ta. Sopọ̀ waya tí ó dúdú (ní gbogbogbòò black tàbí brown) sí ìlà GND. Sopọ̀ waya àárín (ní gbogbogbòò pupa) sí ìlà 5V. Ní ìparí, sopọ̀ waya ifihan (ní gbogbogbòò osan tàbí ofeefee) sí pin tí ó ní PWM lórí Arduino. Waya ifihan ti servo àkọ́kọ́ lọ sí pin 3, àti waya ifihan ti servo kejì lọ sí pin 5 (nínú fídíò ní 04:01). Rántí, o gbọ́dọ̀ lo àwọn pin tí ó ní PWM (tí a fi àmì tilde "~" sámì sí lórí Uno) fún ìdarí servo.

Àlàyé Kóòdù

Kóòdù náà dá lórí àpẹẹrẹ "Knob" àròwọ́n láti Arduino IDE ṣùgbọ́n a yí i padà láti darí servo méjì. Ìròyìn náà tóró: ka iye analog láti potentiometer, yà á sí igun, àti pàṣẹ fún servo láti gbé sí igun yẹn. Ìpín ìtòlẹ́tò ní òkè kóòdù ni ibi tí o yóò ti ṣe gbogbo àwọn àtúnṣe rẹ.

Èyí ni ìpín tí olùṣàmúlò lè ṣàtúnṣe tí ó ń ṣàlàyé àwọn pin àti tí ó ń dá àwọn ohun servo:


#include <Servo.h>

//**** servo 1 settings
Servo servo1; 
const int servo1PotPin = A0;
const int servo1Pin = 3;// Must use PWM enabled pin
int servo1Value;
//**** servo 1 settings END

//**** servo 2 settings
Servo servo2; 
const int servo2PotPin = A1;
const int servo2Pin = 5;// Must use PWM enabled pin
int servo2Value;
//**** servo 1 settings END

Èyí ni ohun tí ó wà ní àárín ìtòlẹ́tò. Láti fi servo kẹta kún un, o yóò daakọ ìpín "servo 2 settings", yí gbogbo "2" padà sí "3", yàn pin analog tuntun (bíi A2) àti pin PWM tuntun (bíi 9). Kíláàsì Servo ti wà nínú Arduino IDE, nítorí náà kò sí àwọn ilé-ìkàwé àfikún tí a nílò.

Nínú iṣẹ́ setup(), àṣẹ servo.attach(pin) sọ fún Arduino èyí tí ó sopọ̀ sí waya ifihan servo kọ̀ọ̀kan. O gbọ́dọ̀ ní ìlà kan fún servo kọ̀ọ̀kan tí o ń lò.


void setup() {
  //Robojax.com multiple servo
  servo1.attach(servo1Pin); 
  servo2.attach(servo2Pin);   
}

Nínú loop(), kóòdù ka iye potentiometer, yà á sí ìwọ̀n 0-180 degree, àti kọ igun yẹn sí servo. delay(5) ní ìparí jẹ́ paramita àtúnṣe. Gẹ́gẹ́ bí a ti fi hàn nínú fídíò, dídín iye yìí kù láti 15 sí 5 milliseconds mú kí ìsúnkìí servo dán ni púpọ̀ àti láti mú ìgbìnrìn kúrò (nínú fídíò ní 12:00).

Ìfihàn Iṣẹ́-ìṣe Láàyè

Ní kété tí o bá ti sopọ̀ Circuit náà tán àti tí o ti gbé kóòdù sílẹ̀, ìfihàn náà yóò ṣẹlẹ̀ lẹ́sẹ̀kẹsẹ̀. Nígbà tí o bá ṣiṣẹ́ Arduino, servo kọ̀ọ̀kan yóò gbé sí ipò tí potentiometer tirẹ̀ ń ṣètò lọ́wọ́lọ́wọ́. Bí o ṣe ń yí kọ́bù kan, servo rẹ̀ yóò tẹ̀lé ìsúnkìí náà ní dídán. Fídíò náà fi hàn pé àwọn servo méjì náà ń ṣiṣẹ́ ní òmìnira pátápátá, tí ó ń gbà fún àwọn ìsúnkìí dídíjú, ní àkókò kan náà. Bí o bá ṣàkíyèsí ìgbìnrìn tàbí ìmìtìtì, ṣàtúnṣe iye delay() nínú loop ni ohun àkọ́kọ́ tí o gbọ́dọ̀ gbìyànjú.

Àwọn Orí Ìwé

  • [00:00] Ifihan ati Akopọ Ise agbese
  • [00:56] Loye Awon Servo Motors
  • [02:23] Awoyo Asopọ fun Awon Servo Meji ati Potentiometers
  • [04:15] Alaye Asopọ Ni Kikun
  • [06:49] Alaye Koodu: Iṣeto ati Ifilelẹ
  • [09:15] Alaye Koodu: Iṣakoso Iṣiro ati Iyaworan
  • [11:15] Ifihan Laaye ati Iṣatunṣe

Aworan

Multiple servo, one pot: Main setup
Multiple Servo one pot.: Main setup
Multiple servo, one pot: Main setup, top view
Multiple Servo one pot.: Main setup top view
Multiple servo one-pot: Creating extra 5V from an Arduino on a breadboard
Multiple Servo one pot.: Creating extra 5V from Arduino on breadboard
SG90 Mini Servo Motor
SG90 Mini Servo Motor
Two_or_more_Servo_pot_bb
Two_or_more_Servo_pot_bb
sg90_servo
sg90_servo
888-Lesson 92: Controlling Multiple servo motors
Ede: C++
/*
 * Control two or more servo motors 
 * using potentiometers.
 * Modified by Ahmad Shamshiri on Oct 17, 2019 at 20:13
 * in Ajax, Ontario, Canada . www.Robojax.com
 * This code on robojax https://robojax.com/RJT766
 *  
 * Original code from Arduino IDE: File->Examples->Servo->knob
 *  
 Controlling a servo position using a potentiometer (variable resistor)
 by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

 modified on 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Knob


 * Get this code and other Arduino codes from Robojax.com



 *  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been download from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
#include <Servo.h>

//**** servo 1 settings
Servo servo1; 
const int servo1PotPin =A0;
const int servo1Pin = 3;// Must use PWM enabled pin
int servo1Value;
//**** servo 1 settings END

//**** servo 2 settings
Servo servo2; 
const int servo2PotPin =A1;
const int servo2Pin = 5;// Must use PWM enabled pin
int servo2Value;
//**** servo 1 settings END

void setup() {
  //Robojax.com multiple servo
  servo1.attach(servo1Pin); 
  servo2.attach(servo2Pin);   
}

void loop() {
  //Robojax.com multiple servo
  servo1Value = analogRead(servo1PotPin); 
  servo1Value = map(servo1Value, 0, 1023, 0, 180);
  servo1.write(servo1Value);

  servo2Value = analogRead(servo2PotPin); 
  servo2Value = map(servo2Value, 0, 1023, 0, 180);
  servo2.write(servo2Value);
  
  delay(5);
 //Robojax.com multiple servo  
}// loop end

Orisun & itọkasi

Ko si awọn orisun sibẹsibẹ.

Fáìlìs📁

Awọn faili miiran