Mateya oyo ezali eteni ya: Servo Motors ya mosala
Ba vidéos nionso oyo etali ba servo moteurs oyo ezali na boyokani, etangami awa. Ba liens ya ba vidéos misusu ezali na se ya article oyo.
Kokamba ya Servo na Mabutu ya Kobenda na Arduino
Na boyekoli oyo, tokoyekola ndenge ya kokamba moteur ya servo na kosalela ba bouton mibale ya kopusa, moko mpo na kotambwisa servo na loboko ya gauche mpe mosusu mpo na kotambwisa yango na loboko ya droite. Ntango okanga bouton ya droite, servo ekotambola na degré 10 na loboko ya droite, mpe ntango okanga bouton ya gauche, ekotambola na motango moko na loboko ya gauche. Soki obombi bouton, servo ekokoba kotambola na direction wana kino okotika yango.

Projet oyo ezali nzela malamu ya kososola ndenge ya kosangisa ba bouton na moteur ya servo na kosalela Arduino. Tokolobela ba composants ya hardware oyo esengeli, ba instructions ya câblage, mpe code oyo esengeli mpo ete nyonso esala. Mpo na kososola malamu, okoki kotala vidéo oyo ezali elongo na tutoriel oyo (na vidéo na 01:00).
Hardware Explication
Mpo na projet oyo, okosalela carte Arduino, moteur ya servo, mpe ba bouton mibale ya kopusa. Moteur ya servo ezali na mokumba ya mouvement, nzoka nde ba bouton ya kopusa bazali lokola ba entrées mpo na kokamba direction ya mouvement yango. Arduino esalelaka ba entrées oyo mpe etindaka ba signaux oyo esengeli na servo.
Moteur ya servo esalaka na base ya ba signaux ya pulse-width modulation (PWM). Na kotinda ba largeurs ya pulse ndenge na ndenge, okoki kokamba angle ya servo. Ba bouton ya kopusa bakokangama na ba pins ya entrée digitale na Arduino, mpe tokosalela ba résistances internes ya pull-up mpo na kosala câblage ezala pete.
Détails ya Datasheet
| Fabricant | Bamboka ndenge na ndenge |
|---|---|
| Numéro ya partie | SG90 |
| Tension ya logique/IO | 5 V |
| Tension ya alimentation | 4.8–6 V |
| Courant ya sortie (na canal) | 1.5 A max |
| Courant ya pointe (na canal) | 2.5 A max |
| Guidance ya fréquence PWM | 50 Hz |
| Seuils ya logique ya entrée | 0.3VCC to 0.7VCC |
| Chute ya tension / RDS(on) / saturation | 0.4 V |
| Limites thermiques | 85 °C |
| Paquet | Plastique |
| Notes / variantes | Rotation standard ya 180° |
- Pesa likebi ete servo ezali na rating mpo na tension ya alimentation na yo.
- Salela ba dissipateurs ya chaleur oyo esengeli soki ozali kosala na ba courants ya likolo.
- Kanga ba bouton na terre na configuration ya pull-up.
- Debounce ba bouton na yo soki ozali komona ba comportements ya mabe.
- Talá sortie ya série mpo na débogage.
Instructions ya Câblage

Mpo na câbler ba composants, banda na kokangisa moteur ya servo. Kanga fil ya motane ya servo na pin 5V na Arduino, fil ya moi-nda na pin GND, mpe fil ya jaune to ya pembe ya signal na pin 9 na Arduino. Pin oyo ekokamba position ya servo.
Na sima, câbler ba bouton ya kopusa. Kanga terminal moko ya bouton ya droite na pin 2 mpe terminal mosusu na terre. Mpo na bouton ya gauche, kanga terminal moko na pin 12 mpe terminal mosusu na terre mpe. Configuration oyo epesaka ba résistances internes ya pull-up mpo na kobatela ba pins na niveau ya likolo ntango ba bouton bazali te ya kopusa.
Ba Exemples ya Code & Explication
Tobanda na code mpo na kokamba servo na bouton moko ya kopusa. Code ebandisaka objet ya servo mpe esalelaka angle ya ebandeli. Tala mwa ndambo oyo:
int angle = 90; // angle ya ebandeli mpo na servo
int angleStep = 10; // taille ya étape mpo na mouvement
Na ndambo oyo, angle ezali kopesa position ya sika ya servo, nzoka nde angleStep ezali kopesa ndenge servo etambolaka na mbala nyonso ya kopusa bouton. Code oyo ezali na tina mpo na kolandela position ya servo.
Na sima, tozali na fonction ya setup epai tozali kokangisa servo mpe ko configurer ba pins ya entrée:
void setup() {
Serial.begin(9600); // configuration ya série
myservo.attach(9); // kokangisa servo na pin 9
pinMode(2, INPUT_PULLUP); // configuration ya pin ya bouton
}
Na setup, tobandisaka moniteur ya série mpe tokangisaka servo na pin 9. Bouton na pin 2 ezali configuré lokola entrée na résistance ya pull-up, oyo esalaka câblage ezala pete mpe epekisaka kosalela ba résistances externes.
Na suka, tozali kotala fonction ya loop oyo esalelaka kopusa ya bouton:
while(digitalRead(2) == LOW) {
angle = angle + angleStep; // kobakisa angle
myservo.write(angle); // kotambwisa servo
}
Boucle oyo ezali kotala mbala na mbala soki bouton epusami. Ntango epusami, angle ebakisamaka na étape oyo ezwami, mpe servo etambolaka ndenge esengeli. Ezali na tina mingi mpo na komeka ete angle ekotikala na kati ya ba limites (0 to 180 degrés) mpo na kopekisa kobebisa servo.
Démonstration / Nini Okoki Kozela
Ntango okanga bouton ya droite, servo esengeli kotambola na loboko ya droite na ba incréments ya 10 degrés kino ekokoma na maximum ya 180 degrés. Ndenge moko, kopusa bouton ya gauche ekotambwisa yango na loboko ya gauche. Soki obombi bouton, servo ekokoba kotambola na direction wana kino okotika bouton (na vidéo na 01:00).
Ba erreurs ya mbala mingi ezali na ba problèmes ya câblage, lokola ba connexions ya mabe to ba entrées ya flottantes. Pesa likebi ete ba connexions na yo ezali ya makasi mpe ozali kosalela ba pins oyo esengeli ndenge code elobi.
Mateya oyo ezali eteni ya: Servo Motors ya mosala
- 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)
- Koyamba servo na potentiometer na Arduino
- Kokamba ya Servo na Potentiomètre mpe LCD1602 na kosalela Arduino
- Koyamba Servo Motors na Infrared Remote na Arduino
- Kotroli ya moteur ya servo ya Arduino na kosalela potentiomètre
- Kokamba ya Kopekola Esika ya Servo na Maboko na Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- Ndenge ya Kosalela Servo ya 360° na Arduino
- Code Arduino mpe Video ya PCA9685 16-Channel 12-Bit Servo Controller V1
- Tonga motéma ya Arduino Servo Toggle Switch na Push Button
/*
Controlling a servo with a push button with Arduino
When a push button is pressed, the servo starts moving to the right or left until
it reaches 180 and then returns to 0 degrees.
May 22, 2018 at 01:00
Written by Ahmad S. for Robojax.com in Ajax, Ontario, Canada
Watch a video for this code at https://youtu.be/7woqNH_qby4
This code is taken from http://robojax.com/learn/arduino
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int angle =90; // initial angle for servo
int angleStep =10;
void setup() {
// Servo button demo by Robojax.com
Serial.begin(9600); // setup serial
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(2,INPUT_PULLUP);
Serial.println("Robojax Servo Button ");
}
void loop() {
while(digitalRead(2) == LOW){
// change the angle for the next time through the loop:
angle = angle + angleStep;
// reverse the direction of the movement at the ends of the angle:
if (angle <= 0 || angle >= 180) {
angleStep = -angleStep;
}
myservo.write(angle); // move the servo to the desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degrees");
delay(100); // waits for the servo to get there
}// while
}
/*
Controlling a servo with two push buttons with Arduino
When the left push button is pressed, the servo starts moving to the left until it reaches 180 (or zero) degrees.
When the right push button is pressed, the servo starts moving to the right until it reaches 180 (or zero) degrees.
At any instance, if the button is released, the servo stops.
May 22, 2018, at 01:00
Written by Ahmad S. for Robojax.com in Ajax, Ontario, Canada
Watch a video for this code at https://youtu.be/7woqNH_qby4
This code is taken from http://robojax.com/learn/arduino
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int angle =90; // initial angle for servo
int angleStep =5;
#define LEFT 12 // pin 12 is connected to left button
#define RIGHT 2 // pin 2 is connected to right button
void setup() {
// Servo button demo by Robojax.com
Serial.begin(9600); // setup serial
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(LEFT,INPUT_PULLUP); // assign pin 12 as input for Left button
pinMode(RIGHT,INPUT_PULLUP);// assign pin 2 as input for right button
myservo.write(angle);// send servo to the middle at 90 degrees
Serial.println("Robojax Servo Button ");
}
void loop() {
// Servo button demo by Robojax.com
while(digitalRead(RIGHT) == LOW){
if (angle > 0 && angle <= 180) {
angle = angle - angleStep;
if(angle < 0){
angle = 0;
}else{
myservo.write(angle); // move the servo to desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degree");
}
}
delay(100); // waits for the servo to get there
}// while
// Servo button demo by Robojax.com
while(digitalRead(LEFT) == LOW){
// Servo button demo by Robojax.com
if (angle >= 0 && angle <= 180) {
angle = angle + angleStep;
if(angle >180){
angle =180;
}else{
myservo.write(angle); // move the servo to desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degree");
}
}
delay(100); // waits for the servo to get there
}//
}
Nko o na nki.
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Mokili na bisika
Pas encore de ressources.
Fichiers📁
Aucun fichier disponible.