- Komponen Diperlukan
- Diagram Sirkuit dan Koneksi
- Rincian Pin SMT32F103C8
- Pemrograman STM32 untuk Servo Motor
Dalam elektronik, motor Servo banyak digunakan dalam Proyek Robotika karena keakuratan dan penanganannya yang mudah. Motor servo berukuran lebih kecil dan sangat efektif serta hemat energi. Mereka memberikan torsi tinggi dan dapat digunakan untuk mengangkat atau mendorong beban sesuai dengan spesifikasi motor. Dalam tutorial ini kita akan belajar tentang Servo Motor dan Bagaimana menghubungkan Servo dengan papan STM32F103C8. Potensiometer juga dihubungkan untuk memvariasikan posisi poros motor servo, dan LCD untuk menampilkan nilai sudut.
Komponen Diperlukan
- Papan STM32F103C8 (Pil Biru)
- Motor Servo (SG90)
- LCD (16x2)
- Potensiometer
- Papan tempat memotong roti
- Kabel Jumper
Diagram Sirkuit dan Koneksi
Rincian Pin SMT32F103C8
Di STM32F103C8, kami memiliki 10 pin ADC (PA0-PB1), dan di sini kami hanya menggunakan satu pin (PA3) untuk analogread () untuk mengatur posisi poros motor dengan potensiometer. Juga di antara 15 pin PWM STM32 (PA0, PA1, PA2, PA3, PA6, PA7, PA8, PA9, PA10, PB0, PB1, PB6, PB7, PB8, PB9), satu pin akan digunakan untuk memberikan pulsa ke Servo pin PWM motor (biasanya berwarna oranye).
Anda dapat mempelajari lebih lanjut tentang PWM dan ADC dengan membaca artikel terperinci di bawah ini:
- Cara menggunakan ADC di STM32F103C8
- Modulasi Lebar Pulsa (PWM) di STM32F103C8
Koneksi antara STM32F103C8 dan LCD
STM32F103C8 | LCD |
GND | VSS |
+ 5V | VDD |
Ke PIN Pusat Potensiometer | V0 |
PB0 | RS |
GND | RW |
PB1 | E |
PB10 | D4 |
PB11 | D5 |
PC13 | D6 |
PC14 | D7 |
+ 5V | SEBUAH |
GND | K |
Koneksi antara motor Servo dan STM32F103C8
STM32F103C8 |
SERVO |
+ 5V |
MERAH (+ 5V) |
PA0 |
ORANGE (pin PWM) |
GND |
COKLAT (GND) |
Koneksi Potensiometer
Kami telah menggunakan DUA potensiometer di sini
1. Potensiometer di sebelah kanan digunakan untuk memvariasikan kontras LCD. Ini memiliki tiga pin, pin kiri untuk + 5V dan kanan untuk GND dan pin tengah terhubung ke V0 LCD.
2. Potensiometer di sebelah kiri digunakan untuk memvariasikan posisi poros motor servo dengan mengontrol tegangan input analog, pin kiri memiliki input 3.3V dan kanan memiliki GND dan output tengah dihubungkan ke (PA3) dari STM32
Pemrograman STM32 untuk Servo Motor
Seperti tutorial kami sebelumnya, kami memprogram STM32F103C8 dengan Arduino IDE melalui port USB tanpa menggunakan programmer FTDI. Kita dapat melanjutkan memprogramnya seperti Arduino. Kode lengkap diberikan di bawah ini di akhir proyek.
Pertama kami telah menyertakan file perpustakaan untuk fungsi servo dan LCD:
#include
Kemudian menyatakan pin untuk layar LCD dan menginisialisasinya. Juga menyatakan beberapa variabel lain untuk PWM dan potensiometer:
const int rs = PB0, en = PB1, d4 = PB10, d5 = PB11, d6 = PC13, d7 = PC14; LCD LiquidCrystal (rs, en, d4, d5, d6, d7); int servoPin = PA0; int potPin = PA3;
Di sini kami telah membuat servo variabel dengan tipe data Servo dan memasangnya ke pin PWM yang dinyatakan sebelumnya.
Servo servo; servo.attach (servoPin);
Kemudian baca nilai Analog dari pin PA3 karena ini adalah pin ADC yang mengubah tegangan analog (0-3,3) menjadi bentuk digital (0-4095)
analogRead (potPin);
Karena keluaran digital adalah resolusi 12-bit, kita perlu mendapatkan nilai dalam kisaran derajat (0-170), itu membagi nilai ADC (0-4096) sesuai dengan sudut maks 170 derajat jadi kita bagi dengan 24.
sudut = (membaca / 24);
Pernyataan di bawah ini membuat motor servo memutar poros pada sudut yang diberikan.
servo.write (sudut);
Kode lengkap diberikan di bawah ini dan dijelaskan dengan baik oleh komentar.