在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arduino Nano和DVD驅(qū)動(dòng)器步進(jìn)電機(jī)制造自己的CNC機(jī)器

454398 ? 來(lái)源:wv ? 2019-10-25 09:49 ? 次閱讀

第1步:簡(jiǎn)介

會(huì)嘗試解釋如何使用Arduino Nano和DVD驅(qū)動(dòng)器步進(jìn)電機(jī)制造自己的 CNC機(jī)器。如今,對(duì)于創(chuàng)建者而言,CNC機(jī)床已經(jīng)成為一個(gè)非常有趣的話題。

在開(kāi)始構(gòu)建過(guò)程之前,這個(gè)可指導(dǎo)的項(xiàng)目由JLCPCB贊助。我已經(jīng)訂購(gòu)了JLCPCB的現(xiàn)成PCB,價(jià)格僅為2美元。

步驟2:必需的零件

要制造此數(shù)控機(jī)床,我使用了以下零件:

1)1 x Arduino Nano

2)2 x L293D電機(jī)驅(qū)動(dòng)器IC =它驅(qū)動(dòng)步進(jìn)電機(jī)。

3)1 x LM7805穩(wěn)壓器 =它為電路板提供5伏電源

4)2 x 16引腳IC基座

5)1個(gè) 1K電阻

6)1個(gè) LED

7)2 x DVD驅(qū)動(dòng)器步進(jìn)電機(jī) =您可以從舊的DVD驅(qū)動(dòng)器中獲得步進(jìn)電機(jī)。

8)1 x Tower Pro SG90微型伺服電機(jī)

9)2 x 15個(gè)2.54mm母頭連接器

10)1 x 3針2.54mm母頭連接器

11)2 x 4針Relimate插頭連接器

12)2 x 4針Relimate插頭連接器

13)2 x 2針Relimate公頭連接器

注意:圖庫(kù)中列出了所有必需的部件,因此請(qǐng)務(wù)必將其檢出!

步驟3:電路圖和PCB制作

電路圖如圖所示。為該電路制作PCB時(shí),我使用JLCPCB網(wǎng)站從其網(wǎng)站上訂購(gòu)在線PCB,

首先轉(zhuǎn)到JLCPCB,然后單擊立即購(gòu)買,然后上傳您的Gerber文件,我已提供了Gerber文件供打印。上傳完成后,您可以檢查PCB的外觀。然后進(jìn)一步處理以訂購(gòu) PCB(僅售2美元)。而已。

步驟4:構(gòu)建過(guò)程

在印刷電路板上,首先將所有零件安裝在其位置,然后將它們焊接在正確的位置,如圖所示。如圖所示,將四線焊接到連接器的步進(jìn)電機(jī)上。焊接完成后,現(xiàn)在您可以安裝其他組件,例如Arduino Nano,驅(qū)動(dòng)器IC和連接器,如圖所示。

將DVD步進(jìn)電機(jī),伺服電機(jī)和電源線的公連接器連接到PCB上正確的母連接器中。

現(xiàn)在是時(shí)候?qū)⒋a上傳到 Arduino Nano 。

第5步:將代碼上傳到Arduino Nano

首先從Arduino網(wǎng)站下載Arduino IDE軟件。然后打開(kāi)Arduino IDE軟件。并復(fù)制粘貼代碼。

然后轉(zhuǎn)到工具》選擇 Arduino開(kāi)發(fā)板,在本例中為Arduino Nano。

,然后從工具菜單中選擇正確的端口

完成將您的代碼上傳到Arduino Nano。

#include

#include

#define LINE_BUFFER_LENGTH 512

const int penZUp = 80;

const int penZDown = 40;

const int penServoPin = 6;

const int stepsPerRevolution = 20;

Servo penServo;

Stepper myStepperY(stepsPerRevolution, 2,3,4,5);

Stepper myStepperX(stepsPerRevolution, 8,9,10,11);

struct point {

float x;

float y;

float z;

};

struct point actuatorPos;

float StepInc = 1;

int StepDelay = 0;

int LineDelay = 50;

int penDelay = 50;

float StepsPerMillimeterX = 6.0;

float StepsPerMillimeterY = 6.0;

float Xmin = 0;

float Xmax = 40;

float Ymin = 0;

float Ymax = 40;

float Zmin = 0;

float Zmax = 1;

float Xpos = Xmin;

float Ypos = Ymin;

float Zpos = Zmax;

boolean verbose = false;

void setup() {

Serial.begin( 9600 );

penServo.attach(penServoPin);

penServo.write(penZUp);

delay(200);

myStepperX.setSpeed(250);

myStepperY.setSpeed(250);

Serial.println(“Mini CNC Plotter alive and kicking!”);

Serial.print(“X range is from ”);

Serial.print(Xmin);

Serial.print(“ to ”);

Serial.print(Xmax);

Serial.println(“ mm.”);

Serial.print(“Y range is from ”);

Serial.print(Ymin);

Serial.print(“ to ”);

Serial.print(Ymax);

Serial.println(“ mm.”);

}

void loop()

{

delay(200);

char line[ LINE_BUFFER_LENGTH ];

char c;

int lineIndex;

bool lineIsComment, lineSemiColon;

lineIndex = 0;

lineSemiColon = false;

lineIsComment = false;

while (1) {

while ( Serial.available()》0 ) {

c = Serial.read();

if (( c == ‘ ’) || (c == ‘ ’) ) {

if ( lineIndex 》 0 ) {

line[ lineIndex ] = ‘’;

if (verbose) {

Serial.print( “Received : ”);

Serial.println( line );

}

processIncomingLine( line, lineIndex );

lineIndex = 0;

}

else {

}

lineIsComment = false;

lineSemiColon = false;

Serial.println(“ok”);

}

else {

if ( (lineIsComment) || (lineSemiColon) ) { // Throw away all comment characters

if ( c == ‘)’ ) lineIsComment = false; // End of comment. Resume line.

}

else {

if ( c 《= ‘ ’ ) { // Throw away whitepace and control characters

}

else if ( c == ‘/’ ) { // Block delete not supported. Ignore character.

}

else if ( c == ‘(’ ) { // Enable comments flag and ignore all characters until ‘)’ or EOL.

lineIsComment = true;

}

else if ( c == ‘;’ ) {

lineSemiColon = true;

}

else if ( lineIndex 》= LINE_BUFFER_LENGTH-1 ) {

Serial.println( “ERROR - lineBuffer overflow” );

lineIsComment = false;

lineSemiColon = false;

}

else if ( c 》= ‘a(chǎn)’ && c 《= ‘z’ ) { // Upcase lowercase

line[ lineIndex++ ] = c-‘a(chǎn)’+‘A’;

}

else {

line[ lineIndex++ ] = c;

}

}

}

}

}

}

void processIncomingLine( char* line, int charNB ) {

int currentIndex = 0;

char buffer[ 64 ]; // Hope that 64 is enough for 1 parameter

struct point newPos;

newPos.x = 0.0;

newPos.y = 0.0;

// Needs to interpret

// G1 for moving

// G4 P300 (wait 150ms)

// G1 X60 Y30

// G1 X30 Y50

// M300 S30 (pen down)

// M300 S50 (pen up)

// Discard anything with a (

// Discard any other command!

while( currentIndex 《 charNB ) {

switch ( line[ currentIndex++ ] ) { // Select command, if any

case ‘U’:

penUp();

break;

case ‘D’:

penDown();

break;

case ‘G’:

buffer[0] = line[ currentIndex++ ]; // /! Dirty - Only works with 2 digit commands

// buffer[1] = line[ currentIndex++ ];

// buffer[2] = ‘’;

buffer[1] = ‘’;

switch ( atoi( buffer ) ){ // Select G command

case 0: // G00 & G01 - Movement or fast movement. Same here

case 1:

// /! Dirty - Suppose that X is before Y

char* indexX = strchr( line+currentIndex, ‘X’ ); // Get X/Y position in the string (if any)

char* indexY = strchr( line+currentIndex, ‘Y’ );

if ( indexY 《= 0 ) {

newPos.x = atof( indexX + 1);

newPos.y = actuatorPos.y;

}

else if ( indexX 《= 0 ) {

newPos.y = atof( indexY + 1);

newPos.x = actuatorPos.x;

}

else {

newPos.y = atof( indexY + 1);

indexY = ‘’;

newPos.x = atof( indexX + 1);

}

drawLine(newPos.x, newPos.y );

// Serial.println(“ok”);

actuatorPos.x = newPos.x;

actuatorPos.y = newPos.y;

break;

}

break;

case ‘M’:

buffer[0] = line[ currentIndex++ ]; // /! Dirty - Only works with 3 digit commands

buffer[1] = line[ currentIndex++ ];

buffer[2] = line[ currentIndex++ ];

buffer[3] = ‘’;

switch ( atoi( buffer ) ){

case 300:

{

char* indexS = strchr( line+currentIndex, ‘S’ );

float Spos = atof( indexS + 1);

// Serial.println(“ok”);

if (Spos == 30) {

penDown();

}

if (Spos == 50) {

penUp();

}

break;

}

case 114: // M114 - Repport position

Serial.print( “Absolute position : X = ” );

Serial.print( actuatorPos.x );

Serial.print( “ - Y = ” );

Serial.println( actuatorPos.y );

break;

default:

Serial.print( “Command not recognized : M”);

Serial.println( buffer );

}

}

}

}

void drawLine(float x1, float y1) {

if (verbose)

{

Serial.print(“fx1, fy1: ”);

Serial.print(x1);

Serial.print(“,”);

Serial.print(y1);

Serial.println(“”);

}

if (x1 》= Xmax) {

x1 = Xmax;

}

if (x1 《= Xmin) {

x1 = Xmin;

}

if (y1 》= Ymax) {

y1 = Ymax;

}

if (y1 《= Ymin) {

y1 = Ymin;

}

if (verbose)

{

Serial.print(“Xpos, Ypos: ”);

Serial.print(Xpos);

Serial.print(“,”);

Serial.print(Ypos);

Serial.println(“”);

}

if (verbose)

{

Serial.print(“x1, y1: ”);

Serial.print(x1);

Serial.print(“,”);

Serial.print(y1);

Serial.println(“”);

}

// Convert coordinates to steps

x1 = (int)(x1*StepsPerMillimeterX);

y1 = (int)(y1*StepsPerMillimeterY);

float x0 = Xpos;

float y0 = Ypos;

// Let‘s find out the change for the coordinates

long dx = abs(x1-x0);

long dy = abs(y1-y0);

int sx = x0

long i;

long over = 0;

if (dx 》 dy) {

for (i=0; i=dx) {

over-=dx;

myStepperY.step(sy);

}

delay(StepDelay);

}

}

else {

for (i=0; i=dy) {

over-=dy;

myStepperX.step(sx);

}

delay(StepDelay);

}

}

if (verbose)

{

Serial.print(“dx, dy:”);

Serial.print(dx);

Serial.print(“,”);

Serial.print(dy);

Serial.println(“”);

}

if (verbose)

{

Serial.print(“Going to (”);

Serial.print(x0);

Serial.print(“,”);

Serial.print(y0);

Serial.println(“)”);

}

delay(LineDelay);

Xpos = x1;

Ypos = y1;

}

void penUp() {

penServo.write(penZUp);

delay(LineDelay);

Zpos=Zmax;

if (verbose) {

Serial.println(“Pen up!”);

}

}

void penDown() {

penServo.write(penZDown);

delay(LineDelay);

Zpos=Zmin;

if (verbose) {

Serial.println(“Pen down.”);

}

}

第6步:下載處理軟件

首先從It’s網(wǎng)站下載處理軟件。

復(fù)制將以下代碼粘貼到處理軟件中。

然后運(yùn)行程序。您會(huì)看到新對(duì)話框打開(kāi)。現(xiàn)在將arduino nano連接到臺(tái)式機(jī)。

按P按鈕選擇您的arduino nano板可用的端口。

然后按G按鈕上傳測(cè)試Gerber文件。

import java.awt.event.KeyEvent;

import javax.swing.JOptionPane;

import processing.serial.*;

Serial port = null;

// select and modify the appropriate line for your operating system

// leave as null to use interactive port (press ‘p’ in the program)

String portname = null;

//String portname = Serial.list()[0]; // Mac OS X

//String portname = “/dev/ttyUSB0”; // Linux

//String portname = “COM6”; // Windows

boolean streaming = false;

float speed = 0.001;

String[] gcode;

int i = 0;

void openSerialPort()

{

if (portname == null) return;

if (port != null) port.stop();

port = new Serial(this, portname, 9600);

port.bufferUntil(‘ ’);

}

void selectSerialPort()

{

String result = (String) JOptionPane.showInputDialog(frame,

“Select the serial port that corresponds to your Arduino board.”,

“Select serial port”,

JOptionPane.QUESTION_MESSAGE,

null,

Serial.list(),

0);

if (result != null) {

portname = result;

openSerialPort();

}

}

void setup()

{

size(600, 400);

openSerialPort();

}

void draw()

{

background(155);

fill(0);

int y = 24, dy = 12;

text(“INSTRUCTIONS”, 12, y); y += dy;

text(“p: select serial port”, 12, y); y += dy;

text(“1: set speed to 0.001 inches (1 mil) per jog”, 12, y); y += dy;

text(“2: set speed to 0.010 inches (10 mil) per jog”, 12, y); y += dy;

text(“3: set speed to 0.100 inches (100 mil) per jog”, 12, y); y += dy;

text(“arrow keys: jog in x-y plane”, 12, y); y += dy;

text(“page up & page down: jog in z axis”, 12, y); y += dy;

text(“$: display grbl settings”, 12, y); y+= dy;

text(“h: go home”, 12, y); y += dy;

text(“0: zero machine (set home to the current location)”, 12, y); y += dy;

text(“g: stream a g-code file”, 12, y); y += dy;

text(“x: stop streaming g-code (this is NOT immediate)”, 12, y); y += dy;

y = height - dy;

text(“current jog speed: ” + speed + “ inches per step”, 12, y); y -= dy;

text(“current serial port: ” + portname, 12, y); y -= dy;

}

void keyPressed()

{

if (key == ‘1’) speed = 0.001;

if (key == ‘2’) speed = 0.01;

if (key == ‘3’) speed = 0.1;

if (!streaming) {

if (keyCode == LEFT) port.write(“G91 G20 G00 X-” + speed + “ Y0.000 Z0.000 ”);

if (keyCode == RIGHT) port.write(“G91 G20 G00 X” + speed + “ Y0.000 Z0.000 ”);

if (keyCode == UP) port.write(“G91 G20 G00 X0.000 Y” + speed + “ Z0.000 ”);

if (keyCode == DOWN) port.write(“G91 G20 G00 X0.000 Y-” + speed + “ Z0.000 ”);

if (keyCode == KeyEvent.VK_PAGE_UP) port.write(“G91 G20 G00 X0.000 Y0.000 Z” + speed + “ ”);

if (keyCode == KeyEvent.VK_PAGE_DOWN) port.write(“G91 G20 G00 X0.000 Y0.000 Z-” + speed + “ ”);

if (key == ‘h’) port.write(“G90 G20 G00 X0.000 Y0.000 Z0.000 ”);

if (key == ‘v’) port.write(“$0=75 $1=74 $2=75 ”);

//if (key == ‘v’) port.write(“$0=100 $1=74 $2=75 ”);

if (key == ‘s’) port.write(“$3=10 ”);

if (key == ‘e’) port.write(“$16=1 ”);

if (key == ‘d’) port.write(“$16=0 ”);

if (key == ‘0’) openSerialPort();

if (key == ‘p’) selectSerialPort();

if (key == ‘) port.write(“$ ”);

}

if (!streaming && key == ’g‘) {

gcode = null; i = 0;

File file = null;

println(“Loading file.。.”);

selectInput(“Select a file to process:”, “fileSelected”, file);

}

if (key == ’x‘) streaming = false;

}

void fileSelected(File selection) {

if (selection == null) {

println(“Window was closed or the user hit cancel.”);

} else {

println(“User selected ” + selection.getAbsolutePath());

gcode = loadStrings(selection.getAbsolutePath());

if (gcode == null) return;

streaming = true;

stream();

}

}

void stream()

{

if (!streaming) return;

while (true) {

if (i == gcode.length) {

streaming = false;

return;

}

if (gcode[i].trim().length() == 0) i++;

else break;

}

println(gcode[i]);

port.write(gcode[i] + ’ ‘);

i++;

}

void serialEvent(Serial p)

{

String s = p.readStringUntil(’ ‘);

println(s.trim());

if (s.trim().startsWith(“ok”)) stream();

if (s.trim().startsWith(“error”)) stream(); // XXX: really?

}

步驟7:將Gerber文件上傳到Arduino開(kāi)發(fā)板

按下G按鈕后,您可以將Gerber文件上傳到開(kāi)發(fā)板上。而已。現(xiàn)在您的CNC機(jī)床將完成其工作。

步驟8:CNC機(jī)床

就是這樣。這是CNC機(jī)床的最終結(jié)果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    152

    文章

    3162

    瀏覽量

    149316
  • CNC
    CNC
    +關(guān)注

    關(guān)注

    8

    文章

    366

    瀏覽量

    36389
  • Arduino
    +關(guān)注

    關(guān)注

    189

    文章

    6494

    瀏覽量

    190334
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ADI Trinamic TMC5240x步進(jìn)電機(jī)控制驅(qū)動(dòng)器IC

    Adi Trinamic TMC5240x步進(jìn)電機(jī)控制驅(qū)動(dòng)器IC配備了串行通信接口(SPI和UART)和廣泛的診斷能力。這些智能高性能IC將靈活的斜坡優(yōu)化斜坡發(fā)生
    的頭像 發(fā)表于 06-16 10:33 ?160次閱讀
    ADI Trinamic TMC5240x<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b>控制<b class='flag-5'>器</b>和<b class='flag-5'>驅(qū)動(dòng)器</b>IC

    佳訊電子:低壓MOS在步進(jìn)電機(jī)驅(qū)動(dòng)器上的應(yīng)用

    一、前言 步進(jìn)電機(jī)驅(qū)動(dòng)器是一種用于控制步進(jìn)電機(jī)運(yùn)動(dòng)的裝置,它是將控制信號(hào)轉(zhuǎn)換成步進(jìn)
    的頭像 發(fā)表于 04-27 17:52 ?281次閱讀
    佳訊電子:低壓MOS在<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)器</b>上的應(yīng)用

    步進(jìn)電機(jī)驅(qū)動(dòng)器有哪些分類,如何選型?

    用于需要高精度和高速度的應(yīng)用中,如數(shù)控機(jī)床、機(jī)器人等。 2. 微步驅(qū)動(dòng)器/細(xì)分驅(qū)動(dòng)器:通過(guò)細(xì)分步進(jìn)角或微步技術(shù)來(lái)提高電機(jī)的運(yùn)動(dòng)平滑性和精度。
    的頭像 發(fā)表于 01-06 08:08 ?571次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)器</b>有哪些分類,如何選型?

    基于STM32F405RGT6的TMC2660步進(jìn)電機(jī)驅(qū)動(dòng)器,附帶原理圖+PCB

    驅(qū)動(dòng)電路主要包括以下部分,信號(hào)接口電路,邏輯控制電路,功率開(kāi)關(guān)電路,保護(hù)電路。TMC2660是步進(jìn)電機(jī)驅(qū)動(dòng)芯片,集成了先進(jìn)的電流控制算法、微步細(xì)分功能和多種保護(hù)
    的頭像 發(fā)表于 12-14 19:24 ?2107次閱讀
    基于STM32F405RGT6的TMC2660<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)器</b>,附帶原理圖+PCB

    EVL6480 步進(jìn)電機(jī)驅(qū)動(dòng)器評(píng)估板

    STMicroelectronics EVL6480 步進(jìn)電機(jī)驅(qū)動(dòng)器評(píng)估板基于 L6480,可提供經(jīng)濟(jì)實(shí)惠且易于使用的解決方案,用于在用戶應(yīng)用中驅(qū)動(dòng)
    的頭像 發(fā)表于 11-27 17:58 ?783次閱讀
    EVL6480 <b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動(dòng)器</b>評(píng)估板

    伺服驅(qū)動(dòng)器步進(jìn)電機(jī)的比較

    在現(xiàn)代工業(yè)自動(dòng)化和精密控制領(lǐng)域,電機(jī)控制系統(tǒng)的選擇至關(guān)重要。伺服驅(qū)動(dòng)器步進(jìn)電機(jī)是兩種常見(jiàn)的電機(jī)控制解決方案,它們各自具有獨(dú)特的優(yōu)勢(shì)和局限性
    的頭像 發(fā)表于 11-04 15:02 ?1126次閱讀

    步進(jìn)電機(jī)驅(qū)動(dòng)器的主要驅(qū)動(dòng)方式有哪些?簡(jiǎn)單介紹

    步進(jìn)電機(jī)驅(qū)動(dòng)器的主要驅(qū)動(dòng)方式有以下幾種: 脈沖驅(qū)動(dòng)方式 脈沖驅(qū)動(dòng)方式是
    的頭像 發(fā)表于 10-24 13:43 ?1054次閱讀

    步進(jìn)電機(jī)驅(qū)動(dòng)器的組成結(jié)構(gòu)有哪些?簡(jiǎn)單分析

    步進(jìn)電機(jī)驅(qū)動(dòng)器步進(jìn)電機(jī)系統(tǒng)的重要組成部分,它負(fù)責(zé)接收控制信號(hào)并將其轉(zhuǎn)換為電機(jī)
    的頭像 發(fā)表于 10-24 13:41 ?1058次閱讀

    步進(jìn)電機(jī)驅(qū)動(dòng)器的主要工作原理是什么?

    驅(qū)動(dòng)器是一種將電信號(hào)轉(zhuǎn)換為機(jī)械運(yùn)動(dòng)的裝置,廣泛應(yīng)用于各種自動(dòng)化設(shè)備、機(jī)器人、精密儀器等領(lǐng)域。步進(jìn)電機(jī)驅(qū)動(dòng)器的主要工作原理是通過(guò)精確控制
    的頭像 發(fā)表于 10-24 13:40 ?2121次閱讀

    步進(jìn)電機(jī)驅(qū)動(dòng)器有哪些類型?該如何分類?

    步進(jìn)電機(jī)驅(qū)動(dòng)器是用于控制步進(jìn)電機(jī)運(yùn)動(dòng)的電子設(shè)備。它們通過(guò)接收控制信號(hào)來(lái)調(diào)節(jié)電機(jī)的電流、電壓和脈沖
    的頭像 發(fā)表于 10-24 13:35 ?946次閱讀

    什么是步進(jìn)電機(jī)驅(qū)動(dòng)器?它具有什么特點(diǎn)?

    步進(jìn)電機(jī)驅(qū)動(dòng)器是一種用于控制步進(jìn)電機(jī)運(yùn)動(dòng)的電子設(shè)備。它通過(guò)接收來(lái)自控制系統(tǒng)的脈沖信號(hào),精確地控制步進(jìn)
    的頭像 發(fā)表于 10-24 11:52 ?1291次閱讀

    步進(jìn)驅(qū)動(dòng)器工作原理知識(shí)你了解多少?

    ??步進(jìn)驅(qū)動(dòng)器的工作原理是通過(guò)將電脈沖轉(zhuǎn)化為角位移來(lái)驅(qū)動(dòng)電機(jī)步進(jìn)驅(qū)動(dòng)器是一種將電脈沖信號(hào)轉(zhuǎn)
    的頭像 發(fā)表于 09-13 15:31 ?838次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>驅(qū)動(dòng)器</b>工作原理知識(shí)你了解多少?

    步進(jìn)驅(qū)動(dòng)器的作用及種類

    步進(jìn)電機(jī)驅(qū)動(dòng)器是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。步進(jìn)電動(dòng)機(jī)和步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器構(gòu)成
    的頭像 發(fā)表于 09-04 11:33 ?856次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>驅(qū)動(dòng)器</b>的作用及種類

    步進(jìn)驅(qū)動(dòng)器電流設(shè)置原則

    引言 步進(jìn)電機(jī)是一種常見(jiàn)的執(zhí)行元件,廣泛應(yīng)用于各種自動(dòng)化設(shè)備和控制系統(tǒng)中。步進(jìn)電機(jī)驅(qū)動(dòng)器步進(jìn)
    的頭像 發(fā)表于 07-13 09:46 ?2328次閱讀

    步進(jìn)電機(jī)驅(qū)動(dòng)器細(xì)分的優(yōu)點(diǎn)

    ? ? 驅(qū)動(dòng)器細(xì)分后的主要優(yōu)點(diǎn)為: ? 1、完全消除了電機(jī)的低頻振蕩 ? 低頻振蕩是步進(jìn)電機(jī)(尤其是反應(yīng)式電機(jī))的固有特性,而細(xì)分是消除它的
    的頭像 發(fā)表于 07-08 09:06 ?851次閱讀
    主站蜘蛛池模板: 久久久一本 | 欧美性白人极品1819hd高清 | 精品免费久久久久久成人影院 | 亚洲日本高清 | 四虎成人影院网址 | 六月丁香啪啪六月激情 | 伊人久久大线蕉香港三级 | 国产一区二区中文字幕 | 新版天堂8在线天堂 | 3344a毛片在线看 | 亚洲国产成人久久精品图片 | 国产一卡2卡3卡四卡精品网站 | 五月天丁香色 | 国模欢欢大尺度 | 婷婷免费高清视频在线观看 | 五月情视频在线观看 | 天天插日日干 | 午夜久久久 | 最近国语剧情视频在线观看 | 我要看黄色一级毛片 | 亚洲一区二区三区免费看 | 狠狠曹| 天天做天天爱天天爽综合区 | 成人在线黄色 | 免费鲁丝片一级观看 | 美女扒开尿口给男人桶动态图 | 天天色天天干天天 | 宅男色视频| 大色综合 | 手机看日韩毛片福利盒子 | 操您啦| 日本三级高清 | 末成年一级在线看片 | 国产精品久久免费观看 | 午夜视频在线免费观看 | 色老头性xxxx老头视频 | 男女一进一出抽搐免费视频 | 亚洲综合色在线 | 女人张开腿让男人桶免费最新 | 性人久久久久 | 久久99热国产这有精品 |