Chuyển tới nội dung
Home » Tower Pro Micro Servo Sg90 Arduino | Code Arduino 2 – Điều Khiển Servo Bằng Biến Trở

Tower Pro Micro Servo Sg90 Arduino | Code Arduino 2 – Điều Khiển Servo Bằng Biến Trở

Arduino Tutorial: Using a Servo SG90 with Arduino

Hướng dẫn sử dụng động cơ Servo SG90 với Arduino

Động cơ Servo SG90 Arduino là một loại động cơ có kích thước khá nhỏ, giá thành thấp và được sử dụng rộng rãi trong lập trình Arduino. Nó được sử dụng trong một số dự án mình đã triển khai như: Robot dò line tránh vật cản, cánh tay Robot 4 bậc…

Trong bài viết hôm nay bạn sẽ học được gì? Sẽ nắm rõ hơn về cấu tạo cũng như nguyên lý hoạt động của động cơ Servo SG90. Qua đó sẽ thực hành bằng những chương trình đơn giản như quay động cơ một góc 180 độ và điều khiển góc quay thông qua một biến trở.

Để tạo động lực cho Team Arduino KIT ra nhiều bài viết chất lượng hơn, các bạn có thể ủng hộ mình bằng cách Donate qua MoMo, Ngân hàng, Paypal…Nhấn vào link bên dưới nhé.

Xem ngay: Động cơ RC Servo là gì?

Tổng quan về động cơ Servo

Cấu tạo bên trong động cơ Servo SG90 Arduino bao gồm:

Động cơ DC: Động cơ DC chịu trách nhiệm tạo ra chuyển động quay của trục đầu ra. Điện áp được cấp vào động cơ để tạo ra xoắn (lực) xoay.

Hệ thống điều khiển: Hệ thống điều khiển bao gồm bộ điều khiển và mạch phản hồi. Bộ điều khiển nhận tín hiệu điều khiển từ nguồn điều khiển (như Arduino) và điều chỉnh tín hiệu đầu vào để kiểm soát chuyển động của động cơ. Mạch phản hồi (potentiometer) được gắn kết với trục đầu ra để cung cấp thông tin về vị trí hiện tại của động cơ.

Hệ thống giảm tốc: Động cơ Servo SG90 thường đi kèm với hệ thống giảm tốc để tăng lực xoắn và giảm tốc độ quay của động cơ. Hệ thống giảm tốc giúp đạt được độ chính xác cao hơn trong việc điều chỉnh vị trí.

Arduino Tutorial: Using a Servo SG90 with Arduino
Arduino Tutorial: Using a Servo SG90 with Arduino

Code Servo SG90 Arduino 1 – Sweep

Mình sẽ sử dụng một ví dụ mẫu có trên Arduino IDE, chương trình Sweep sẽ thực hiện quá trình quét từ góc 0 đến 180 độ và sau đó quét lại từ 180 đến 0 độ.

#include

int servoPin = 9; Servo servo; int angle = 0; // servo position in degrees void setup() { servo.attach(servoPin); } void loop() { // scan from 0 to 180 degrees for(angle = 0; angle < 180; angle++) { servo.write(angle); delay(15); } // now scan back from 180 to 0 degrees for(angle = 180; angle > 0; angle–) { servo.write(angle); delay(15); } }

Giải thích Code

#include

Khai báo thư viện Servo vào chương trình Arduino.

int servoPin = 9;

Khai báo biến

servoPin

và gán giá trị là số chân kết nối với động cơ Servo trên Arduino.

Servo servo;

Khai báo một đối tượng servo từ lớp Servo, sẽ được sử dụng để điều khiển động cơ Servo.

int angle = 0; // servo position in degrees

Khai báo biến

angle

để lưu giữ góc quay hiện tại của động cơ Servo.

void setup() { servo.attach(servoPin); }

Hàm

setup()

được gọi một lần khi Arduino khởi động. Trong hàm này, gắn đối tượng servo với chân servoPin bằng cách sử dụng phương thức attach().

void loop() { // scan from 0 to 180 degrees for(angle = 0; angle < 180; angle++) { servo.write(angle); delay(15); } // now scan back from 180 to 0 degrees for(angle = 180; angle > 0; angle–) { servo.write(angle); delay(15); } }

Hàm

loop()

được thực thi liên tục sau khi Arduino khởi động. Trong hàm này, sẽ thực hiện quá trình quét từ góc 0 đến 180 độ và sau đó quét lại từ 180 đến 0 độ.

Các vấn đề thường gặp

Một vấn đề hay thường gặp ở động cơ Servo SG90 là khi sử dụng nguồn chung với Arduino, lúc khởi động hay bị Reset, lý do đơn giản là vì SG90 tiêu thụ điện năng khá lớn. Để giải quyết vấn đề này, các bạn cần mắc thêm một con tụ hóa (Tụ phân cực) ở đầu vào nguồn cấp. Sử dụng tụ có giá trị từ (470µF – 1000µF)

Chi tiết sản phẩm

Động cơ servo SG90 có kích thước nhỏ, là loại được sử dụng nhiều nhất để làm các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng.

Động cơ servo SG90 180 độ có tốc độ phản ứng nhanh, các bánh răng được làm bằng nhựa nên cần lưu ý khi nâng tải nặng vì có thể làm hư bánh răng, động cơ RC Servo 9G có tích hợp sẵn Driver điều khiển động cơ bên trong nên có thể dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM.

THÔNG SỐ KỸ THUẬT

  • Điện áp hoạt động: 4.8-5VDC
  • Tốc độ: 0.12 sec/ 60 deg (4.8VDC)
  • Lực kéo: 1.6 Kg.cm
  • Kích thước: 21x12x22mm
  • Trọng lượng: 9g.

Phương pháp điều khiển PWM:

  • Độ rộng xung 0.5ms ~ 2.5ms tương ứng 0-180 độ
  • Tần số 50Hz, chu kỳ 20ms

Sơ đồ dây:

  • Đỏ: Dương nguồn
  • Nâu: Âm nguồn
  • Cam: Tín hiệu

Kích thước Động cơ servo SG90 180 độ

Kết nối với arduino:

Hình ảnh sản phẩm

Code test with arduino:

unsigned int Gia_tri_moi; void setup() { TCCR1A = 0; TCCR1B = 0; // RESET lại 2 thanh ghi DDRB |= (1 << PB1); // Đầu ra PB1 là OUTPUT ( pin 9) TCCR1A |= (1 << WGM11); TCCR1B |= (1 << WGM12) | (1 << WGM13); // chọn Fast PWM, chế độ chọn TOP_value tự do ICR1 TCCR1A |= (1 << COM1A1); // So sánh thường( none-inverting) TCCR1B |= (1 << CS11); // P_clock=16mhz/8=2mhz // mỗi P_clock bằng 1/2mhz= 0.5 us OCR1A = 1060; Gia_tri_moi = OCR1A; // Value=1060 , tương đương xung có độ rộng 1060*0.5us=530us (0.53ms) // Value=4820, tương đương xung có độ rộng 4820*0.5us=2410us (2,41ms) ICR1 = 40000; // xung răng cưa tràn sau 40000 P_clock, tương đương (20ms) } void set(unsigned int x) { if (Gia_tri_moi != x) { OCR1A = x; Gia_tri_moi = OCR1A; } else { return; // thoát ngay } // x : 1060 – 4820 //Độ rộng: 0.53ms – 2.41 ms } void loop() { set(1060); // 0 độ delay(1000); set(4820); // 180 độ delay(1000); }

Nshopvn.com · 07/03/2019 10:46 AM

Động cơ servo SG90 180 độ giá chỉ 34.000₫

Using Servo Motor SG90 with Arduino
Using Servo Motor SG90 with Arduino

Code Arduino 2 – Điều khiển Servo bằng biến trở

Trong ví dụ này mình sẽ dùng một biến trở để điều khiển động cơ Servo SG90, chuẩn bị một biến trở 10K và đấu nối vào chân A0 trên mạch Arduino.

Sơ đồ đấu nối

Code

#include

int potPin = 0; int servoPin = 9; Servo servo; void setup() { servo.attach(servoPin); } void loop() { int reading = analogRead(potPin); int angle = map(reading, 0, 1023, 0, 180); servo.write(angle); }

Giải thích Code

int potPin = 0;

Khai báo biến potPin và gán giá trị là số chân kết nối với cảm biến potentiometer trên Arduino. Ở đây mình dùng chân A0.

int reading = analogRead(potPin);

Đọc giá trị từ cảm biến potentiometer thông qua chân potPin và lưu trữ giá trị đọc vào biến reading.

int angle = map(reading, 0, 1023, 0, 180);

Sử dụng hàm

map()

để chuyển đổi giá trị đọc từ cảm biến potentiometer (nằm trong khoảng 0 đến 1023) thành một giá trị góc tương ứng (nằm trong khoảng 0 đến 180). Kết quả được lưu trữ trong biến angle.

servo.write(angle);

Gửi giá trị góc angle tới động cơ Servo bằng cách sử dụng phương thức write(). Động cơ Servo sẽ quay đến góc tương ứng với giá trị góc angle.

Using the SG90 Servo Motor With an Arduino

Hi guys, today, I will show you how to use a servo motor with an Arduino. This tutorial is ideal for beginners because it is easy and it gives them the foundation to build interesting projects like robots for which servos are commonly used.

Servo motors are high torque motors which are commonly used in robotics and several other applications due to the fact that it’s easy to control their rotation. Servo motors have a geared output shaft which can be electrically controlled to turn one (1) degree at a time. For the sake of control, unlike normal DC motors, servo motors usually have an additional pin asides the two power pins (Vcc and GND) which is the signal pin. The signal pin is used to control the servo motor, turning its shaft to any desired angle.

For this tutorial, we will be using the popular SG90 servo motor and our goal will be to rotate the servo motor from one end to the other.

Servo’s have high current requirement so when using more than one servo motor with the Arduino, it is important to connect their power connections to an external power supply as the Arduino may not be able to source the current needed for the servo. Since we will be using just one servo in this tutorial its fine to power it with an Arduino.

Required Components

The following components are required to build this project:

  1. SG90 Servo
  2. Cheap Arduino Uno
  3. Wires
  4. Breadboard

Each of these components can be bought via the link attached to them.

Schematics

The schematics for this project is quite simple as we will be connecting just the servo motor to the Arduino.

Servo motors generally have three pins/wires, this includes the VCC, GND, and the Signal pin. The Signal pin is the one used to feed the control signal from the microcontroller to the servo, to get the servo rotate to a particular angle.

Connect the Servo to the Arduino as shown in the schematics below.

For emphasis, the connection is further described below.

SG90 Servo – Arduino

VCC(Red wire) – 5V SIG(yellow/orange) – D8 GND(Black/Brown) – GND

The signal pin was connected to the digital pin 8 of the Arduino because it is a PWM pin. Servo directions are sent from the microcontroller to the servo motor as PWM pulses.

With the connection all done, we can now proceed to write the code for the project.

Code

The code for this project is quite easy thanks to the very comprehensive and concise servo.h library developed by the Arduino team to facilitate the use of servo motors in Arduino projects. The library makes it easy to turn the servo at different angles using a single command. The library comes pre-installed in the Arduino IDE removing the need for us to download and install.

We start the code for the project by including the libraries that we will use which in this case is the servo.h library.

#include

Next, we create an object of the library, to be used as a reference for controlling our servo motor throughout the code.

Servo servo;

With this done, we proceed to the void setup() function. we start the function by attaching the servo object created to pin D8 of the microcontroller, after which we center the servo, turning it to zero degrees.

void setup() { servo.attach(8); servo.write(angle); }

With that done, we are ready to move the servo in any direction we desire, and we will be doing this under the void loop function. Thanks, to the servo.h library all we need to do, to rotate the servo to an angle we desire, is to pass the desired angle as an argument into the servo.write() function. To demonstrate this, a for-loop was used to turn the servos at several angles in one direction and another loop was used to turn the servo back to where it started.

void loop() { // scan from 0 to 180 degrees for(angle = 10; angle < 180; angle++) { servo.write(angle); delay(15); } // now scan back from 180 to 0 degrees for(angle = 180; angle > 10; angle–) { servo.write(angle); delay(15); } }

The complete code for the project is available below and can be downloaded from the download section at the end of the tutorial.

#include

Servo servo; int angle = 10; void setup() { servo.attach(8); servo.write(angle); } void loop() { // scan from 0 to 180 degrees for(angle = 10; angle < 180; angle++) { servo.write(angle); delay(15); } // now scan back from 180 to 0 degrees for(angle = 180; angle > 10; angle–) { servo.write(angle); delay(15); } }

Demo

Copy the code above and upload to your Arduino and servo motor setup, after a few time, you should see the servo motor start turning as shown in the gif below.

That’s it for this tutorial guys, the code above can be expanded in several ways for use in different projects involving servo motors, what cool thing will you be building with the servo motor? feel free to share via the comment section.

The video tutorial for this project can be watched on youtube.

In your article on page https://www.electronics-lab.com/project/using-sg90-servo-motor-arduino/ is listed at “REQUIRED COMPONENTS”: Distance Sensor.But this sensor is not connected and how it works.

Hi, thanks for the share, just wanted to remind that Pin 8 is not a PWM pin.

I’dont understand that part. In every site I look (but this) they say you need pwm pin. But It works even if you use pin 2 or 8 for example, and they are not pwm.

Động cơ servo SG90 180 độ

SG90 servo motor 180 degrees

Mã sản phẩm: RK7A

Sản phẩm hiện đang còn hàng.

Xem chi nhánh còn hàng

Động cơ servo SG90. Điện áp hoạt động: 4.8-5VDC. Lực kéo: 1.6 Kg.cm. Trọng lượng: 9g.

  • Cộng thêm 3 điểm tích lũy
  • TP.HCM: Miễn phí vận chuyển đơn hàng từ 300k

    Tỉnh thành khác: Miễn phí vận chuyển đơn hàng từ 500k

    Xem thêm các khuyến mãi vận chuyển khác.

Động cơ Servo SG90 hoạt động như thế nào?

Quá trình hoạt động của động cơ Servo SG90 như sau:

Nhận tín hiệu điều khiển: Tín hiệu điều khiển PWM (Pulse Width Modulation) được cung cấp từ nguồn điều khiển, như Arduino. Tín hiệu này có thể được điều chỉnh trong khoảng từ 1 ms đến 2 ms và có chu kỳ là 20 ms.

Điều chỉnh vị trí: Bộ điều khiển nhận tín hiệu điều khiển và so sánh nó với vị trí hiện tại của động cơ được xác định bởi mạch phản hồi. Dựa trên sự khác biệt giữa vị trí yêu cầu và vị trí hiện tại, bộ điều khiển điều chỉnh tín hiệu điều khiển để tạo ra chuyển động quay của động cơ.

Phản hồi vị trí: Mạch phản hồi (potentiometer) gửi thông tin về vị trí hiện tại của động cơ cho bộ điều khiển. Bộ điều khiển sử dụng thông tin này để đảm bảo rằng động cơ đạt được vị trí yêu cầu và duy trì nó trong quá trình hoạt động.

Điều chỉnh liên tục: Quá trình điều chỉnh vị trí và phản hồi được thực hiện liên tục để duy trì độ chính xác và ổn định của vị trí đầu ra của động cơ.

TowerPro SG 92R vs SG 90 9g servo test !!!
TowerPro SG 92R vs SG 90 9g servo test !!!

Các linh kiện cần thiết cho dự án

TÊN LINH KIỆN SỐ LƯỢNG NƠI BÁN
Arduino Uno R3 Shopee | Cytron
Động cơ Servo SG90 Shopee | Cytron
Biến trở 10K Shopee | Cytron
Dây cắm 10-20 Shopee | Cytron
Breadboard Shopee | Cytron

Keywords searched by users: tower pro micro servo sg90 arduino

Using The Sg90 Servo Motor With An Arduino - Electronics-Lab.Com
Using The Sg90 Servo Motor With An Arduino – Electronics-Lab.Com
Arduino Servo Motor Basics And Control — Maker Portal
Arduino Servo Motor Basics And Control — Maker Portal
Using Servo Motor Sg90 With Arduino - Youtube
Using Servo Motor Sg90 With Arduino – Youtube
Động Cơ Servo Sg90 180 Độ - Nshop
Động Cơ Servo Sg90 180 Độ – Nshop
Set 1 / 5 / 10 Động Cơ Servo Arduino Tower Pro 9G Sg90 | Holcim - Kênh Xây  Dựng Và Nội Thất
Set 1 / 5 / 10 Động Cơ Servo Arduino Tower Pro 9G Sg90 | Holcim – Kênh Xây Dựng Và Nội Thất
Tổng Hợp Servo Motor Arduino Giá Rẻ, Bán Chạy Tháng 2/2024 - Mua Thông Minh
Tổng Hợp Servo Motor Arduino Giá Rẻ, Bán Chạy Tháng 2/2024 – Mua Thông Minh
Buy Tower Pro Sg90 Servo Motor Online – Quartzcomponents
Buy Tower Pro Sg90 Servo Motor Online – Quartzcomponents
Giới Thiệu Servo Sg90 Và Cách Điều Khiển Bằng Biến Trở | Cộng Đồng Arduino  Việt Nam
Giới Thiệu Servo Sg90 Và Cách Điều Khiển Bằng Biến Trở | Cộng Đồng Arduino Việt Nam
Pwm Sg 90 Servo Motor 5V Tower Pro - The Arduino Shop For Educational And  Researc At Rs 70/Piece In Tiruvallur
Pwm Sg 90 Servo Motor 5V Tower Pro – The Arduino Shop For Educational And Researc At Rs 70/Piece In Tiruvallur
Động Cơ Servo Sg90 180 Độ - Nshop
Động Cơ Servo Sg90 180 Độ – Nshop
Motor Servo Tower Pro Sg90 | Điện Tử Dat
Motor Servo Tower Pro Sg90 | Điện Tử Dat
Set 1 / 5 / 10 Động Cơ Servo Arduino Tower Pro 9G Sg90 | Holcim - Kênh Xây  Dựng Và Nội Thất
Set 1 / 5 / 10 Động Cơ Servo Arduino Tower Pro 9G Sg90 | Holcim – Kênh Xây Dựng Và Nội Thất
Servo Motor Sg90 Tower Pro - Arduino Tutorial #24 - Youtube
Servo Motor Sg90 Tower Pro – Arduino Tutorial #24 – Youtube
Servo Sg90
Servo Sg90
Zaibtronix Arduino Uno With Usb Cable Sg90 Micro Servo Motor And  Uldtrasonic Sensor With Jumper ,Arduino Sensor Kit Diy Hobby Kit Electronic  Hobby Kit Electronic Components Electronic Hobby Kit Price In India -
Zaibtronix Arduino Uno With Usb Cable Sg90 Micro Servo Motor And Uldtrasonic Sensor With Jumper ,Arduino Sensor Kit Diy Hobby Kit Electronic Hobby Kit Electronic Components Electronic Hobby Kit Price In India –
Towerpro Sg90 Sg 90 180 Degree Servo Motor-Digilog.Pk
Towerpro Sg90 Sg 90 180 Degree Servo Motor-Digilog.Pk
Lkrb1 Động Cơ Servo Tower Sg90
Lkrb1 Động Cơ Servo Tower Sg90
Động Cơ Servo Sg90 180 Độ - Nshop
Động Cơ Servo Sg90 180 Độ – Nshop
4.2V~6V Probots Mini Servo Motor Sg90 For Arduino Rc Planes 9G 9 Gram At Rs  165/Piece In Bengaluru
4.2V~6V Probots Mini Servo Motor Sg90 For Arduino Rc Planes 9G 9 Gram At Rs 165/Piece In Bengaluru
🔴 Arduino #13 | Động Cơ Servo Sg90 Điều Khiển Động Cơ Servo Quay Một Góc  Tùy Ý. - Youtube
🔴 Arduino #13 | Động Cơ Servo Sg90 Điều Khiển Động Cơ Servo Quay Một Góc Tùy Ý. – Youtube
Hướng Dẫn Sử Dụng Động Cơ Servo Sg90 Với Arduino | Arduino Kit
Hướng Dẫn Sử Dụng Động Cơ Servo Sg90 Với Arduino | Arduino Kit
Motor Servo Tower Pro Sg90 | Điện Tử Dat
Motor Servo Tower Pro Sg90 | Điện Tử Dat
Tổng Hợp Servo Motor Arduino Giá Rẻ, Bán Chạy Tháng 2/2024 - Mua Thông Minh
Tổng Hợp Servo Motor Arduino Giá Rẻ, Bán Chạy Tháng 2/2024 – Mua Thông Minh
Towerpro Sg90 9G Micro Analog Plastic Gear Servo 180 Degree With Servo Horn  For Arduino/Robot/Plane Ect Sg90-N | Shopee Malaysia
Towerpro Sg90 9G Micro Analog Plastic Gear Servo 180 Degree With Servo Horn For Arduino/Robot/Plane Ect Sg90-N | Shopee Malaysia
How Servo Motor Works & Interface It With Arduino - Last Minute Engineers
How Servo Motor Works & Interface It With Arduino – Last Minute Engineers
Servo Motor (Tower Pro Sg90) On Arduino Nano - Youtube
Servo Motor (Tower Pro Sg90) On Arduino Nano – Youtube
Using The Sg90 Servo Motor With An Arduino - Electronics-Lab.Com
Using The Sg90 Servo Motor With An Arduino – Electronics-Lab.Com
Servo Mini Tower Pro 9G Sg-90 Philippines | Circuitrocks – Circuitrocks
Servo Mini Tower Pro 9G Sg-90 Philippines | Circuitrocks – Circuitrocks

See more here: kientrucannam.vn

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *