Dalam posting ini saya ingin berbicara tentang pembuatan taji satu tahap dengan bantuan mesin CNC yang diproduksi sebelumnya.

Belum lama ini, saya mendesain
mesin portal dengan CNC , artikel saya sebelumnya terletak tentang pengembangan dan konstruksi pada sumber daya ini.
Saya ingin segera mengatakan bahwa proyek ini hanya berfungsi untuk mendapatkan pengalaman dalam desain pasangan roda gigi sederhana dan pembuatannya untuk kemungkinan digunakan dalam proyek-proyek berikutnya.
Karena direncanakan untuk memproses tidak hanya kayu dan plastik, tetapi juga duralumin pada mesin yang diproduksi, menarik untuk membuat pasangan gigi hanya dari bahan ini.
Dengan ketersediaan, saya memiliki sisa lembaran duralumin setebal 6 mm. Sebagai drive, saya memutuskan untuk menggunakan Stepper Motor () 23HS8430, saya juga memilikinya dan berbaring di sekitar idle.
Desain dimulai dengan memodelkan seluruh mekanisme di lingkungan 3D Kompas, segera ada beberapa batasan, karena ukuran kecil dari duralumin kosong, dan ini mempengaruhi dimensi gigi yang digerakkan, serta jumlah dan ukuran gigi, karena saya memiliki diameter pemotong terkecil. , hanya 2mm, yang berarti bahwa jari-jari terkecil yang dengannya saya dapat menggambarkan kontur selama proses pembuatan adalah 1mm.
Mempertimbangkan semua batasan, saya memindahkan mesin ke model 3D dan kemudian mulai untuk mengabungkan seluruh detail dengannya ...
Sekarang, mengenai konstruksi pasangan roda gigi: dalam konfigurasi teknik Kompas 3D (v13) ada utilitas seperti "Perhitungan gigi taji roda gigi eksternal", kami melakukan perhitungan geometris di dalamnya, memasukkan parameter yang diperlukan: jumlah gigi, modul, dll. Saya tidak akan membahas hal ini, itu akan cukup untuk membaca bab tentang konstruksi roda gigi dari kursus mekanik: bagian-bagian mesin.

Utilitas yang digunakan oleh saya melakukan perhitungan dan konstruksi roda gigi, juga jika kesalahan terjadi selama perhitungan, itu menginformasikan tentang ini. Setelah perhitungan, ini akan menampilkan laporan dengan semua dimensi geometris. Dari situ, saya hanya membutuhkan jarak tengah, karena ia menarik persneling itu sendiri secara otomatis.

Untuk lebih menarik, saya memutuskan untuk membuat gigi dengan jumlah gigi yang berbeda dan rasio gigi 2: 1.

Berdasarkan jarak pusat, basis ditarik. Mesin dan sumbu dikawinkan dengan itu, di mana gigi digerakkan akan dipasang.

Setelah menyelesaikan desain 3D, saya mentransfer semua detail ke tampilan 2D dan menyimpannya dalam format vektor * .dxf.
Untuk memotong semua detail pada mesin, saya mengkonversi format vektor ke G-code melalui prosesor pos dalam program ArtCam. File yang dihasilkan diunggah ke mesin dan, setelah mengatur ulang koordinat, gunting semua detail.
Bantalan ditekan ke gigi penggerak, itu masuk cukup erat, karena saya meremehkan lubang oleh beberapa ratus bagian.
Secara terpisah, sumbu tempat gigi penggerak dipasang adalah mesin pada mesin bubut.
Kemudian semuanya cukup sederhana, merakit unit dalam satu, dan hanya tinggal memutarnya.
Tapi saya harus menunggu sebulan, karena saya tidak punya driver untuk SD, dan saya memesan driver DM542 pada Ali.
Agar SD berputar ke input driver, sinyal frekuensi diperlukan, untuk ini, saya memasang generator frekuensi dengan frekuensi variabel pada arduino uno menggunakan enkoder 24-pulsa yang terhubung secara eksternal.

Saya ingin membuat reservasi segera bahwa saya menemukan kode untuk firmware Arduino di Internet.
Generator frekuensi dapat: - Menghasilkan berliku-liku pada timer 16-bit. Rentang frekuensi 1Hz - 8MHz. Penyesuaian frekuensi dilakukan oleh enkoder. Hingga frekuensi 2,8 kHz, resolusinya adalah 1 hertz; pada frekuensi yang lebih tinggi, timer tidak dapat lagi mendukung resolusi ini dalam perangkat keras, oleh karena itu, frekuensi yang lebih tinggi disintesis dengan mengatur parameter ke frekuensi yang diinginkan, tetapi hanya menambah register perbandingan. Ternyata semakin tinggi frekuensinya - semakin besar langkah antara klik encoder. Memutar encoder, dengan tombol tidak ditekan, frekuensi berubah sebesar 1Hz; dengan tombol ditekan, satu langkah - 100Hz. Di atas 2.8kHz. rotasi encoder dengan tombol yang ditekan juga mempercepat hitungan. Tidak ada penekanan perangkat lunak terhadap pantulan kontak encoder, jadi Anda perlu menggantung kapasitor 0,01.0.1 mikrofarad. relatif terhadap bumi. Kapasitor adalah opsional pada tombol. Frekuensi yang dihitung secara matematis adalah output ke seri.
/* 1 Hz..8 MHz. A0 A1, A2. 0,01..0,1uf 2 . atmega328 (UNO,Nano, MiniPro) */ float freq; void setup() { pinMode (9,OUTPUT); // pinMode(A0,INPUT); // , - pinMode(A1,INPUT); // - . , . pinMode(A2,INPUT_PULLUP); // Serial.begin(9600); PCICR=1<<PCIE1; // PCINT PCMSK1=(1<<PCINT9);// 1 TCCR1A=1<<COM1A0; // OC1A TCCR1B=0;// } ISR (PCINT1_vect){ static boolean gen_mode=0; // static uint32_t enc=1; // uint32_t ocr=OCR1A; uint32_t divider=1; // . byte n=PINC&3; // boolean knopka = PINC&(1<<2); // 0- , 1- . if (freq<2848) gen_mode=0; // if (freq>=2848) gen_mode=1; // OCR // if (n==3||n==0){ if (gen_mode){if (knopka){ if(ocr>0) {ocr--; } } else { if(ocr>9)ocr-=10; } } else knopka? enc++ : enc+=100; // } //end GetUP // if (n==2||n==1){ if (gen_mode){ if (knopka){ if(ocr<65535) {ocr++; } } else { if(ocr<=65525)ocr+=10; } } else {if (knopka) { if (enc>=2)enc--; } else { if (enc>100) enc-=100; } } } //end GetDown if(gen_mode){ OCR1A=ocr; freq= (float)F_CPU/2 / (OCR1A+1); } else { // OCR divider=1; ocr = (F_CPU / enc /2 /divider) -1; if (ocr >65536) { divider=8; ocr = F_CPU / enc /2 /divider; if (ocr >65536) { divider=64; ocr = F_CPU / enc /2 /divider; if (ocr >65536) {divider=256; ocr = F_CPU / enc /2 /divider; if (ocr >65536) { divider=1024; ocr = F_CPU / enc /2 /divider; if (ocr >65536){ocr=65536; }}}}} OCR1A=ocr-1; // switch (divider) { case 1: TCCR1B=1|(1<<WGM12); break; case 8: TCCR1B=2|(1<<WGM12); break; case 64: TCCR1B=3|(1<<WGM12); break; case 256: TCCR1B=4|(1<<WGM12); break; case 1024: TCCR1B=5|(1<<WGM12); break; } freq= (float) F_CPU/2 / (OCR1A+1) /divider; } //end if !gen_mode } void loop() { if (freq <10000) { Serial.print(freq,1);Serial.println(" Hz "); } if (freq >10000) { Serial.print(freq/1000,3);Serial.println(" kHz");} delay(100); }
Setelah semuanya disusun, terhubung, dan diunggah ke sketsa di Arduino, Anda dapat melanjutkan untuk mengaktifkannya:
Sekarang tentang kerja mekanisme ini: rotasi dan kerja transmisi tidak buruk sama sekali bahkan dengan dering roda gigi. Akibatnya, ternyata untuk menaikkan gigi utama ke 12,5 putaran per detik, dan pada yang digerakkan, masing-masing, setengah dari jumlah tersebut. Frekuensi yang dihasilkan sekitar 5 kHz pada 400 pulsa / putaran. atur pada driver. Pada frekuensi ini, mesin belum menjadi pingsan, yang berarti bahwa dimungkinkan untuk memberikan frekuensi dan lebih banyak lagi.
Terima kasih sudah membaca! :)