Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Piring Putar Motor Stepper Terkontrol Serial dengan Arduino

Komponen dan Perlengkapan

Berikut adalah komponen yang dibutuhkan untuk proyek piring putar berbasis motor stepper:

Motor stepper 28BYJ481
Driver Motor Stepper X1136471
Hub Mounting Aluminium Universal Pololu untuk Poros 5mm1
Arduino UNO1
Dasar kayu 15cm x 15cm1
Penutup karet4

Alat dan Mesin yang Diperlukan

Gergaji kerucut (fretsaw)
Bor dengan mata bor 6mm untuk kayu

Tentang Proyek Ini

Cerita lengkap tersedia di: https://www.cesarebrizio.it/Arduino/Turntable.html

Proyek ini adalah platform putar berbasis motor stepper.

Model stepper adalah 28BYJ48, dikontrol melalui driver motor stepper X113647 (berbasis IC ULN2003A) yang biasanya dibeli bersama stepper.

Platform dapat berputar ke kedua arah dan dikontrol melalui serial monitor atau Tera Term.

Perintah yang diimplementasikan:

Dari segi mekanika, pemasangan sangat sederhana: cukup persegi plywood atau bahan serupa, sekitar 15cmx15cm, diperlukan untuk meja dasar.

Pusat meja akan ditemukan di persimpangan diagonal - lubang 6mm akan dibor tepat di titik tersebut.

Hub stepper berada di tengah-sisi: dengan menempelkan hub ke lubang 6mm, kontur stepper dapat digambar dengan pensil.

Selanjutnya, lubang bundar yang sempit mungkin di sekitar kontur stepper akan dipotong dengan gergaji kerucut, sehingga dua lubang pemasang stepper menempel kuat pada kayu meja, sehingga dapat digunakan untuk memasang stepper ke meja.

Penutup karet tinggian 10mm diperlukan untuk memberikan kelonggaran yang diperlukan (stepper akan sedikit menjorok di bawah meja).

Piring putar akan dipasang ke stepper berkat Pololu Universal Aluminum Mounting Hub untuk Poros 5mm.

Sumber informasi:

Kontrol stepper kecil: https://arduino-info.wikispaces.com/SmallSteppers

Piring Putar Motor Stepper Terkontrol Serial dengan Arduino
Piring Putar Motor Stepper Terkontrol Serial dengan Arduino

Sebenarnya saya menggunakan 4 pin yang berbeda, namun ilustrasi rangkaian di bawah ini secara akurat mereproduksi koneksi. Melihat foto di atas (Kabel merah dari Arduino menggantikan 'Pink'):

#define motorPin1 4 // Biru - pin 1 28BYJ-48
#define motorPin2 5 // Pink - pin 2 28BYJ-48
#define motorPin3 6 // Kuning - pin 3 28BYJ-48
#define motorPin4 7 // Oranye - pin 4 28BYJ-48
// Merah - pin 5 28BYJ-48 (VCC)
// Biru - pin GND 28BYJ-48
#define STEPS_PER_TURN 2048 // jumlah langkah dalam 360 derajat
Piring Putar Motor Stepper Terkontrol Serial dengan Arduino

Kode

Skets lengkap dalam Arduino

/* Piring putar berbasis stepper dikontrol oleh dialog serial
Rangkaian dan komentar: Lihat https://www.cesarebrizio.it/Arduino/Turntable.html
Rangkaian seperti yang diilustrasikan di sini: https://www.tdegypt.com/wp-content/uploads/2017/08/stepper-motor-wiring.png
kecuali bahwa skets ini menggunakan output digital 4 - 5 - 6 - 7 sementara diagram Fritzing dibuat 23 Des 2017
dimodifikasi oleh Cesare Brizio
Contoh kode ini berada di domain publik.
Skets ini mengontrol platform putar berbasis motor stepper.
Model stepper adalah 28BYJ48, dikontrol melalui Driver Motor Stepper X113647 (berbasis IC ULN2003A)
yang biasanya dibeli bersama stepper.
Platform dapat berputar ke kedua arah dan dikontrol melalui Serial Monitor atau Tera Term.
Perintah yang diimplementasikan:
R = Berputar searah jarum jam secara berkelanjutan (berarti: untuk beberapa putaran)
r = Berputar 360 derajat; searah jarum jam
L = Berputar berlawanan jarum jam secara berkelanjutan (berarti: untuk beberapa putaran)
l = Berputar 360 derajat; berlawanan jarum jam
S = Berhenti berputar
Sumber informasi:
Kontrol stepper kecil: https://arduino-info.wikispaces.com/SmallSteppers
*/
/*-----( Impor perpustakaan yang dibutuhkan )-----*/
#include <AccelStepper.h>
/*-----( Deklarasi Konstanta dan Nomor Pin )-----*/
/* JANGAN PERNAH MELETAKKAN ; SETELAH Pernyataan #define!!!! */
// pin motor
#define motorPin1 4 // Biru - pin 1 28BYJ-48
#define motorPin2 5 // Pink - pin 2 28BYJ-48
#define motorPin3 6 // Kuning - pin 3 28BYJ-48
#define motorPin4 7 // Oranye - pin 4 28BYJ-48
// Merah - pin 5 28BYJ-48 (VCC)
// Biru - pin GND 28BYJ-48
#define STEPS_PER_TURN 2048 // jumlah langkah dalam 360 derajat
int motorSpeed = 500; // Kecepatan tinggi (800 dan di atas) dapat menyebabkan perilaku tidak stabil pada 28BYJ-48
int motorAccel = 400; // Sebagai yang di atas: lebih baik menghindari percepatan ekstrim
int myPos = 0; // akan digunakan untuk menentukan titik awal untuk putaran 360 derajat
int LeftTurnUp = 0; // Pasang bendera untuk menentukan arah putaran
int RightTurnDown = 0; // Pasang bendera untuk menentukan arah putaran
int Continuous = 0; // digunakan di bawah untuk membedakan perintah putaran tunggal
int incomingByte = 0; // untuk data serial masuk
/*-----( Objek untuk kontrol stepper )-----*/
// Siapkan stepper sebagai 4 kabel bipolar pada pin 4,5,6,7
// CATATAN: Urutan 1-3-2-4 diperlukan untuk pemutaran yang benar dari 28BYJ48
AccelStepper stepper(4,motorPin1,motorPin3,motorPin2,motorPin4);
void setup() {
  Serial.begin(9600);
  stepper.setMinPulseWidth(20); // Pengaturan yang disarankan untuk menghindari pulsa dari Arduino terlalu cepat untuk didekode
  stepper.setMaxSpeed(motorSpeed);
  stepper.setSpeed(motorSpeed);
  stepper.setAcceleration(motorAccel);
  // dua baris berikut mereset "nol langkah" ke posisi saat ini
  stepper.setCurrentPosition(stepper.currentPosition());
  stepper.runToPosition();
  Serial.println("Perintah yang tersedia:");
  Serial.println("R = putaran searah jarum jam berkelanjutan");
  Serial.println("r = putaran searah jarum jam 360 derajat");
  Serial.println("L = putaran berlawanan jarum jam berkelanjutan");
  Serial.println("l = putaran berlawanan jarum jam 360 derajat");
  Serial.println("S = berhenti putaran");
}
void loop() {
  if (Serial.available() > 0) {
    incomingByte = Serial.read();
    if (incomingByte == 'R') {
      Serial.println("terima «R» - mengaktifkan putaran searah jarum jam berkelanjutan");
      stepper.stop();
      stepper.runToPosition();
      LeftTurnUp = 1;
      RightTurnDown = 0;
      Continuous = 1;
      stepper.setCurrentPosition(stepper.currentPosition());
      stepper.setSpeed(motorSpeed);
    }
    if (incomingByte == 'L') {
      Serial.println("terima «L» - mengaktifkan putaran berlawanan jarum jam berkelanjutan");
      stepper.stop();
      stepper.runToPosition();
      RightTurnDown = 1;
      LeftTurnUp = 0;
      Continuous = 1;
      stepper.setCurrentPosition(stepper.currentPosition());
      stepper.setSpeed(motorSpeed);
    }
    if (incomingByte == 'r') {
      Serial.println("terima «r» - mengaktifkan putaran searah jarum jam tunggal");
      stepper.stop();
      stepper.runToPosition();
      LeftTurnUp = 1;
      RightTurnDown = 0;
      Continuous = 0;
      stepper.setCurrentPosition(stepper.currentPosition());
      stepper.setSpeed(motorSpeed);
      myPos = stepper.currentPosition();
    }
    if (incomingByte == 'l') {
      Serial.println("terima «l» - mengaktifkan putaran berlawanan jarum jam tunggal");
      stepper.stop();
      stepper.runToPosition();
      RightTurnDown = 1;
      LeftTurnUp = 0;
      Continuous = 0;
      stepper.setCurrentPosition(stepper.currentPosition());
      stepper.setSpeed(motorSpeed);
      myPos = stepper.currentPosition();
    }
    if (incomingByte == 'S') {
      Serial.println("terima «S» - berhenti putaran");
      LeftTurnUp = 0;
      RightTurnDown = 0;
      stepper.stop();
      stepper.runToPosition();
    }
  }
  if (Continuous == 1) {
    if (LeftTurnUp == 1) {
      stepper.moveTo(10000);
    }
    if (RightTurnDown == 1) {
      stepper.moveTo(-10000);
    }
    stepper.run();
  }
  if (Continuous == 0) {
    if (LeftTurnUp == 1) {
      stepper.moveTo(myPos + STEPS_PER_TURN);
    }
    if (RightTurnDown == 1) {
      stepper.moveTo(myPos - STEPS_PER_TURN);
    }
  }
  stepper.run();
}

Skematik

Rangkaian lengkap yang dibuat di Fritzing

Piring Putar Motor Stepper Terkontrol Serial dengan Arduino

Proses manufaktur

  1. Motor Stepper: Jenis, Karakteristik, dan Aplikasi Praktis
  2. Driver Terintegrasi Sederhanakan Desain Stepper Motor Daya Tinggi
  3. Kipas Pendingin Mengontrol Suhu: Sistem Relay DIY untuk Pendingin Meja Media
  4. Raspoulette: Prototipe Sistem Pintu Kandang Otonom Berdaya Surya
  5. Bendera Nerf Otonom DIY – Bangun Senapan Nerf Cerdas dengan Motor Stepper, Kamera, dan Arduino
  6. Library Lengkap Motor Stepper Bipolar untuk Arduino
  7. Bangun Kendaraan Jarak Jauh Terkontrol Android dengan Motor Shield Raspberry Pi
  8. Swiper Otomatis Tinder & Bumble Menggunakan Arduino UNO dan Stepper Motor
  9. Memahami Motor Linier: Dari Energi Listrik hingga Gerak Linier Presisi
  10. Motor Servo: Cara Kerja dan Mengapa Penting