Dans cet article, je veux parler de la fabrication d'un engrenage droit à un étage avec l'aide d'une machine CNC précédemment fabriquée.

Il n'y a pas si longtemps, j'ai conçu une
machine à portail avec CNC , mon article précédent se situe sur son développement et sa construction sur cette ressource.
Je veux dire tout de suite que ce projet ne sert qu'à acquérir de l'expérience dans la conception de paires d'engrenages simples et leur fabrication pour une utilisation éventuelle dans des projets ultérieurs.
Comme il était prévu de traiter non seulement le bois et les plastiques, mais également le duralumin sur la machine fabriquée, il était intéressant de fabriquer une paire d'engrenages uniquement à partir de ce matériau.
Par disponibilité, j'avais des morceaux de feuille de duralumin de 6 mm d'épaisseur. En tant que lecteur, j'ai décidé d'utiliser le moteur pas à pas () 23HS8430, je l'avais aussi et je traînais au ralenti.
La conception a commencé par la modélisation de l'ensemble du mécanisme dans l'environnement Compass 3D, immédiatement il y avait plusieurs limitations, en raison de la petite taille de l'ébauche en duralumin, et cela affectait en conséquence les dimensions de l'engrenage entraîné, ainsi que le nombre et la taille des dents, car j'avais le plus petit diamètre de fraise , n'était que de 2 mm, ce qui signifie que le plus petit rayon avec lequel je peux décrire le contour pendant le processus de fabrication est de 1 mm.
Compte tenu de toutes les restrictions, j'ai transféré le moteur vers un modèle 3D, puis j'ai commencé à accoupler le reste des détails avec lui ...
Maintenant, en ce qui concerne la construction de la paire d'engrenages: dans la configuration d'ingénierie de Compass 3D (v13), il existe un utilitaire tel que «Calculs de l'engrenage droit de l'engrenage externe», nous y effectuons un calcul géométrique, en introduisant les paramètres requis: nombre de dents, module, etc. Je ne m'étendrai pas là-dessus, il suffira de lire le chapitre sur la construction des engrenages du cours de mécanique: les pièces de machines.

L'utilitaire utilisé par moi effectue le calcul et la construction de l'équipement, également si des erreurs se produisent pendant le calcul, il en informe. Après le calcul, il affiche un rapport avec toutes les dimensions géométriques. De là, je n'avais besoin que de la distance centrale, car il tire automatiquement le rapport.

Pour plus d'intérêt, j'ai décidé de faire des engrenages avec un nombre de dents différent et un rapport de démultiplication de 2: 1.

Sur la base de la distance centrale, la base a été dessinée. Le moteur et l'axe y ont été accouplés, sur lesquels sera monté le pignon mené.

Après avoir terminé la conception 3D, j'ai transféré tous les détails dans une vue 2D et les ai enregistrés au format vectoriel * .dxf.
Afin de découper tous les détails sur la machine, j'ai converti le format vectoriel en G-code via un post-processeur dans le programme ArtCam. Le fichier résultant a été téléchargé sur la machine et, après la réinitialisation des coordonnées, a coupé tous les détails.
Le roulement était enfoncé dans le pignon mené, il y est entré assez serré, car j'ai sous-estimé le trou de plusieurs centaines de pièces.
Séparément, l'axe sur lequel l'engrenage mené est monté est usiné sur un tour.
Ensuite, tout est assez simple, assemblé l'unité en un, et il ne reste plus qu'à le tordre.
Mais j'ai dû attendre un mois, car je n'avais pas de pilote pour le SD, et j'ai commandé le pilote DM542 sur Ali.
Pour que le SD tourne sur l'entrée du pilote, un signal de fréquence est nécessaire.Pour cela, j'ai assemblé un générateur de fréquence à fréquence variable sur l'arduino uno à l'aide d'un encodeur 24 impulsions connecté en externe.

Je veux faire une réservation tout de suite que j'ai trouvé le code du firmware arduino sur Internet.
Le générateur de fréquence peut: - générer un méandre sur une minuterie 16 bits. Gamme de fréquences 1 Hz - 8 MHz. Le réglage de la fréquence est effectué par un encodeur. Jusqu'à une fréquence de 2,8 kHz, la résolution est de 1 hertz; à des fréquences plus élevées, le minuteur ne peut plus prendre en charge cette résolution dans le matériel; par conséquent, les fréquences plus élevées sont synthétisées en définissant le paramètre sur la fréquence souhaitée, mais simplement en incrémentant le registre de comparaison. Il s'avère que plus la fréquence est élevée - plus le pas entre les clics de l'encodeur est important. En faisant tourner l'encodeur, sans appuyer sur le bouton, la fréquence change de 1 Hz; avec le bouton enfoncé, une étape - 100Hz. Au-dessus de 2,8 kHz. la rotation de l'encodeur avec le bouton enfoncé accélère également le comptage. Il n'y a pas de suppression logicielle du rebond des contacts de l'encodeur, vous devez donc suspendre des condensateurs de 0,01..0,1 microfarads. par rapport à la terre. Un condensateur est facultatif sur le bouton. La fréquence calculée mathématiquement est sortie dans la série.
/* 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); }
Une fois que tout est assemblé, connecté et téléchargé sur l'esquisse dans l'Arduino, vous pouvez procéder à son activation:
Passons maintenant au travail de ce mécanisme: le travail de rotation et de transmission n'est pas mal du tout, même avec la sonnerie des engrenages. En conséquence, il s'est avéré propulser la vitesse de pointe à 12,5 tours par seconde, et sur celle entraînée, respectivement, moitié moins. La fréquence générée était d'environ 5 kHz à 400 impulsions / tour. mis sur le pilote. A cette fréquence, le moteur n'est pas encore tombé dans une stupeur, ce qui signifie qu'il était possible de donner une fréquence en plus.
Merci d'avoir lu! :)