Motorul SG90 este un servo mic și ușor utilizat în mod obișnuit în robotică, vehicule RC și alte proiecte care necesită un control precis al unghiului. În acest tutorial, vă vom arăta cum să interfațați motorul servo SG90 cu un Arduino.
Ce vei avea nevoie
- Motor Servo SG90
- Arduino Board (de exemplu, Uno, Mega, Nano)
- Bord
- Fire de jumper
- Sursă de alimentare externă (opțională pentru mai multe servos)
- Un computer cu IDE Arduino instalat
Pasul 1: Înțelegerea motorului servo SG90
Motorul SG90 are trei pini:
SG90 PIN | Funcţie |
---|---|
Maro | Sol (GND) |
Roşu | Putere (vcc) |
Portocale | Semnal (PWM) |
Nota: Motor Servo funcționează la 4.8V-6V. Dacă alimentați mai multe servosuri, utilizați o sursă de alimentare externă.
Pasul 2: Cablarea SG90 către Arduino
Iată cum să conectați motorul servo SG90 la Arduino Uno:
SG90 PIN | Pinul Arduino |
---|---|
Maro | GND |
Roşu | 5V |
Portocale | Pinul 9 |
Pasul 3: Instalați Servo Library
Arduino IDE include o bibliotecă servoasă încorporată, deci nu este necesar să instalați nimic în plus.
Pasul 4: Încărcați codul
Iată un simplu cod de exemplu pentru a controla motorul servo SG90:
#include <Servo.h>
Servo myServo; // Create a Servo object
void setup() {
myServo.attach(9); // Attach the servo to pin 9
Serial.begin(9600);
Serial.println("SG90 Servo Test");
}
void loop() {
for (int angle = 0; angle <= 180; angle += 1) { // Sweep from 0 to 180 degrees
myServo.write(angle); // Set servo to angle
delay(15); // Wait for the servo to reach the position
}
for (int angle = 180; angle >= 0; angle -= 1) { // Sweep from 180 to 0 degrees
myServo.write(angle); // Set servo to angle
delay(15); // Wait for the servo to reach the position
}
}
Pasul 5: Testați configurarea
- Conectați -vă Arduino la computer prin USB.
- Deschideți IDE Arduino și selectați corect Bord şi Port din Instrumente meniu.
- Încărcați codul făcând clic pe Încărcați buton.
- Odată ce codul este încărcat, servo -motorul va începe să mărească de la 0 la 180 de grade și se va întoarce continuu.
Pasul 6: Controlul servo dinamic
De asemenea, puteți controla servo -ul dinamic folosind monitorul serial. Iată un exemplu:
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9);
Serial.begin(9600);
Serial.println("Enter an angle (0-180):");
}
void loop() {
if (Serial.available()) {
int angle = Serial.parseInt(); // Read the angle from Serial Monitor
if (angle >= 0 && angle <= 180) {
myServo.write(angle);
Serial.print("Servo set to: ");
Serial.println(angle);
} else {
Serial.println("Invalid angle. Enter a value between 0 and 180.");
}
}
}
Depanare
- Servo care nu se mișcă: Verificați dublu cablarea și asigurați-vă că pinul corect este definit în cod.
- Servo -jittering: Utilizați o sursă de alimentare externă pentru a asigura o energie stabilă.
- SERVO supraîncălzire: Evitați să țineți servo -ul într -o poziție pentru o lungă perioadă de timp sub încărcare.
Aplicații SG90 Servo
- Brațe robotice
- Monturi de cameră pan-and-înclinat
- Vehicule RC
- Deschizătoare automate de uși
Concluzie
Ați interfațat cu succes motorul servo SG90 cu Arduino și ați controlat poziția acestuia. Versatilitatea și ușurința de utilizare a SG90 îl fac ideal pentru diverse proiecte de bricolaj și robotică. Experimentați cu diferite metode de control și creați-vă propriile proiecte servo-alimentate!