เซอร์โวมอเตอร์ SG90 เป็นมอเตอร์เซอร์โวขนาดเล็กและมีน้ำหนักเบาที่ใช้กันทั่วไปในหุ่นยนต์ยานพาหนะ RC และโครงการอื่น ๆ ที่ต้องมีการควบคุมมุมที่แม่นยำ ในบทช่วยสอนนี้เราจะแสดงวิธีการเชื่อมต่อเซอร์โวมอเตอร์ SG90 กับ Arduino
สิ่งที่คุณต้องการ
- SG90 Servo Motor
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- กระดาน
- สายจัมเปอร์
- แหล่งจ่ายไฟภายนอก (เป็นทางเลือกสำหรับหลายเซอร์โว)
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 1: ทำความเข้าใจกับเซอร์โวมอเตอร์ SG90
เซอร์โวมอเตอร์ SG90 มีสามพิน:
sg90 pin | การทำงาน |
---|---|
สีน้ำตาล | พื้นดิน (GND) |
สีแดง | พลัง (VCC) |
ส้ม | สัญญาณ (PWM) |
บันทึก: เซอร์โวมอเตอร์ทำงานที่ 4.8V-6V หากคุณกำลังให้บริการเซอร์โวหลายตัวให้ใช้แหล่งจ่ายไฟภายนอก
ขั้นตอนที่ 2: เดินสาย SG90 ไปยัง Arduino
นี่คือวิธีการเชื่อมต่อมอเตอร์เซอร์โว SG90 กับ Arduino Uno:
sg90 pin | พิน Arduino |
---|---|
สีน้ำตาล | gnd |
สีแดง | 5V |
ส้ม | พิน 9 |
ขั้นตอนที่ 3: ติดตั้งไลบรารีเซอร์โว
Arduino IDE มีไลบรารีเซอร์โวในตัวดังนั้นคุณไม่จำเป็นต้องติดตั้งอะไรเพิ่มเติม
ขั้นตอนที่ 4: อัปโหลดรหัส
นี่คือรหัสตัวอย่างง่ายๆในการควบคุม Servo Servo Motor:
#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
}
}
ขั้นตอนที่ 5: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino ของคุณกับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ จาก เครื่องมือ เมนู.
- อัปโหลดรหัสโดยคลิกที่ อัพโหลด ปุ่ม.
- เมื่ออัปโหลดรหัสเซอร์โวมอเตอร์จะเริ่มกวาดจาก 0 ถึง 180 องศาและกลับอย่างต่อเนื่อง
ขั้นตอนที่ 6: การควบคุมเซอร์โวแบบไดนามิก
นอกจากนี้คุณยังสามารถควบคุมเซอร์โวแบบไดนามิกโดยใช้จอภาพอนุกรม นี่คือตัวอย่าง:
#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.");
}
}
}
การแก้ไขปัญหา
- เซอร์โวไม่เคลื่อนไหว: ตรวจสอบสายไฟอีกครั้งและตรวจสอบให้แน่ใจว่าพินที่ถูกต้องถูกกำหนดไว้ในรหัส
- การกระวนกระวายใจเซอร์โว: ใช้แหล่งจ่ายไฟภายนอกเพื่อให้พลังงานที่มั่นคง
- เซอร์โวความร้อนสูงเกินไป: หลีกเลี่ยงการถือเซอร์โวในตำแหน่งเป็นเวลานานภายใต้การโหลด
แอพพลิเคชั่นของ SG90 เซอร์โว
- แขนหุ่นยนต์
- ตัวยึดกล้องแพนและเอียง
- ยานพาหนะ RC
- เปิดประตูอัตโนมัติ
บทสรุป
คุณสามารถเชื่อมต่อ Serf90 Servo Motor กับ Arduino ได้สำเร็จและควบคุมตำแหน่งของมัน ความเก่งกาจและความสะดวกในการใช้งานของ SG90 ทำให้เหมาะสำหรับโครงการ DIY และหุ่นยนต์ต่างๆ ทดลองใช้วิธีการควบคุมที่แตกต่างกันและสร้างโครงการที่ใช้พลังงานเซอร์โวของคุณเอง!