สารบัญ:

Arduino Uno พร้อมสปินเดิลและพิทช์มอเตอร์: 19 ขั้นตอน
Arduino Uno พร้อมสปินเดิลและพิทช์มอเตอร์: 19 ขั้นตอน

วีดีโอ: Arduino Uno พร้อมสปินเดิลและพิทช์มอเตอร์: 19 ขั้นตอน

วีดีโอ: Arduino Uno พร้อมสปินเดิลและพิทช์มอเตอร์: 19 ขั้นตอน
วีดีโอ: ทำไมเเม่ไม่บอกกันเลย😂 #แป้งวิงค์ไวท์ 2024, พฤศจิกายน
Anonim
Image
Image
ทรัพยากรที่ใช้
ทรัพยากรที่ใช้

วันนี้เราจะมาพูดถึงหัวข้อที่สำคัญมากในกลศาสตร์และเมคคาทรอนิกส์: องค์ประกอบของเครื่องจักร ในบทความนี้ เราจะพูดถึงแกนหมุนโดยเฉพาะ ซึ่งมีฟีเจอร์และแอปพลิเคชั่นที่น่าสนใจ อย่างไรก็ตาม เราจะสาธิตวิธีการคำนวณการเคลื่อนที่ที่เกิดจากแกนหมุนและนำเสนอชุดทดสอบ

ฉันสร้างชุดประกอบด้านล่าง ซึ่งจะทำให้แกนหมุน 2 มม. และอีก 8 มม. ขยับได้ สปินเดิล TR8 ที่ฉันใช้นี้มักใช้กับเราเตอร์ขนาดเล็กและเครื่องพิมพ์ 3 มิติ โดยเฉพาะบนแกน Z จำไว้ว่าการฝึกฝนแนวคิดบางอย่างที่เราจะทำงานที่นี่ คุณจะสามารถออกแบบเครื่องจักรประเภทใดก็ได้

ขั้นตอนที่ 1: ทรัพยากรที่ใช้

  • แกนหมุนสี่เหลี่ยมคางหมูเส้นผ่านศูนย์กลาง 8 มม. และระยะพิทช์ 2 มม.
  • แกนหมุนสี่เหลี่ยมคางหมู เส้นผ่านศูนย์กลาง 8 มม. และระยะพิทช์ 8 มม.
  • เกาลัดหน้าแปลนแกน 8x2
  • แกนหมุน 8x8 เกาลัด
  • ตลับลูกปืนสำหรับแกนหมุนขนาดเส้นผ่านศูนย์กลาง 8 มม.
  • ไกด์ทรงกระบอกเชิงเส้น เส้นผ่านศูนย์กลาง 10 มม.
  • แบริ่งลูกกลิ้งทรงกระบอกสำหรับไกด์ 10 มม.
  • ตัวยึดสำหรับไกด์ทรงกระบอก 10 มม.
  • NEMA 17 Motors
  • ข้อต่อเพลา
  • Arduino Uno
  • ไดรเวอร์ DRV8825
  • แป้นพิมพ์เมทริกซ์ 4x4
  • จอแสดงผล Nokia 5110
  • ชิ้นส่วนพลาสติกเบ็ดเตล็ด
  • สลักเกลียวและถั่ว
  • ฐานไม้
  • แหล่งจ่ายไฟภายนอก 12V

ขั้นตอนที่ 2: เกี่ยวกับ Spindles - มันคืออะไร?

เกี่ยวกับ Spindles - มันคืออะไร?
เกี่ยวกับ Spindles - มันคืออะไร?

สปินเดิลเป็นส่วนประกอบของเครื่องจักร เช่น สกรู กล่าวคือเป็นเส้นตรงที่เกิดจากเกลียวต่อเนื่อง ใช้ในกลไกที่ต้องการการเคลื่อนที่และการวางตำแหน่งเชิงเส้น พวกเขาสามารถออกแรงดึงและแรงอัดสูงและส่งแรงบิด ช่วยให้เคลื่อนไหวได้ด้วยการล็อคอัตโนมัติ พวกเขาสามารถสร้างขึ้นจากวัสดุที่แตกต่างกันซึ่งเป็นอลูมิเนียมและเหล็กที่พบมากที่สุด

เนื่องจากบริษัทจีนกำลังผลิตสปินเดิลทรงสี่เหลี่ยมคางหมู เราขอแนะนำให้คุณซื้อผลิตภัณฑ์ประเภทนี้แทนน๊อตที่รู้จักกันดี นี่เป็นเพราะราคาที่น่าดึงดูดและการลากซึ่งฉันคิดว่าน่าเกลียด

ในภาพ ฉันใส่สปินเดิลที่ดีที่สุด ซึ่งในความคิดของฉัน นั่นคือสปินเดิลของลูกบอลหมุนเวียน มันมักจะทำจากเหล็กที่แข็งมากๆ และลูกบอลก็หมุนไปรอบๆ ข้างในเกาลัด นอกจากความแม่นยำที่ยอดเยี่ยมแล้ว ฉันยังเน้นถึงความทนทานด้วย เนื่องจากสปินเดิลประเภทนี้สามารถสร้างการเคลื่อนไหวได้หลายพันล้านครั้งโดยไม่ทำลายกลไก ตัวเลือกที่ถูกกว่า ซึ่งเราใช้ที่นี่คือแกนหมุนสี่เหลี่ยมคางหมู

ขั้นตอนที่ 3: เกี่ยวกับ Spindles - Single และ Ball Threads

เกี่ยวกับ Spindles - Single and Ball Threads
เกี่ยวกับ Spindles - Single and Ball Threads

ในภาพทางซ้าย สปินเดิลของลูกบอลจะมีลำคลองเป็นรูปครึ่งวงกลมที่ลูกบอลจะหมุน พวกมันค่อนข้างแพงกว่าและมีแรงเสียดทานต่ำเมื่อเทียบกับสปินเดิลแบบสกรูเดี่ยว ส่งผลให้ได้ผลผลิตสูงขึ้นมาก (แรงเสียดทานจากการกลิ้ง)

สปินเดิลแบบเกลียวเดียวทางด้านขวาของภาพมักจะมีโปรไฟล์สี่เหลี่ยมคางหมู เนื่องจากรูปทรงนี้เหมาะสมกว่าที่จะใช้แรงในทิศทางตามแนวแกนและการส่งผ่านการเคลื่อนไหวที่ราบรื่น พวกมันมีราคาไม่แพงนักและมีแรงเสียดทานสูงเมื่อเทียบกับสปินเดิลของลูกบอลหมุนเวียน ทำให้ได้ผลตอบแทนต่ำ กล่าวคือ แรงเสียดทานจากการลื่น

ขั้นตอนที่ 4: เกี่ยวกับ Spindles - Applications

เกี่ยวกับ Spindles - Applications
เกี่ยวกับ Spindles - Applications

สปินเดิลสามารถใช้ได้กับกลไกใดๆ ที่ต้องการการเคลื่อนที่เชิงเส้น มีการใช้กันอย่างแพร่หลายในอุตสาหกรรมเครื่องจักรและกระบวนการ

แอปพลิเคชั่นบางตัวรวมถึง:

  • ลิฟท์บรรทุกสินค้า
  • แท่นพิมพ์
  • สตรอเบอร์รี่และเครื่องกลึง
  • อุปกรณ์ CNC
  • เครื่องห่อ
  • เครื่องพิมพ์ 3 มิติ
  • อุปกรณ์ตัดและตัดด้วยเลเซอร์
  • กระบวนการทางอุตสาหกรรม
  • ระบบกำหนดตำแหน่งและการเคลื่อนที่เชิงเส้น

ขั้นตอนที่ 5: เกี่ยวกับแกนหมุน - พารามิเตอร์

เกี่ยวกับแกนหมุน - พารามิเตอร์
เกี่ยวกับแกนหมุน - พารามิเตอร์

มีลักษณะเฉพาะหลายอย่างของสปินเดิลที่ต้องนำมาพิจารณาเมื่อออกแบบกลไก นอกจากเส้นผ่านศูนย์กลางและระยะพิทช์แล้ว ยังจำเป็นต้องรับรู้กำลังรับแรงอัด โมเมนต์ความเฉื่อย (ความต้านทานการเปลี่ยนแปลงในสถานะการหมุน) วัสดุก่อสร้าง ความเร็วของการหมุนที่จะตกกระทบ ทิศทางการทำงาน (แนวนอน หรือแนวตั้ง) โหลดที่ใช้ เป็นต้น

แต่โดยอาศัยกลไกที่สร้างไว้แล้ว เราสามารถรับรู้พารามิเตอร์เหล่านี้ได้หลายตัว

มารู้จักความดีร่วมกันบ้าง มาเริ่มกันที่ STEP

ขั้นตอนที่ 6: เกี่ยวกับแกนหมุน - ขั้นตอน (การเคลื่อนที่และความเร็ว)

เกี่ยวกับ Spindles - Step (การกระจัดและความเร็ว)
เกี่ยวกับ Spindles - Step (การกระจัดและความเร็ว)

กำหนดความยาวที่น็อตเดินทางในแต่ละรอบ โดยปกติจะอยู่ในหน่วย มม. / รอบ

สปินเดิล 2 มม. ต่อรอบจะทำให้มีการกระจัด 2 มม. ในแต่ละรอบของสปินเดิล มันจะส่งผลต่อความเร็วเชิงเส้นของน็อต เนื่องจากเมื่อความเร็วของการหมุนเพิ่มขึ้น จำนวนรอบต่อหน่วยของเวลาจะเพิ่มขึ้น และทำให้ระยะทางที่เคลื่อนที่ไปด้วย

หากการหมุนรอบ 2 มม. ต่อการหมุนรอบหมุนที่ 60 รอบต่อนาที (หนึ่งรอบต่อวินาที) น็อตจะเคลื่อนที่ที่ 2 มม. ต่อวินาที

ขั้นตอนที่ 7: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ

ในการประกอบชิ้นส่วนของเรา ฉันมีมอเตอร์สองตัวและแป้นพิมพ์พร้อมจอแสดงผล ซึ่งดูเหมือนเครื่องคิดเลข เพราะฉันทำปกสำหรับพวกมันในเครื่องพิมพ์ 3 มิติ บนจอแสดงผลของ Nokia เรามีตัวเลือกดังต่อไปนี้:

F1: Crescent - Fuso เปลี่ยนจากตำแหน่งปัจจุบันไปยังตำแหน่งที่ฉันกำหนด

F2: จากมากไปน้อย - เทิร์น

F3: ความเร็ว - ฉันสามารถเปลี่ยนความกว้างพัลส์ได้ไหม

F4: ESC

ขั้นตอนที่ 8: การติดตั้ง - วัสดุ

การติดตั้ง - วัสดุ
การติดตั้ง - วัสดุ

ลิเนียร์ไกด์ A - 10 มม.

B - แกนหมุนสี่เหลี่ยมคางหมูของขั้นที่ 2 และ 8mm

C - ฐานเจาะ

D - ตลับลูกปืนสำหรับแกนหมุน

E - ที่ยึดไกด์

F - เกาลัด

G - แบริ่ง

H - ข้อต่อ

ฉัน - เครื่องยนต์

J - ชิ้นส่วนพลาสติกต่างๆ (เคอร์เซอร์, ขายึดเครื่องยนต์, เวดจ์, แป้นคีย์บอร์ด และจอแสดงผล

ขั้นตอนที่ 9: การประกอบ - ขั้นตอนที่ 01

การประกอบ - ขั้นตอนที่ 01
การประกอบ - ขั้นตอนที่ 01

หลังจากเจาะฐาน (C) เราประกอบมอเตอร์สองตัว (I) เราใช้วงเล็บที่ทำในเครื่องพิมพ์ 3 มิติ (J) ในการยึด อย่าขันสกรูใดๆ ในขั้นตอนการวางตำแหน่งนี้ ซึ่งจะช่วยให้สามารถปรับค่าที่จำเป็นในขั้นตอนการจัดตำแหน่งได้

ขั้นตอนที่ 10: การประกอบ - ขั้นตอนที่ 02

การประกอบ - ขั้นตอนที่ 02
การประกอบ - ขั้นตอนที่ 02

ยังคงติดตามการเจาะฐาน (C) วางตำแหน่งรางนำ (E) และแบริ่ง (D) รายละเอียดสำหรับแผ่นชิมพลาสติก (J) ใช้สำหรับปรับความสูงของตลับลูกปืน

ขั้นตอนที่ 11: การติดตั้ง - ขั้นตอนที่ 03

การติดตั้ง - ขั้นตอนที่ 03
การติดตั้ง - ขั้นตอนที่ 03

เราสร้างเคอร์เซอร์โดยใช้ส่วนที่พิมพ์เพื่อเชื่อมต่อแบริ่ง (G) กับน็อต (F) เราใช้เคอร์เซอร์สองตัว อันหนึ่งไปทางขวา อีกอันหนึ่งไปทางซ้าย หน้าที่ของมันคือการระบุตำแหน่งบนมาตราส่วนเมื่อใดก็ตามที่เราต้องการระบุการกระจัดที่เกิดจากแกนหมุน

ขั้นตอนที่ 12: การประกอบ - ขั้นตอนที่ 04

การประกอบ - ขั้นตอนที่ 04
การประกอบ - ขั้นตอนที่ 04
การประกอบ - ขั้นตอนที่ 04
การประกอบ - ขั้นตอนที่ 04

ใส่ไกด์ (A) และแกนหมุน (B) ในตลับลูกปืนตามลำดับ (D) และส่วนรองรับ (E) ตรงข้ามกับมอเตอร์ จากนั้นใส่ไกด์และแกนหมุนในตลับลูกปืน (G) และเกาลัด (F) และที่ ส่วนปลายของแกนหมุน เรายังใส่ข้อต่อ (H) ด้วย เรานำพวกเขาทั้งคู่ไปถึงจุดสุดท้าย (ตรงข้ามกับการสนับสนุนและมอเตอร์)

ขันสกรูให้แน่นเล็กน้อยเพื่อให้สามารถปรับได้ในภายหลัง ทำซ้ำขั้นตอนโดยใช้ไกด์และแกนหมุนที่เหลือ เมื่อวางส่วนประกอบทั้งหมดแล้ว เราจะทำการจัดตำแหน่งชิ้นส่วน เสร็จสิ้นขั้นตอนการประกอบทางกล

ขั้นตอนที่ 13: การติดตั้ง - อิเล็กทรอนิกส์

การติดตั้ง - อิเล็กทรอนิกส์
การติดตั้ง - อิเล็กทรอนิกส์
การติดตั้ง - อิเล็กทรอนิกส์
การติดตั้ง - อิเล็กทรอนิกส์
การติดตั้ง - อิเล็กทรอนิกส์
การติดตั้ง - อิเล็กทรอนิกส์

เรายึดจอแสดงผล Nokia 5110 และแป้นพิมพ์เมทริกซ์ขนาด 4x4 โดยใช้ที่ใส่พลาสติกที่พิมพ์ออกมา ในพื้นที่ด้านล่างของขาตั้งจะอยู่ที่ Arduino Uno ไดรเวอร์ DRV8825

เรายึดชุดประกอบโดยใช้การเจาะที่มีอยู่ในฐาน

ขั้นตอนที่ 14: โครงการไฟฟ้า

โครงการไฟฟ้า
โครงการไฟฟ้า

แผนภาพการเดินสายไฟนั้นง่าย เรามี DRV8825 และกระจก 17 อันเหมือนกัน นั่นคือขั้นตอนเดียวกันกับที่เราส่งไปยังอันหนึ่งไปยังอีกอันหนึ่ง สิ่งที่เปลี่ยนแปลงคือในเครื่องยนต์ตัวใดตัวหนึ่ง ฉันมีสปินเดิล 8 มม. และอีกอันมีสปินเดิล 2 มม. เห็นได้ชัดว่าอันแรกที่มีสปินเดิล 8 มม. เคลื่อนที่เร็วขึ้น ในไดอะแกรมยังมีจอแสดงผลและคีย์บอร์ด 4x4 ซึ่งต้องเป็นเมทริกซ์

ขั้นตอนที่ 15: รหัสที่มา

การรวมไลบรารีและการสร้างวัตถุ

เรามี Lib ที่ฉันทำซึ่งก็คือ StepDriver.h มันถูกเตรียมไว้สำหรับ 8825, 4988 และไดรเวอร์ TB6600 ด้วย ฉันสร้างในขั้นตอนนี้วัตถุ 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 comunicacao do display #include // Configuracao de pinos do Display ออก (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)) Adafruit_PCD8544 display = Adafruit_PCD8544(6, 5, 4, 3, 2); //Biblioteca de motor de passo #include // Instacia หรือไดรเวอร์ DRV8825 DRV8825 d1;

ค่าคงที่และตัวแปรส่วนกลาง

ในส่วนนี้ของรหัส ฉันปฏิบัติต่อเมทริกซ์ ซึ่งฉันสอนในบทเรียนวิดีโออื่น (LINK KEYBOARD) ฉันกำลังพูดถึงวัตถุปุ่มกด นอกจากระยะทางและความเร็ว

const ไบต์ LINHAS = 4; //número de linhas ทำ tecladoconst ไบต์ COLUNAS = 4; //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 '} }; ไบต์ PINOS_LINHA[LINHAS] = {A2, A3, A4, A5}; //pinos que indicam เป็น linhas ทำ teclado ไบต์ PINOS_COLUNA[COLUNAS] = {0, 1, A0, A1}; //pinos que indicam เป็น colunas do teclado //instancia de Keypad, responsável por capturar a tecla pressionada Keypad customKeypad = Keypad(makeKeymap(SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS); //variáveis resposnsáveis por armazenar o ความกล้าหาญ digitado ถ่าน customKey; ระยะทางไกลที่ไม่ได้ลงนาม = 0; velocidade ยาวที่ไม่ได้ลงนาม = 2000;

ฟังก์ชั่นการอ่านคีย์บอร์ด

ในขั้นตอนนี้ เรามีโค้ดที่อ้างอิงถึงจอแสดงผล ซึ่งทำงานเพิ่มขึ้นและลดลงในการพิมพ์

//Funcao ตอบกลับ por ler o valor do usuario pelo teclado-------------------------------------- --- lerValor ยาวที่ไม่ได้ลงนาม () {// ลบเมนูย่อย que coleta os valores ไม่แสดง display.clearDisplay (); display.fillRect(0, 0, 84, 11, 2); display.setCursor(27, 2); display.setTextColor(สีขาว); display.print("ความกล้าหาญ"); display.setTextColor (สีดำ); display.fillRect(0, 24, 21, 11, 2); display.setCursor(2, 26); display.setTextColor(สีขาว); display.print("CLR"); display.setTextColor (สีดำ); display.setCursor (23, 26); display.print("LIMPAR"); display.fillRect(0, 36, 21, 11, 2); display.setCursor(5, 38); display.setTextColor(สีขาว); display.print("F4"); display.setTextColor(สีดำ); display.setCursor (23, 38); display.print("โวลตาร์"); display.setCursor(2, 14); display.display(); ความกล้าหาญของสตริง = ""; ถ่าน tecla = เท็จ;

วนซ้ำรอการกดปุ่ม

ในที่นี้เราจะอธิบายการเขียนโปรแกรมแบบวนรอบ นั่นคือที่ที่คุณป้อนค่า

//วนซ้ำ infinito enquanto nao chamar o กลับในขณะที่ (1) { tecla = customKeypad.getKey (); if (tecla) { สวิตช์ (tecla) { //Se teclas de 0 a 9 forem pressionadas case '1': case '2': case '3': case '4': case '5': case '6': กรณี '7': กรณี '8': กรณี '9': กรณี '0': valor += tecla; display.print(tecla); display.display(); หยุดพัก; //Se tecla CLR foi pressionada case 'c': //Limpa a string valor valor = ""; // ความสามารถในการแสดงผล display.fillRect(2, 14, 84, 8, 0); display.setCursor(2, 14); display.display(); หยุดพัก; //Se tecla ENT foi pressionada case 'e': //Retorna o valor return valor.toInt(); // กำหนด tecla ENT foi pressionada case 'e': //Retorna o valor return valor.toInt(); หยุดพัก; //Se tecla F4 (ESC) กรณี foi pressionada 'D': return -1; ค่าเริ่มต้น: แตก; } } //Limpa o char tecla tecla = false; } }

ฟังก์ชั่นขับมอเตอร์

ฟังก์ชัน "ย้าย" ทำงานในขั้นตอนนี้ ฉันได้รับจำนวนพัลส์และทิศทาง จากนั้นฉันสร้าง "for"

//Funcao ตอบสนองต่อผู้เสนอญัตติหรือผู้เสนอญัตติ -------------------------------------- โมฆะผู้เสนอญัตติ (ไม่ได้ลงนาม pulsos แบบยาว, bool direcao) { สำหรับ (unsigned long i = 0; i < pulsos; i++) { d1.motorMove (direcao); } }

ติดตั้ง ()

ตอนนี้ฉันย้ายจอแสดงผลและการกำหนดค่าไดรเวอร์ และฉันยังใส่การปักหมุดไว้ในซอร์สโค้ดเพื่อให้ง่ายขึ้น ฉันเริ่มต้นค่าบางอย่างและจัดการกับวิธีการที่สร้างการตั้งค่า

การตั้งค่าเป็นโมฆะ () {// กำหนดค่าให้แสดง ---------------------------------------- -------- display.begin(); display.setContrast(50); display.clearDisplay(); display.setTextSize(1); display.setTextColor (สีดำ); //Configuração do Driver DRV8825 ----------------------------------------- // pin GND - เปิดใช้งาน (ENA) // พิน 13 - M0 // พิน 12 - M1 // พิน 11 - M2 // พิน 10 - รีเซ็ต (RST) // พิน 9 - สลีป (SLP) // พิน 8 - ขั้นตอน (STP)) // พิน 7 - ทิศทาง (DIR) d1.pinConfig(99, 13, 12, 11, 10, 9, 8, 7); d1.sleep(ต่ำ); d1.รีเซ็ต(); d1.stepPerMm(100); d1.stepPerRound(200); d1.stepConfig(1); d1.motionConfig(50, velocidade, 5000); }

loop () - ส่วนที่ 1 - เมนูการวาดภาพ

void loop() { //Escreve o Menu do Programa no display ----------------------------------- display.clearDisplay(); display.fillRect(0, 0, 15, 11, 2); display.setCursor(2, 2); display.setTextColor(สีขาว); display.print("F1"); display.setTextColor (สีดำ); display.setCursor(17, 2); display.print("CRESCENTE"); display.fillRect(0, 12, 15, 11, 2); display.setCursor(2, 14); display.setTextColor(สีขาว); display.print("F2"); display.setTextColor (สีดำ); display.setCursor(17, 14); display.print("DECRESCENTE"); display.fillRect(0, 24, 15, 11, 2); display.setCursor(2, 26); display.setTextColor(สีขาว); display.print("F3"); display.setTextColor (สีดำ); display.setCursor (17, 26); display.print("VELOCIDADE");

loop () - ตอนที่ 2 - เมนูการวาดภาพ

display.fillRect(0, 36, 15, 11, 2); display.setCursor(2, 38); display.setTextColor(สีขาว); display.print("F4"); display.setTextColor(สีดำ); display.setCursor (17, 38); display.print("ESC"); display.display(); bool esc = เท็จ;

loop () - ตอนที่ 3 - กำลังวิ่ง

//วนซ้ำ enquanto a tecla F4 (ESC) หนาวสำหรับ pressionada ในขณะที่ (!esc) { // จับ tecla pressionada ทำ teclado customKey = customKeypad.getKey (); //caso alguma tecla foi pressionada if (customKey) {// สวิตช์ Trata a tecla apertada (customKey) {// Se tecla F1 foi pressionada case 'A': distancia = lerValor (); // Se tecla ESC foi pressionada if (distancia == -1) { esc = true; } อื่น {// ลบข้อความ "Movendo" ไม่แสดง display.clearDisplay (); display.fillRect(0, 0, 84, 11, 2); display.setCursor(21, 2); display.setTextColor(สีขาว); display.print("MOVENDO"); display.setTextColor(สีดำ); display.setCursor(2, 14); display.print(ดิสแทนเซีย); display.print(" Passos"); display.display();

loop () - ตอนที่ 4 - กำลังวิ่ง

//ย้าย o ผู้เสนอญัตติ (distancia, LOW); //Volta ao เมนู esc = true; } หยุดพัก; //Se tecla F2 กรณี foi pressionada 'B': distancia = lerValor(); // Se tecla ESC foi pressionada if (distancia == -1) { esc = true; } อื่น {// ลบข้อความ "Movendo" ไม่แสดง display.clearDisplay (); display.fillRect(0, 0, 84, 11, 2); display.setCursor(21, 2); display.setTextColor(สีขาว); display.print("MOVENDO"); display.setTextColor (สีดำ); display.setCursor(2, 14); display.print(ดิสแทนเซีย); display.print(" Passos"); display.display();

loop () - ตอนที่ 5 - กำลังวิ่ง

// ย้าย o ผู้เสนอญัตติ (distancia, สูง); //Volta ao เมนู esc = true; } หยุดพัก; //Se tecla F3 foi pressionada case 'C': velocidade = lerValor(); ถ้า (velocidade == -1) { esc = true; } อื่น {// ลบข้อความ "Velocidade" ไม่แสดง display.clearDisplay (); display.fillRect(0, 0, 84, 11, 2); display.setCursor(12, 2); display.setTextColor(สีขาว); display.print("VELOCIDADE"); display.setTextColor (สีดำ); display.setCursor(2, 14); display.print(velocidade); display.print(ถ่าน(229)); display.print("s");

loop () - ตอนที่ 6 - กำลังวิ่ง

display.fillRect (31, 24, 21, 11, 2); display.setCursor (33, 26); display.setTextColor(สีขาว); display.println("ตกลง!"); display.setTextColor (สีดำ); display.display(); //กำหนดค่า nova velocidade ao motor d1.motionConfig(50, velocidade, 5000); ล่าช้า (2000); //Volta ao เมนู esc = true; } หยุดพัก; //Se tecla F4 (ESC) foi pressionada case 'D': //Se tecla CLR foi pressionada case 'c': //Se tecla ENT foi pressionada case 'e': //Volta ao เมนู esc = true; ค่าเริ่มต้น: แตก; } } // Limpa o ถ่าน customKey customKey = false; } }

ขั้นตอนที่ 16: เกี่ยวกับแกนหมุน - การกำหนดค่าเครื่อง

เกี่ยวกับ Spindles - การกำหนดค่าเครื่อง
เกี่ยวกับ Spindles - การกำหนดค่าเครื่อง

ในเครื่อง CNC เช่น เครื่องพิมพ์ 3D และเราเตอร์ เป็นต้น โปรแกรมที่รับผิดชอบการควบคุมตำแหน่งจำเป็นต้องรู้ว่าการเคลื่อนไหวจะเกิดขึ้นอย่างไรตามหน้าที่ของจำนวนพัลส์ที่กำหนดให้กับสเต็ปเปอร์มอเตอร์

หากตัวขับสเต็ปมอเตอร์อนุญาตให้ใช้ไมโครสเต็ป การกำหนดค่านี้จะต้องนำมาพิจารณาในการคำนวณการกระจัดที่เกิดขึ้น

ตัวอย่างเช่น หากมอเตอร์ 200 สเต็ปต่อการหมุนรอบเชื่อมต่อกับไดรเวอร์ที่ตั้งค่าเป็น 1/16 ดังนั้นจะต้องใช้พัลส์ 16 x 200 สำหรับการหมุนสปินเดิลเพียงครั้งเดียว นั่นคือ 3200 พัลส์สำหรับการหมุนแต่ละครั้ง หากสปินเดิลนี้มีระยะพิทช์ 2 มม. ต่อรอบ จะต้องใช้พัลส์ 3200 ในไดรเวอร์เพื่อให้น็อตเคลื่อนที่ 2 มม.

ในความเป็นจริง ผู้ควบคุมซอฟต์แวร์มักใช้เหตุผลเพื่อระบุอัตราส่วนนี้ "จำนวนพัลส์ต่อมิลลิเมตร" หรือ "ขั้นตอน/มม."

ขั้นตอนที่ 17: Marlin

มาร์ลิน
มาร์ลิน

ตัวอย่างเช่น ใน Marlin เราเห็นในส่วนการเคลื่อนไหว @section:

/ **

* ขั้นตอนแกนเริ่มต้นต่อหน่วย (ขั้นตอน / มม.)

* แทนที่ด้วย M92

* X, Y, Z, E0 [, E1 [, E2 [, E3 [, E4]

* /

#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 3200, 100}

ในตัวอย่างนี้ เราสามารถสรุปได้ว่าแกน X และ Y มีความแม่นยำ 80 พัลส์เพื่อเคลื่อนที่ 1 มม. ในขณะที่ Z ต้องการ 3200 พัลส์ และเครื่องอัดรีด E0 ต้องการ 100

ขั้นตอนที่ 18: GRBL

GRBL
GRBL

ด้านล่างเราจะเห็นคำสั่งการกำหนดค่า GRBL ด้วยคำสั่ง $ 100 เราสามารถปรับจำนวนพัลส์ที่จำเป็นในการทำให้เกิดออฟเซ็ตหนึ่งมิลลิเมตรบนแกน X

ในตัวอย่างด้านล่าง เราจะเห็นว่าค่าปัจจุบันคือ 250 พัลส์ต่อมิลลิเมตร

แกน Y และ Z สามารถตั้งค่าได้ตามลำดับ $ 101 และ $ 102

แนะนำ: