في هذا المنشور ، أود أن أتحدث عن تصنيع معدات التروس أحادية المرحلة بمساعدة آلة CNC سابقة التصنيع.

منذ وقت ليس ببعيد ، صممت
آلة بوابة باستخدام CNC ، مقالتي السابقة حول تطويرها وبنائها على هذا المورد.
أريد أن أقول على الفور أن هذا المشروع يعمل فقط لاكتساب الخبرة في تصميم أزواج التروس البسيطة وتصنيعها للاستخدام المحتمل في المشاريع اللاحقة.
نظرًا لأنه تم التخطيط لمعالجة ليس فقط الخشب والبلاستيك ، ولكن أيضًا دورالومين على الماكينة المصنعة ، كان من المثير للاهتمام صنع زوج تروس فقط من هذه المادة.
حسب التوفر ، كان لدي قصاصات من ورقة duralumin 6 مم. كقيادة ، قررت استخدام محرك Stepper Motor () 23HS8430 ، وكان لدي أيضًا ذلك وكنت مستلقيًا في وضع الخمول.
بدأ التصميم بنمذجة الآلية بأكملها في بيئة البوصلة ثلاثية الأبعاد ، وعلى الفور كانت هناك العديد من القيود ، نظرًا لصغر حجم duralumin الفارغ ، وبالتالي أثر ذلك على أبعاد الترس المدفوع ، بالإضافة إلى عدد وحجم الأسنان ، حيث كان لدي أصغر قطر قاطع ، كان 2 مم فقط ، مما يعني أن أصغر نصف قطر يمكنني من خلاله وصف الكفاف أثناء عملية التصنيع هو 1 مم.
بالنظر إلى جميع القيود ، نقلت المحرك إلى نموذج ثلاثي الأبعاد ، ثم بدأت في التزاوج مع بقية التفاصيل ...
الآن ، فيما يتعلق ببناء زوج التروس: في التكوين الهندسي لـ Compass 3D (v13) هناك أداة مثل "حسابات الترس المحفز لعتاد خارجي" ، نقوم بإجراء حساب هندسي فيه ، وإدخال المعلمات المطلوبة: عدد الأسنان ، الوحدة النمطية ، إلخ. لن أخوض في هذا ، سيكون كافيًا قراءة الفصل الخاص ببناء التروس من مسار الميكانيكا: أجزاء الماكينة.

تقوم الأداة المساعدة التي أستخدمها بإجراء حساب وبناء الترس ، وأيضًا في حالة حدوث أخطاء أثناء الحساب ، فإنها تُبلغ عن ذلك. بعد الحساب ، يعرض تقريرًا بجميع الأبعاد الهندسية. من ذلك ، كنت بحاجة فقط إلى مسافة المركز ، لأنها ترسم الترس نفسه تلقائيًا.

لمزيد من الاهتمام ، قررت عمل تروس بعدد مختلف من الأسنان ونسبة تروس 2: 1.

بناءً على مسافة المركز ، تم رسم القاعدة. تم التزاوج بين المحرك والمحور ، حيث سيتم تركيب الترس المدفوع.

بعد إكمال التصميم ثلاثي الأبعاد ، قمت بنقل جميع التفاصيل إلى عرض ثنائي الأبعاد وحفظتها بتنسيق vector * .dxf.
من أجل قطع جميع التفاصيل الموجودة على الجهاز ، قمت بتحويل تنسيق المتجه إلى G-code من خلال معالج بريد في برنامج ArtCam. تم تحميل الملف الناتج إلى الجهاز ، وبعد إعادة تعيين الإحداثيات ، اقطع جميع التفاصيل.
تم الضغط على المحمل في العتاد المدفوع ، ودخل بإحكام بما فيه الكفاية ، حيث قللت من قيمة الحفرة بعدة مئات.
بشكل منفصل ، يتم تشكيل المحور الذي يتم تثبيت الترس المدفوع عليه على مخرطة.
ثم كل شيء بسيط للغاية ، وجمع الوحدة في وحدة واحدة ، ويبقى فقط ليلفها.
ولكن كان علي الانتظار لمدة شهر ، لأنني لم يكن لدي سائق SD ، وأمرت سائق DM542 على علي.
من أجل أن يدور SD على إدخال السائق ، يلزم إشارة تردد ، لهذا ، قمت بتجميع مولد تردد بتردد متغير على arduino uno باستخدام برنامج ترميز 24 نبض متصل خارجيًا.

أريد أن أجري حجزًا فورًا لأنني وجدت الرمز الخاص ببرامج Arduino الثابتة على الإنترنت.
يمكن لمولد التردد: - توليد متعرج على جهاز ضبط الوقت 16 بت. نطاق التردد من 1 هرتز إلى 8 ميجا هرتز. يتم تنفيذ تعديل التردد من قبل المشفر. حتى تردد 2.8 كيلوهرتز ، تبلغ الدقة 1 هرتز ؛ عند الترددات الأعلى ، لم يعد المؤقت قادرًا على دعم هذه الدقة في الأجهزة ؛ وبالتالي ، يتم توليف الترددات الأعلى عن طريق تعيين المعلمة على التردد المطلوب ، ولكن ببساطة زيادة سجل المقارنة. اتضح أنه كلما زاد التردد - زادت الخطوة بين نقرات التشفير. تدوير التشفير ، مع الضغط على الزر ، يتغير التردد بمقدار 1 هرتز ؛ مع الضغط على الزر ، خطوة واحدة - 100 هرتز. فوق 2.8 كيلو هرتز. كما يؤدي تدوير أداة التشفير باستخدام الزر المضغوط إلى تسريع عملية العد. لا يوجد قمع برمجيات لارتداد جهات اتصال التشفير ، لذلك تحتاج إلى تعليق المكثفات من 0.01..0.1 microfarads. نسبة إلى الأرض. مكثف اختياري على الزر. يتم إخراج التردد المحسوب رياضياً إلى السلسلة.
/* 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); }
بعد تجميع كل شيء وتوصيله وتحميله على الرسم في Arduino ، يمكنك المتابعة لتشغيله:
الآن عن عمل هذه الآلية: عمل الدوران والنقل ليس سيئًا على الإطلاق ، حتى مع رنين التروس. ونتيجة لذلك ، اتضح أنه رفع العتاد الرائد إلى 12.5 دورة في الثانية ، وعلى المحرك المدفوع ، على التوالي ، بمقدار النصف. كان التردد المولد حوالي 5 كيلو هرتز عند 400 نبضة / دورة. تعيين على السائق. عند هذا التردد ، لم يتحول المحرك بعد إلى ذهول ، مما يعني أنه كان من الممكن إعطاء تردد وأكثر.
شكرا للقراءة! :)