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

Stand Berputar Berbasis Stepper Dikendalikan oleh Dialog Serial

Komponen dan persediaan

28BYJ48 motor stepper
× 1
Driver Motor Stepper X113647
× 1
Hub Pemasangan Aluminium Universal Pololu untuk Poros 5mm
× 1
Arduino UNO
× 1
Dasar kayu 15cm x 15cm
× 1
bantalan karet
× 4

Alat dan mesin yang diperlukan

fretsaw
bor dengan mata bor 6 mm untuk kayu

Tentang proyek ini

Cerita lengkapnya di sini:http://www.cesarebrizio.it/Arduino/Turntable.html

Proyek ini adalah tentang platform berputar berdasarkan motor stepper.

Model stepper adalah 28BYJ48, dikendalikan melalui driver motor stepper X113647 (berdasarkan IC ULN2003A) yang biasanya dibeli dengan stepper.

Platform dapat berputar ke dua arah dan dikendalikan melalui monitor serial atau Tera Term.

Perintah berikut diimplementasikan:

  • R =Putar Searah Jarum Jam terus menerus (artinya:untuk beberapa putaran)
  • r =Putar untuk 360 derajat; searah jarum jam
  • L =Putar Berlawanan arah jarum jam terus menerus (artinya:untuk beberapa putaran)
  • l =Putar untuk 360 derajat; berlawanan arah jarum jam
  • S =Berhenti berputar

Dari sudut pandang mekanis, perakitannya sangat sederhana:hanya membutuhkan kayu lapis persegi atau bahan serupa, berukuran sekitar 15cmx15cm, untuk meja dasar.

Bagian tengah meja akan ditemukan di persimpangan diagonal - lubang 6 mm akan dibor tepat pada titik tersebut.

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

Kemudian, lubang bundar sekencang mungkin di sekitar kontur stepper akan dipotong dengan fretsaw, sehingga dua lubang pemasangan stepper duduk dengan kuat di kayu meja, sehingga dapat digunakan untuk memperbaiki stepper ke meja.

Diperlukan bantalan karet setinggi 10 mm untuk memberikan jarak yang diperlukan (stepper akan menempel sedikit di bawah meja).

Pelat yang berputar akan dipasang ke stepper berkat Hub Pemasangan Aluminium Universal Pololu untuk Poros 5mm.

Sumber informasi:

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

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

#define motorPin1 4 // Biru - 28BYJ-48 pin 1#define motorPin2 5 // Pink - 28BYJ-48 pin 2#define motorPin3 6 // Kuning - 28BYJ-48 pin 3#define motorPin4 7 / / Oranye - 28BYJ-48 pin 4 // Merah - 28BYJ-48 pin 5 (VCC) // Biru - 28BYJ-48 pin GND #define STEPS_PER_TURN 2048 // jumlah langkah dalam 360 derajat; 

Kode

  • Sketsa lengkap di Arduino
Sketsa lengkap di ArduinoArduino
Deskripsi lengkap perangkat lunak dengan komentar
/* Dudukan berputar berbasis stepper yang dikendalikan oleh dialog serialCircuit dan komentar:Lihat http://www.cesarebrizio.it/Arduino/Turntable.htmlSirkuit seperti yang diilustrasikan di sini:https:// www.tdegypt.com/wp-content/uploads/2017/08/stepper-motor-wiring.png satu-satunya pengecualian adalah sketsa menggunakan output digital 4 - 5 - 6 - 7 sedangkan diagram Fritzing dibuat 23 Des 2017 dimodifikasi --- - oleh Cesare Brizio Kode contoh ini ada di domain publik. Sketsa ini mengontrol platform berputar berdasarkan motor stepper.Model stepper adalah 28BYJ48, dikendalikan melalui Driver Motor Stepper X113647 (berdasarkan IC ULN2003A) yang biasanya dibeli dengan stepper. Platform dapat berputar di kedua arah dan dikendalikan melalui Serial Monitor atau Tera Term. Perintah berikut diterapkan:R =Putar Searah Jarum Jam terus menerus (artinya:untuk beberapa putaran) r =Putar untuk 360 derajat; searah jarum jamL =Putar Berlawanan arah jarum jam terus menerus (artinya:untuk beberapa putaran)l =Putar 360 derajat; berlawanan arah jarum jam =Berhenti berputar Sumber informasi:Kontrol stepper kecil:http://arduino-info.wikispaces.com/SmallSteppers*//*-----( Impor perpustakaan yang diperlukan )-----*/#include /*-----( Deklarasikan Konstanta dan Nomor Pin )-----*//* NEVER PUT; SETELAH pernyataan #define!!!! */// pin motor#define motorPin1 4 // Biru - 28BYJ-48 pin 1#define motorPin2 5 // Pink - 28BYJ-48 pin 2#define motorPin3 6 // Kuning - 28BYJ-48 pin 3#define motorPin4 7 / / Oranye - 28BYJ-48 pin 4 // Merah - 28BYJ-48 pin 5 (VCC) // Biru - 28BYJ-48 pin GND #define STEPS_PER_TURN 2048 // jumlah langkah dalam 360deg;int motorSpeed ​​=500; // Kecepatan tinggi (800 dan lebih tinggi) dapat menyebabkan perilaku tidak menentu di 28BYJ-48int motorAccel =400; // Seperti di atas:lebih baik menghindari akselerasi ekstrim di myPos =0; // akan digunakan untuk menentukan titik awal untuk 360 derajat; rotasisint LeftTurnUp =0; // Sepasang flag untuk menentukan arah rotasiint RightTurnDown =0; // Sepasang flag untuk menentukan arah rotasiint Continuous =0; // digunakan di bawah ini untuk membedakan perintah rotasi tunggalintincomingByte =0; // untuk data serial yang masuk/*-----( Objek untuk kontrol stepper )-----*/// Atur stepper sebagai 4 kawat bipolar pada pin 4,5,6,7// CATATAN:urutan 1-3-2-4 diperlukan untuk urutan yang tepat dari 28BYJ48AccelStepper 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 didekodekan stepper.setMaxSpeed(motorSpeed); stepper.setSpeed(kecepatan motor); stepper.setAcceleration(motorAccel); // dua baris berikut mengatur ulang "langkah nol" ke posisi saat ini stepper.setCurrentPosition(stepper.currentPosition()); stepper.runToPosition(); Serial.println("Perintah yang tersedia:"); Serial.println("R =putaran searah jarum jam terus menerus"); Serial.println("r =360 derajat; rotasi searah jarum jam"); Serial.println("L =rotasi berlawanan arah jarum jam terus menerus"); Serial.println("l =360 derajat; rotasi berlawanan arah jarum jam"); Serial.println("S =hentikan rotasi");}void loop(){ if (Serial.available()> 0) { IncomingByte =Serial.read(); { if (incomingByte =='R') { Serial.println("diterima «R» - mengaktifkan rotasi searah jarum jam terus menerus"); // Dua baris berikutnya memungkinkan untuk mengirim perintah dalam urutan apa pun:// sebelum eksekusi, penghentian cepat dilakukan stepper.stop(); // Berhenti secepat mungkin:set target baru stepper.runToPosition(); // Sekarang berhenti setelah quickstop // Beberapa flag berikut menentukan arah rotasi LeftTurnUp =1; KananTurnDown =0; Kontinu =1; // digunakan di bawah ini untuk membedakan perintah rotasi tunggal stepper.setCurrentPosition(stepper.currentPosition()); // Setel langkah 0 "di sini" stepper.setSpeed(kecepatan motor); // Perintah sebelumnya telah mengatur ulang kecepatan } if (incomingByte =='L') { Serial.println("menerima «L» - mengaktifkan rotasi berlawanan arah jarum jam terus menerus"); // Dua baris berikutnya memungkinkan untuk mengirim perintah dalam urutan apa pun:// sebelum eksekusi, penghentian cepat dilakukan stepper.stop(); // Berhenti secepat mungkin:set target baru stepper.runToPosition(); // Sekarang berhenti setelah quickstop // Beberapa flag berikut menentukan arah rotasi RightTurnDown =1; KiriTurnUp =0; Kontinu =1; // digunakan di bawah ini untuk membedakan perintah rotasi tunggal stepper.setCurrentPosition(stepper.currentPosition()); // Setel langkah 0 "di sini" stepper.setSpeed(kecepatan motor); // Perintah sebelumnya telah mereset kecepatan } if (incomingByte =='r') { Serial.println("received «r» - mengaktifkan satu putaran searah jarum jam"); // Dua baris berikutnya memungkinkan untuk mengirim perintah dalam urutan apa pun:// sebelum eksekusi, penghentian cepat dilakukan stepper.stop(); // Berhenti secepat mungkin:set target baru stepper.runToPosition(); // Sekarang berhenti setelah quickstop // Beberapa flag berikut menentukan arah rotasi LeftTurnUp =1; KananTurnDown =0; Kontinu =0; // digunakan di bawah ini untuk membedakan perintah rotasi tunggal stepper.setCurrentPosition(stepper.currentPosition()); // Setel langkah 0 "di sini" stepper.setSpeed(kecepatan motor); // Perintah sebelumnya telah mengatur ulang kecepatan // Karena saya harus melangkah maju 2047 langkah, saya menyimpan posisi // saya saat ini sebagai titik awal rotasi myPos=stepper.currentPosition(); } if (incomingByte =='l') { Serial.println("diterima «l» - mengaktifkan satu putaran berlawanan arah jarum jam"); // Dua baris berikutnya memungkinkan untuk mengirim perintah dalam urutan apa pun:// sebelum eksekusi, penghentian cepat dilakukan stepper.stop(); // Berhenti secepat mungkin:set target baru stepper.runToPosition(); // Sekarang berhenti setelah quickstop // Beberapa flag berikut menentukan arah rotasi RightTurnDown =1; KiriTurnUp =0; Kontinu =0; // digunakan di bawah ini untuk membedakan perintah rotasi tunggal stepper.setCurrentPosition(stepper.currentPosition()); // Setel langkah 0 "di sini" stepper.setSpeed(kecepatan motor); // Perintah sebelumnya telah mengatur ulang kecepatan // Karena saya harus mundur 2047 langkah, saya menyimpan posisi // saya saat ini sebagai titik awal rotasi myPos=stepper.currentPosition(); } if (incomingByte =='S') { Serial.println("menerima «S» - menghentikan rotasi"); // Reset flag yang menentukan arah rotasi LeftTurnUp =0; KananTurnDown =0; stepper.stop(); // Berhenti secepat mungkin:set target baru stepper.runToPosition(); // Sekarang berhenti setelah quickstop } } } if (Continuous ==1) // rotasi terus menerus { if (LeftTurnUp ==1) //belok kiri { stepper.moveTo(10000); //bergerak banyak langkah - lebih dari yang dibutuhkan secara mekanis } if (RightTurnDown ==1) //belok kanan { stepper.moveTo(-10000); //pindah banyak langkah - lebih dari yang dibutuhkan secara mekanis } stepper.run(); } if (Continuous ==0) // rotasi terus menerus { if (LeftTurnUp ==1) //belok kiri { stepper.moveTo(myPos+STEPS_PER_TURN); // 1 putaran =2048 langkah } if (TurnKanan ==1) //belok kanan { stepper.moveTo(myPos-STEPS_PER_TURN); // 1 putaran =2048 langkah } } stepper.run();} 

Skema

Sirkuit lengkap dibuat di Fritzing

Proses manufaktur

  1. Motor Stepper
  2. Driver terintegrasi memudahkan desain motor stepper
  3. Kipas dengan pengatur suhu
  4. Prototipe Raspoulette
  5. Turret Penjaga Nerf Otonom
  6. Perpustakaan Motor Stepper Bipolar
  7. Mainan yang Dikendalikan Android Menggunakan Raspberry Motor Shield
  8. Swiper - Auto Tinder/Bumble Swiper
  9. Apa itu Motor Linier?
  10. Apa itu Motor Servo?