In diesem Beitrag möchte ich über die Herstellung eines einstufigen Stirnradgetriebes mit Hilfe einer zuvor hergestellten CNC-Maschine sprechen.

Vor nicht allzu langer Zeit habe ich eine
Portalmaschine mit CNC entworfen . Mein vorheriger Artikel befasst sich mit ihrer Entwicklung und Konstruktion auf dieser Ressource.
Ich möchte gleich sagen, dass dieses Projekt nur dazu dient, Erfahrungen in der Konstruktion einfacher Zahnradpaare und deren Herstellung für eine mögliche Verwendung in nachfolgenden Projekten zu sammeln.
Da geplant war, nicht nur Holz und Kunststoffe, sondern auch Duraluminium auf der hergestellten Maschine zu verarbeiten, war es interessant, nur aus diesem Material ein Zahnradpaar herzustellen.
Je nach Verfügbarkeit hatte ich 6 mm dicke Duraluminiumfetzen. Als Antrieb habe ich mich für den Schrittmotor () 23HS8430 entschieden, ich hatte ihn auch und lag im Leerlauf herum.
Das Design begann mit der Modellierung des gesamten Mechanismus in der Compass 3D-Umgebung. Aufgrund der geringen Größe des Duraluminiumrohlings gab es sofort einige Einschränkungen, die sich entsprechend auf die Abmessungen des angetriebenen Zahnrads sowie auf die Anzahl und Größe der Zähne auswirkten, da ich den kleinsten Fräserdurchmesser hatte betrug nur 2 mm, was bedeutet, dass der kleinste Radius, mit dem ich die Kontur während des Herstellungsprozesses beschreiben kann, 1 mm beträgt.
In Anbetracht aller Einschränkungen übertrug ich die Engine auf ein 3D-Modell und begann dann, den Rest der Details damit zu verbinden ...
In Bezug auf die Konstruktion des Zahnradpaares: In der technischen Konfiguration von Compass 3D (v13) gibt es ein Dienstprogramm wie „Berechnungen des Stirnrads eines externen Zahnrads“. Wir führen darin eine geometrische Berechnung durch und geben die erforderlichen Parameter ein: Anzahl der Zähne, Modul usw. Ich werde nicht näher darauf eingehen, es wird ausreichen, das Kapitel über den Aufbau von Zahnrädern aus dem Verlauf der Mechanik zu lesen: Maschinenteile.

Das von mir verwendete Dienstprogramm führt die Berechnung und den Aufbau des Zahnrads durch. Auch wenn während der Berechnung Fehler auftreten, informiert es darüber. Nach der Berechnung wird ein Bericht mit allen geometrischen Abmessungen angezeigt. Davon brauchte ich nur den Achsabstand, da es das Zahnrad selbst automatisch zieht.

Für mehr Interesse habe ich mich entschieden, Zahnräder mit einer anderen Anzahl von Zähnen und einem Übersetzungsverhältnis von 2: 1 herzustellen.

Basierend auf dem Achsabstand wurde die Basis gezeichnet. Der Motor und die Achse wurden mit ihm verbunden, auf dem das angetriebene Zahnrad montiert wird.

Nach Abschluss des 3D-Entwurfs habe ich alle Details in eine 2D-Ansicht übertragen und im Vektor * .dxf-Format gespeichert.
Um alle Details auf der Maschine auszuschneiden, habe ich das Vektorformat über einen Postprozessor im ArtCam-Programm in G-Code konvertiert. Die resultierende Datei wurde auf die Maschine hochgeladen und nach dem Zurücksetzen der Koordinaten wurden alle Details ausgeschnitten.
Das Lager wurde in das angetriebene Zahnrad gedrückt, es trat ziemlich fest ein, da ich das Loch um mehrere hundert Teile unterschätzte.
Separat wird die Achse, auf der das angetriebene Zahnrad montiert ist, auf einer Drehmaschine bearbeitet.
Dann ist alles ganz einfach, das Gerät in einem zusammengebaut, und es bleibt nur noch zu verdrehen.
Aber ich musste einen Monat warten, weil ich keinen Treiber für die SD hatte und den DM542-Treiber bei Ali bestellte.
Damit sich die SD auf den Treibereingang dreht, ist ein Frequenzsignal erforderlich. Dazu habe ich mit einem extern angeschlossenen 24-Puls-Encoder einen Frequenzgenerator mit variabler Frequenz am Arduino uno zusammengebaut.

Ich möchte sofort reservieren, dass ich den Code für die Arduino-Firmware im Internet gefunden habe.
Der Frequenzgenerator kann: - einen Mäander auf einem 16-Bit-Timer erzeugen. Frequenzbereich 1Hz - 8MHz. Die Frequenzeinstellung wird von einem Encoder durchgeführt. Bis zu einer Frequenz von 2,8 kHz beträgt die Auflösung 1 Hertz, bei höheren Frequenzen kann der Timer diese Auflösung in der Hardware nicht mehr unterstützen. Daher werden höhere Frequenzen synthetisiert, indem der Parameter auf die gewünschte Frequenz eingestellt wird, aber einfach das Vergleichsregister erhöht wird. Je höher die Frequenz, desto größer der Schritt zwischen den Klicks des Encoders. Durch Drehen des Encoders ohne gedrückte Taste ändert sich die Frequenz um 1 Hz. bei gedrückter Taste einen Schritt - 100Hz. Über 2,8 kHz. Durch Drehen des Encoders mit der gedrückten Taste wird auch die Zählung beschleunigt. Es gibt keine Software-Unterdrückung des Abpralls der Geberkontakte, daher müssen Sie Kondensatoren mit 0,01..0,1 Mikrofarad aufhängen. relativ zur Erde. Ein Kondensator ist auf der Taste optional. Die mathematisch berechnete Frequenz wird an die Reihe ausgegeben.
/* 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); }
Nachdem alles zusammengestellt, verbunden und in die Skizze im Arduino hochgeladen wurde, können Sie fortfahren, sie einzuschalten:
Nun zur Arbeit dieses Mechanismus: Die Rotations- und Getriebearbeit ist selbst beim Klingeln der Zahnräder überhaupt nicht schlecht. Infolgedessen stellte sich heraus, dass das führende Zahnrad auf 12,5 Umdrehungen pro Sekunde und auf das angetriebene jeweils halb so hoch gefahren wurde. Die erzeugte Frequenz betrug etwa 5 kHz bei 400 Impulsen / Umdrehung. auf den Treiber setzen. Bei dieser Frequenz ist der Motor noch nicht betäubt, was bedeutet, dass es möglich war, eine Frequenz und mehr anzugeben.
Danke fürs Lesen! :) :)