Daftar Isi:
- Langkah 1: Sumber Daya yang Digunakan
- Langkah 2: Tentang Spindle - Apa Itu?
- Langkah 3: Tentang Spindle - Benang Tunggal dan Bola
- Langkah 4: Tentang Spindle - Aplikasi
- Langkah 5: Tentang Spindle - Parameter
- Langkah 6: Tentang Spindle - Langkah (perpindahan dan Kecepatan)
- Langkah 7: Perakitan
- Langkah 8: Pemasangan - Bahan
- Langkah 9: Perakitan - Langkah 01
- Langkah 10: Perakitan - Langkah 02
- Langkah 11: Pemasangan - Langkah 03
- Langkah 12: Perakitan - Langkah 04
- Langkah 13: Pemasangan - Elektronik
- Langkah 14: Skema Listrik
- Langkah 15: Kode Sumber
- Langkah 16: Tentang Spindle - Konfigurasi Mesin
- Langkah 17: Marlin
- Langkah 18: GRBL
- Langkah 19: Lihat Lebih Banyak Pekerjaan Saya:
Video: Arduino Uno Dengan Spindle dan Pitch Motor: 19 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Hari ini kita akan berbicara tentang subjek yang sangat penting dalam mekanika dan mekatronik: elemen mesin. Pada artikel ini, kami akan secara khusus membahas spindel, yang menampilkan beberapa fitur dan aplikasi menarik. Namun, kami akan mendemonstrasikan beberapa cara menghitung gerakan yang disebabkan oleh spindel dan menyajikan rakitan uji.
Saya membuat rakitan di bawah, oleh karena itu, yang memperlihatkan gerak maju spindel 2mm dan yang lain 8mm. Spindle TR8 yang saya gunakan ini biasa digunakan pada router kecil dan printer 3D, terutama pada sumbu Z. Mengingat bahwa dengan menguasai beberapa konsep yang akan kita kerjakan di sini, Anda akan dapat mendesain segala jenis mesin.
Langkah 1: Sumber Daya yang Digunakan
- Spindel trapesium berdiameter 8mm dan pitch 2mm
- Spindel trapesium berdiameter 8mm dan pitch 8mm
- 8x2 spindel bergelang kastanye
- 8x8 spindel bergelang kastanye
- Bantalan untuk spindel berdiameter 8mm
- Panduan silinder linier berdiameter 10mm
- Bantalan rol silinder untuk pemandu 10mm
- Kurung untuk pemandu silinder 10mm
- NEMA 17 Motors
- Kopling poros
- Arduino Uno
- Pengemudi DRV8825
- Papan ketik matriks 4x4
- Tampilan Nokia 5110
- Bagian plastik lain-lain
- Baut dan mur
- Dasar kayu
- Catu daya 12V eksternal
Langkah 2: Tentang Spindle - Apa Itu?
Spindle adalah elemen mesin, seperti sekrup. Artinya, mereka adalah batang lurus yang dibentuk oleh utas langkah terus menerus. Mereka digunakan dalam mekanisme yang membutuhkan gerakan dan posisi linier. Mereka dapat mengerahkan kekuatan tarik dan tekan yang tinggi dan mengirimkan torsi. Mereka memungkinkan gerakan dengan penguncian otomatis. Mereka dapat dibuat dari bahan yang berbeda, menjadi aluminium dan baja yang paling umum.
Karena perusahaan Cina memproduksi spindel trapesium, saya sarankan Anda mendapatkan jenis produk ini daripada baut mur yang terkenal. Ini karena harga yang lebih menarik dan hambatan yang saya anggap mengerikan.
Di foto saya meletakkan spindel terbaik yang menurut saya adalah spindel bola resirkulasi. Biasanya terbuat dari baja yang sangat keras, dan bola berputar di sekitarnya, di dalam kastanye. Selain presisi yang luar biasa, saya juga menonjolkan daya tahannya, karena spindel jenis ini dapat mereproduksi miliaran gerakan tanpa merusak mekanismenya. Pilihan yang lebih murah, yang kami gunakan di sini, adalah spindel trapesium.
Langkah 3: Tentang Spindle - Benang Tunggal dan Bola
Gelendong bola, pada foto di sebelah kiri, memiliki saluran setengah lingkaran tempat bola menggelinding. Mereka relatif lebih mahal dan memiliki gesekan rendah dibandingkan dengan spindel sekrup tunggal, yang mengarah ke hasil yang jauh lebih tinggi (gesekan bergulir).
Spindel berulir tunggal di sisi kanan gambar biasanya memiliki profil trapesium, karena geometri ini lebih tepat untuk menerapkan gaya dalam arah aksial dan transmisi gerakan yang mulus. Mereka relatif murah dan memiliki gesekan tinggi dibandingkan dengan spindel bola resirkulasi, yang mengarah ke hasil yang rendah, yaitu gesekan slip.
Langkah 4: Tentang Spindle - Aplikasi
Spindle dapat diterapkan pada mekanisme apa pun di mana gerakan linier diperlukan. Mereka banyak digunakan dalam industri dalam mesin dan proses.
Beberapa aplikasi antara lain:
- Lift kargo
- Mesin press
- Stroberi dan mesin bubut
- Peralatan CNC
- Mesin Pembungkus
- Printer 3D
- Peralatan Pemotongan & Pemotongan Laser
- Proses industri
- Pemosisian dan sistem gerak linier
Langkah 5: Tentang Spindle - Parameter
Ada beberapa karakteristik spindel yang harus diperhitungkan saat merancang suatu mekanisme. Selain diameter dan pitchnya, perlu untuk mengenali kekuatan tekannya, momen inersianya (tahanan terhadap perubahan keadaan rotasinya), material konstruktif, kecepatan rotasi yang akan dikenakannya, arah operasi (horizontal). atau vertikal), beban yang diterapkan, antara lain.
Tetapi, berdasarkan mekanisme yang sudah dibangun, kita dapat mengetahui beberapa parameter ini.
Mari kita kenali beberapa kebaikan bersama. Mari kita mulai dengan LANGKAH.
Langkah 6: Tentang Spindle - Langkah (perpindahan dan Kecepatan)
Menentukan panjang yang ditempuh mur pada setiap putaran. Ini biasanya dalam mm / revolusi.
Spindel 2 mm per putaran akan menyebabkan perpindahan 2 mm pada setiap putaran yang dilakukan spindel. Ini akan mempengaruhi kecepatan linier mur, karena dengan meningkatnya kecepatan rotasi, jumlah putaran per satuan waktu akan meningkat dan akibatnya jarak yang ditempuh juga.
Jika putaran 2mm per putaran berputar pada 60 RPM (satu putaran per detik), mur akan bergerak dengan kecepatan 2mm per detik.
Langkah 7: Perakitan
Dalam perakitan kami, saya memiliki dua motor dan keyboard kami dengan tampilan, yang terlihat seperti kalkulator, karena saya membuat penutup untuk mereka di printer 3D. Pada layar Nokia, kami memiliki opsi berikut:
F1: Bulan Sabit - Fuso berpindah dari posisi saat ini ke posisi yang saya tentukan
F2: Menurun - Putar
F3: Kecepatan - Dapatkah saya mengubah lebar pulsa?
F4: ESC
Langkah 8: Pemasangan - Bahan
A - Panduan Linear 10mm
B - Spindel trapesium langkah 2 dan 8mm
C - Pangkalan Pengeboran
D - Bantalan untuk spindel
E - Pemegang panduan
F - Kacang kastanye
G - Bantalan
H - Kopling
I - Mesin
J - Berbagai bagian plastik (kursor, braket mesin, baji, penyangga keyboard, dan tampilan
Langkah 9: Perakitan - Langkah 01
Setelah mengebor alas (C), kami merakit dua motor (I). Untuk mengencangkannya, kami menggunakan tanda kurung yang dibuat di printer 3D (J). Jangan kencangkan sekrup apa pun dalam langkah pemosisian ini. Ini akan memungkinkan penyesuaian yang diperlukan dalam langkah penyelarasan.
Langkah 10: Perakitan - Langkah 02
Masih mengikuti pengeboran alas (C), posisikan rel pemandu (E) dan bantalan (D). Detail untuk shim plastik (J) yang digunakan untuk mengatur ketinggian bantalan.
Langkah 11: Pemasangan - Langkah 03
Kami membuat kursor menggunakan bagian yang dicetak untuk menghubungkan bantalan (G) ke mur (F). Kami menggunakan dua kursor, satu ke kanan dan ke kiri. Fungsinya untuk menunjukkan posisi pada skala setiap kali kita ingin menentukan perpindahan yang disebabkan oleh spindel.
Langkah 12: Perakitan - Langkah 04
Masukkan pemandu (A) dan spindel (B) pada bantalan masing-masing (D) dan penyangga (E), berlawanan dengan motor, kemudian masukkan pemandu dan spindel ke bantalan (G) dan kastanye (F) dan pada ujung spindel kami juga memasukkan coupler (H). Kami membawa mereka berdua sampai mereka mencapai titik akhir mereka (berlawanan dengan dukungan dan motor).
Kencangkan sekrup dengan ringan untuk memungkinkan penyesuaian nanti. Ulangi prosedur menggunakan pemandu dan penggulung yang tersisa. Dengan semua komponen diposisikan, kami melakukan penyelarasan bagian, menyelesaikan tahap perakitan mekanis.
Langkah 13: Pemasangan - Elektronik
Menggunakan dudukan plastik cetak, kami mengamankan layar Nokia 5110 dan keypad matriks 4x4. Di ruang bawah dudukan akan berada Arduino Uno, driver DRV8825.
Menggunakan pengeboran yang tersedia di pangkalan, kami mengencangkan rakitan.
Langkah 14: Skema Listrik
Diagram pengkabelan sederhana. Kami memiliki DRV8825 dan dua 17 cermin yang sama, yaitu, langkah yang sama yang kami kirim ke satu ke yang lain. Apa yang berubah adalah bahwa di salah satu mesin saya memiliki poros 8mm dan yang lain poros 2mm. Jelas, kemudian, bahwa yang pertama, dengan spindel 8mm, berjalan lebih cepat. Masih dalam diagram adalah tampilan dan keyboard 4x4, yang harus berupa matriks.
Langkah 15: Kode Sumber
Penyertaan perpustakaan dan pembuatan objek
Kami memiliki Lib yang saya lakukan, yaitu StepDriver.h. Ini disiapkan untuk driver 8825, 4988 dan juga TB6600. Saya membuat dalam langkah ini objek DRV8825, d1.
//Biblioteca responsável por capturar a tecla que foi pressionada no teclado#include //Biblioteca responsável pelos graficos do display #include //Biblioteca responsável pela comunicao do display #include //Configuracao de pinos do Display // pin 6 - Serial clock out (SCLK) // pin 5 - Serial data out (DIN) // pin 4 - Data/Command select (D/C) // pin 3 - LCD chip select (CS/CE) // pin 2 - LCD reset (RST) Tampilan Adafruit_PCD8544 = Adafruit_PCD8544(6, 5, 4, 3, 2); //Biblioteca de motor de passo #include //Instancia o driver DRV8825 DRV8825 d1;
Konstanta dan variabel global
Di bagian kode ini saya memperlakukan matriks, yang saya ajarkan dalam pelajaran video lain (LINK KEYBOARD). Tetap saja, saya berbicara tentang objek Keypad, selain jarak dan kecepatan.
byte const LINHAS = 4; //número de linhas melakukan tecladoconst byte COLUNAS = 4; //número de colunas do teclado //define uma matriz com os símbolos que deseja ser lido do teclado char SIMBOLOS[LINHAS][COLUNAS] = { {'A', '1', '2', '3'}, { 'B', '4', '5', '6'}, {'C', '7', '8', '9'}, {'D', 'c', '0', 'e '} }; byte PINOS_LINHA[LINHAS] = {A2, A3, A4, A5}; //pinos que indicam as linhas do teclado byte PINOS_COLUNA[COLUNAS] = {0, 1, A0, A1}; //menemukan indicam sebagai colunas melakukan teclado //instancia de Keypad, merespons dengan cepat Keypad customKeypad = Keypad(makeKeymap(SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); //variáveis resposnsáveis por armazenar o valor digitado char customKey; jarak jauh tak bertanda = 0; velocidade panjang tanpa tanda = 2000;
Fungsi membaca papan ketik
Pada langkah ini kita memiliki kode yang mengacu pada tampilan, yang berfungsi untuk menambah dan mengurangi pencetakan.
//Funcao responsavel por ler o valor do usuario pelo teclado-------------------------------------- ---unsigned long lerValor() { //Escreve o submenu que coleta os valores no display display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(27, 2); display.setTextColor(PUTIH); display.print("VALOR"); display.setTextColor(HITAM); display.fillRect(0, 24, 21, 11, 2); display.setCursor(2, 26); display.setTextColor(PUTIH); display.print("CLR"); display.setTextColor(HITAM); display.setCursor(23, 26); display.print("LIMPAR"); display.fillRect(0, 36, 21, 11, 2); display.setCursor(5, 38); display.setTextColor(PUTIH); display.print("F4"); display.setTextColor(HITAM); display.setCursor(23, 38); display.print("VOLTAR"); display.setCursor(2, 14); tampilan.tampilan(); Nilai string = ""; char tecla = salah;
perulangan menunggu tombol ditekan
Di sini kami menjelaskan pemrograman Loop, yaitu tempat Anda memasukkan nilai.
//Loop infinito enquanto nao chamar o return while (1) { tecla = customKeypad.getKey(); if (tecla) { switch (tecla) { //Se teclas de 0 a 9 forem pressionadas case '1': case '2': case '3': case '4': case '5': case '6': kasus '7': kasus '8': kasus '9': kasus '0': keberanian += tecla; display.print(tecla); tampilan.tampilan(); merusak; //Se tecla CLR untuk kasus pressionada 'c': //Limpa a string valor valor = ""; //Apaga o valor do display display.fillRect(2, 14, 84, 8, 0); display.setCursor(2, 14); tampilan.tampilan(); merusak; //Se tecla ENT foi pressionada case 'e': //Retorna o valor return valor.toInt(); merusak; //Se tecla F4 (ESC) untuk kasus pressionada 'D': return -1; default: istirahat; } } //Limpa o char tecla tecla = false; } }
Fungsi penggerak motor:
Fungsi "pindah" bekerja pada langkah ini. Saya mendapatkan jumlah pulsa dan arah dan kemudian saya membuat "untuk".
//Funcao responsavel por penggerak o motor--------------------------------------penggerak batal (tidak ditandatangani long pulsos, bool direcao) { for (unsigned long i = 0; i < pulsos; i++) { d1.motorMove(direcao); } }
mempersiapkan ()
Sekarang saya pindahkan tampilan dan konfigurasi driver, dan saya bahkan memasukkan pin ke dalam kode sumber untuk membuatnya lebih mudah. Saya menginisialisasi nilai-nilai tertentu dan menangani metode yang menghasilkan pengaturan.
void setup() { //Configuracao melakukan tampilan ---------------------------------------- -------- tampilan.begin(); display.setContrast(50); tampilan.clearDisplay(); display.setTextSize(1); display.setTextColor(HITAM); //Konfigurasi Driver DRV8825 ----------------------------------------- // pin GND - Aktifkan (ENA) // pin 13 - M0 // pin 12 - M1 // pin 11 - M2 // pin 10 - Reset (RST) // pin 9 - Sleep (SLP) // pin 8 - Langkah (STP) // pin 7 - Arah (DIR) d1.pinConfig(99, 13, 12, 11, 10, 9, 8, 7); d1.tidur(RENDAH); d1.reset(); d1.langkahPerMm(100); d1.stepPerRound(200); d1.stepConfig(1); d1.motionConfig(50, kecepatan, 5000); }
loop () - bagian pertama - Menu menggambar
void loop() { //Escreve o Menu melakukan Program tanpa tampilan ----------------------------------- tampilan.clearDisplay(); display.fillRect(0, 0, 15, 11, 2); display.setCursor(2, 2); display.setTextColor(PUTIH); display.print("F1"); display.setTextColor(HITAM); display.setCursor(17, 2); display.print("CRESCENTE"); display.fillRect(0, 12, 15, 11, 2); display.setCursor(2, 14); display.setTextColor(PUTIH); display.print("F2"); display.setTextColor(HITAM); display.setCursor(17, 14); display.print("DECRESCENTE"); display.fillRect(0, 24, 15, 11, 2); display.setCursor(2, 26); display.setTextColor(PUTIH); display.print("F3"); display.setTextColor(HITAM); display.setCursor(17, 26); display.print("VELOCIDADE");
loop () - Bagian 2 - Menu menggambar
display.fillRect(0, 36, 15, 11, 2); display.setCursor(2, 38); display.setTextColor(PUTIH); display.print("F4"); display.setTextColor(HITAM); display.setCursor(17, 38); display.print("ESC"); tampilan.tampilan(); bool esc = salah;
loop () - Bagian 3 - Berlari
//Loop enquanto a tecla F4 (ESC) nao untuk pressionada while (!esc) { //captura a tecla pressionada melakukan teclado customKey = customKeypad.getKey(); //caso alguma tecla foi pressionada if (customKey) { //Trata a tecla apertada switch (customKey) { //Se tecla F1 foi pressionada case 'A': distancia = lerValor(); //Se tecla ESC untuk pressionada if (distancia == -1) { esc = true; } else { //Escreve sebuah tela "Movendo" tanpa tampilan display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(21, 2); display.setTextColor(PUTIH); display.print("MOVENDO"); display.setTextColor(HITAM); display.setCursor(2, 14); display.print(jarak); display.print("Pass"); tampilan.tampilan();
loop () - Bagian 4 - Berlari
//Pindahkan penggerak motor(jarak, RENDAH); //Volta ao menu esc = true; } merusak; //Tecla F2 untuk kasus pressionada 'B': jarak = lerValor(); //Se tecla ESC untuk pressionada if (distancia == -1) { esc = true; } else { //Escreve sebuah tela "Movendo" tanpa tampilan display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(21, 2); display.setTextColor(PUTIH); display.print("MOVENDO"); display.setTextColor(HITAM); display.setCursor(2, 14); display.print(jarak); display.print("Pass"); tampilan.tampilan();
loop () - Bagian 5 - Berlari
//Pindahkan penggerak motor(jarak, TINGGI); //Volta ao menu esc = true; } merusak; //Tecla F3 untuk kasus pressionada 'C': velocidade = lerValor(); if (velocidade == -1) { esc = true; } else { //Escreve sebuah tela "Velocidade" tanpa tampilan display.clearDisplay(); display.fillRect(0, 0, 84, 11, 2); display.setCursor(12, 2); display.setTextColor(PUTIH); display.print("VELOCIDADE"); display.setTextColor(HITAM); display.setCursor(2, 14); display.print(velocidade); display.print(char(229)); display.print("s");
loop () - Bagian 6 - Berlari
display.fillRect(31, 24, 21, 11, 2); display.setCursor(33, 26); display.setTextColor(PUTIH); display.println("Oke!"); display.setTextColor(HITAM); tampilan.tampilan(); //Konfigurasi nova velocidade ao motor d1.motionConfig(50, velocidade, 5000); penundaan(2000); //Volta ao menu esc = true; } merusak; //Se tecla F4 (ESC) foi pressionada case 'D': //Se tecla CLR foi pressionada case 'c': //Se tecla ENT foi pressionada case 'e': //Volta ao menu esc = true; default: istirahat; } } //Limpa o char customKey customKey = false; } }
Langkah 16: Tentang Spindle - Konfigurasi Mesin
Pada mesin CNC seperti printer 3D dan router misalnya, program yang bertanggung jawab untuk kontrol pemosisian perlu mengetahui bagaimana gerakan akan terjadi sebagai fungsi dari jumlah pulsa yang diberikan ke motor stepper.
Jika penggerak motor langkah memungkinkan penerapan langkah mikro, konfigurasi ini harus diperhitungkan dalam perhitungan perpindahan yang dihasilkan.
Misalnya, jika motor 200 langkah per putaran dihubungkan ke driver yang disetel ke 1/16, maka 16 x 200 pulsa akan diperlukan untuk satu putaran spindel, yaitu, 3200 pulsa untuk setiap putaran. Jika spindel ini memiliki pitch 2mm per putaran, dibutuhkan 3200 pulsa pada driver agar mur bergerak 2mm.
Bahkan, pengontrol perangkat lunak sering menggunakan alasan untuk menentukan rasio ini, "jumlah pulsa per milimeter" atau "langkah / mm".
Langkah 17: Marlin
Di Marlin, misalnya, kita melihat di bagian @section motion:
/ **
* Langkah Sumbu Default Per Unit (langkah / mm)
* Ganti dengan M92
* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]
* /
#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}
Dalam contoh ini, kita dapat menyimpulkan bahwa sumbu X dan Y memiliki akurasi 80 pulsa untuk bergerak 1mm, sedangkan Z membutuhkan 3200 pulsa dan ekstruder E0 membutuhkan 100.
Langkah 18: GRBL
Di bawah ini kita melihat perintah konfigurasi GRBL. Dengan perintah $100, kita dapat mengatur jumlah pulsa yang diperlukan untuk menyebabkan offset satu milimeter pada sumbu X.
Pada contoh di bawah ini kita dapat melihat bahwa nilai arus adalah 250 pulsa per mm.
Sumbu Y dan Z dapat diatur masing-masing $ 101 dan $ 102.
Direkomendasikan:
Cara Mengontrol Drone Quadcopter Brushless DC Motor (Tipe 3 Kabel) dengan Menggunakan HW30A Motor Speed Controller dan Arduino UNO: 5 Langkah
Cara Mengontrol Motor DC Brushless Quadcopter Drone Quadcopter (Tipe 3 Kabel) dengan Menggunakan Pengontrol Kecepatan Motor HW30A dan Arduino UNO: Deskripsi: Pengontrol Kecepatan Motor HW30A dapat digunakan dengan baterai LiPo 4-10 NiMH/NiCd atau 2-3 sel. BEC berfungsi dengan hingga 3 sel LiPo. Dapat digunakan untuk mengontrol kecepatan motor DC Brushless (3 kabel) dengan maksimum hingga 12Vdc. Spesifik
Roll and Pitch Axis Gyro untuk GoPro Menggunakan Arduino - Servo dan MPU6050 Gyro: 4 Langkah
Roll and Pitch Axis Gimbal untuk GoPro Menggunakan Arduino - Servo dan MPU6050 Gyro: Instruksi ini dibuat untuk memenuhi persyaratan proyek Makecourse di University of South Florida (www.makecourse.com)Tujuan dari proyek ini adalah untuk membangun sebuah 3-axis Gimbal untuk GoPro dengan menggunakan Arduino nano + 3 motor servo +
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: 5 Langkah (dengan Gambar)
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: Mengontrol 8 sakelar relai menggunakan nodemcu dan penerima ir melalui wifi dan ir remote dan aplikasi android.Remote ir bekerja terlepas dari koneksi wifi.INI VERSI TERBARU KLIK DI SINI
Tampilan Suhu dan Kelembaban dan Pengumpulan Data Dengan Arduino dan Pemrosesan: 13 Langkah (dengan Gambar)
Tampilan Suhu dan Kelembaban dan Pengumpulan Data Dengan Arduino dan Pemrosesan: Pendahuluan: Ini adalah Proyek yang menggunakan papan Arduino, Sensor (DHT11), komputer Windows dan program Pemrosesan (dapat diunduh gratis) untuk menampilkan data Suhu, Kelembaban dalam format digital dan bentuk grafik batang, menampilkan waktu dan tanggal dan menjalankan hitungan waktu
Technics SL-1200/1210 Penggantian dan Penyesuaian Pitch Slider: 10 Langkah
Technics SL-1200/1210 Penggantian dan Penyesuaian Pitch Slider: Jadi pitch slider Anda terasa seperti penuh pasir? Waktu untuk memperbaikinya. Instruksi ini akan menunjukkan cara mengganti penggeser pitch yang aus pada meja putar Technics SL-1200/1210. Ini juga akan menunjukkan cara menyesuaikan nilai nada +6% jika telah melayang atau