資料介紹
PCB圖如下:
成分
ULN2003LVPWR 德州儀器 |
× 1 |
741C083510JP CTS電阻器產品 |
× 1 |
106CKR063M CDE/伊利諾伊電容器 |
× 1 |
SMBJ5.0CA SMC 二極管解決方案 |
× 1 |
16針公頭 | × 1 |
C503B-RBS-CW0Z0AA2 科銳LED |
× 1 |
描述
ULN2003驅動板
28BYJ-48 是您能找到的最便宜的步進電機之一。雖然它不是超級準確或功能強大,但它是用于小型項目或只想了解步進電機的絕佳電機。
該電機通常用于自動調節空調機組的葉片。它有一個內置的變速箱,可以提供一些額外的扭矩并大大降低速度。
重要提示:制造商通常指定電機具有 64:1 的齒輪減速。Arduino 論壇的一些成員注意到這是不正確的,因此他們拆開一些電機來檢查實際的齒輪比。他們確定確切的齒輪比實際上是 63.68395:1,這導致每整圈大約有 4076 步(在半步模式下)。
我不確定是否所有制造商都使用完全相同的變速箱,但您可以調整代碼中每轉的步數,以匹配您的型號。
Adafruit Industries 小型減速步進電機使用與 28BYJ-48 相同的外形尺寸,但具有不同的齒輪比。它有一個大約 1/16 的減速齒輪組,每轉 513 步(在全步模式下)。您可以下載它的數據表
控制 28BYJ-48 步進電機的基本 Arduino 示例代碼
您可以使用 Arduino IDE 將以下示例代碼上傳到您的 Arduino。
此示例使用 Stepper.h 庫,該庫應與 Arduino IDE 一起預裝。此草圖將步進電機沿一個方向轉動 1 圈,暫停,然后沿另一個方向轉動 1 圈。
// 包括 Arduino Stepper.h 庫:
#include
// 定義每次旋轉的步數:
常量 int stepsPerRevolution = 2048;
// 接線:
// ULN2003 驅動器上的引腳 8 到 IN1
// ULN2003 驅動器上的引腳 9 到 IN2
// ULN2003 驅動器上的引腳 10 到 IN3
// ULN2003 驅動器上的引腳 11 到 IN4
// 創建名為“myStepper”的步進器對象,注意引腳順序:
步進器 myStepper = Stepper(stepsPerRevolution, 8, 10, 9, 11);
無效設置(){
// 將速度設置為 5 rpm:
myStepper.setSpeed(5);
// 以 9600 的波特率開始串行通信:
序列號.開始(9600);
}
無效循環(){
// 向一個方向旋轉一圈:
Serial.println("順時針");
myStepper.step(stepsPerRevolution);
延遲(500);
// 向另一個方向旋轉一圈:
Serial.println("逆時針");
myStepper.step(-stepsPerRevolution);
延遲(500);
}
代碼說明:
草圖首先包含 Stepper.h Arduino 庫。關于這個庫的更多信息可以在 Arduino 網站上找到。
// 包括 Arduino Stepper.h 庫:
#include
接下來,我定義了電機旋轉 1 圈需要多少步。在本例中,我們將在全步模式下使用電機。這意味著旋轉 360 度需要 2048 步(參見上面的電機規格)。
// 定義每次旋轉的步數:
常量 int stepsPerRevolution = 2048;
接下來,您需要創建 Stepper 類的新實例,它表示連接到 Arduino 的特定步進電機。為此,我們使用函數?
步進器(步驟,pin1,pin2,pin3,pin4)
?其中steps是每轉的步數,pin1到pin4是電機連接的引腳。要獲得正確的步進順序,我們需要按以下順序設置引腳:8、10、9、11。
// 創建名為“myStepper”的步進器對象,注意引腳順序:
步進器 myStepper = Stepper(stepsPerRevolution, 8, 10, 9, 11);
在這種情況下,我將步進電機稱為“myStepper”,但您也可以使用其他名稱,例如“z_motor”或“liftmotor”等。?
步進電機 = Stepper(stepsPerRevolution, 8, 10, 9, 11);
. 您可以創建多個具有不同名稱和引腳的步進電機對象。這使您可以輕松地同時控制 2 個或更多步進電機。
在設置中,您可以使用功能以 rpm 為單位設置速度?
設定轉速(rpm)
. 28byj-48 步進電機的最大速度在 5 V 時約為 10-15 rpm。
無效設置(){
// 將速度設置為 5 rpm:
myStepper.setSpeed(5);
// 以 9600 的波特率開始串行通信:
序列號.開始(9600);
}
在代碼的循環部分,我們簡單地調用?
步驟(步驟)
?以由電機確定的速度將電機轉動特定步數的功能?
設定轉速(rpm)
?功能。將負數傳遞給此函數會反轉電機的旋轉方向。
無效循環(){
// 向一個方向旋轉一圈:
Serial.println("順時針");
myStepper.step(stepsPerRevolution);
延遲(500);
// 向另一個方向旋轉一圈:
Serial.println("逆時針");
myStepper.step(-stepsPerRevolution);
延遲(500);
}
帶有 Arduino 和 AccelStepper 庫的 28BYJ-48 步進電機的示例代碼
在以下三個示例中,我將向您展示如何控制步進電機的速度、方向和步數。在這些示例中,我將使用 AccelStepper 庫。
Mike McCauley 編寫的 AccelStepper 庫是一個非常棒的庫,可用于您的項目。優點之一是它支持加速和減速,但它也有很多其他不錯的功能。
你可以下載這個庫的最新版本?AccelStepper-1.59.zip
您可以通過轉到 Arduino IDE 中的 Sketch > Include Library > Add .ZIP Library... 來安裝庫。
另一種選擇是導航到工具 > 管理庫...或在 Windows 上鍵入 Ctrl + Shift + I。庫管理器將打開并更新已安裝庫的列表。
您可以搜索“accelstepper”并查找 Mike McCauley 的庫。選擇最新版本,然后單擊安裝。
1.連續旋轉示例代碼
以下草圖可用于以恒定速度連續運行一個或多個步進電機。(不使用加速或減速)。
您可以通過單擊代碼字段右上角的按鈕來復制代碼。
/* 使用 ULN2003 驅動板、AccelStepper 和 Arduino UNO 控制 28BYJ-48 步進電機的示例草圖:連續旋轉。更多信息:https://www.makerguides.com */
// 包含 AccelStepper 庫:
#include
// 電機引腳定義:
#define motorPin1 8 // ULN2003 驅動器上的 IN1
#define motorPin2 9 // ULN2003 驅動器上的 IN2
#define motorPin3 10 // ULN2003 驅動器上的 IN3
#define motorPin4 11 // ULN2003 驅動器上的 IN4
// 定義AccelStepper接口類型;半步模式下的 4 線電機:
#define MotorInterfaceType 8
// 使用引腳序列 IN1-IN3-IN2-IN4 進行初始化,以便將 AccelStepper 庫與 28BYJ-48 步進電機一起使用:
AccelStepper stepper = AccelStepper(MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4);
無效設置(){
// 設置每秒最大步數:
stepper.setMaxSpeed(1000);
}
無效循環(){
// 以每秒步數為單位設置電機的速度:
stepper.setSpeed(500);
// 以 setSpeed() 設置的恒定速度步進電機:
stepper.runSpeed();
}
代碼如何工作:
同樣,第一步是將庫包含在?
#include
.
// 包含 AccelStepper 庫:
#include
下一步是定義 ULN2003 到 Arduino 的連接。
該聲明?
#定義
?用于為常量值命名。編譯程序時,編譯器會將對該常量的任何引用替換為定義的值。所以你提到的任何地方?
電機引腳1
,編譯器會在編譯程序時將其替換為值 8。
// 電機引腳定義:
#define motorPin1 8 // ULN2003 驅動器上的 IN1
#define motorPin2 9 // ULN2003 驅動器上的 IN2
#define motorPin3 10 // ULN2003 驅動器上的 IN3
#define motorPin4 11 // ULN2003 驅動器上的 IN4
下一步是為 AccelStepper 庫指定電機接口類型。在這種情況下,我們將以半步模式驅動 4 線步進電機,因此我們將接口類型設置為“8”。您可以在此處找到其他接口類型。如果您想以全步模式(每轉少步)運行電機,只需將 8 更改為 4。
// 定義AccelStepper接口類型;半步模式下的 4 線電機:
#define MotorInterfaceType 8
?
接下來,您需要使用適當的電機接口類型和連接創建 AccelStepper 類的新實例。為了獲得正確的步進順序,我們需要按以下順序設置引腳:motorPin1、motorPin3、motorPin2、motorPin4。
在這種情況下,我將步進電機稱為“步進器”,但您也可以使用其他名稱,例如“z_motor”或“liftmotor”等。?
AccelStepper liftmotor = AccelStepper(MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4);
. 您可以創建多個具有不同名稱和引腳的步進電機對象。這使您可以輕松地同時控制 2 個或更多步進電機。
// 使用引腳序列 IN1-IN3-IN2-IN4 進行初始化,以便將 AccelStepper 庫與 28BYJ-48 步進電機一起使用:
AccelStepper stepper = AccelStepper(MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4);
在代碼的設置部分,我們使用函數定義最大速度(步/秒)?
設置最大速度()
. 每秒超過 1000 步的速度可能不可靠,因此我將其設置為最大值。請注意,我指定了步進電機的名稱('stepper'),我想為其定義最大速度。如果您連接了多個步進電機,您可以為每個電機指定不同的速度:?
stepper2.setMaxSpeed(500);
.
無效設置(){
// 設置每秒最大步數:
stepper.setMaxSpeed(1000);
}
在循環中,我們首先使用函數設置我們希望電機運行的速度?
設置速度()
. (您也可以將其放在代碼的設置部分中)。
stepper.runSpeed()
?輪詢電機,當一個步驟到期時,它執行 1 個步驟。這取決于設置的速度和自上一步以來的時間。如果要改變電機的方向,可以設置負轉速:?
stepper.setSpeed(-400);
?以另一種方式轉動電機。
無效循環(){
// 以每秒步數為單位設置電機的速度:
stepper.setSpeed(500);
// 以 setSpeed() 設置的恒定速度步進電機:
stepper.runSpeed();
}
在半步模式下,一轉需要 4096 步,因此 500 步/秒導致大約 7 rpm。
2.草圖控制步數或轉數
使用以下草圖,您可以控制速度、方向和步數/轉數。
在這種情況下,步進電機以 500 步/秒順時針旋轉 1 圈,然后以 1000 步/秒逆時針旋轉 1 圈,最后以 1000 步/秒順時針旋轉 2 圈。
/* 使用 ULN2003 驅動板、AccelStepper 和 Arduino UNO 控制 28BYJ-48 步進電機的示例草圖:步數/轉數。更多信息:https://www.makerguides.com */
// 包含 AccelStepper 庫:
#include
// 電機引腳定義:
#define motorPin1 8 // ULN2003 驅動器上的 IN1
#define motorPin2 9 // ULN2003 驅動器上的 IN2
#define motorPin3 10 // ULN2003 驅動器上的 IN3
#define motorPin4 11 // ULN2003 驅動器上的 IN4
// 定義AccelStepper接口類型;半步模式下的 4 線電機:
#define MotorInterfaceType 8
// 使用引腳序列 IN1-IN3-IN2-IN4 進行初始化,以便將 AccelStepper 庫與 28BYJ-48 步進電機一起使用:
AccelStepper stepper = AccelStepper(MotorInterfaceType, motorPin1, motorPin3, motorPin2, motorPin4);
無效設置(){
// 設置每秒最大步數:
stepper.setMaxSpeed(1000);
}
無效循環(){
// 將當前位置設置為 0:
stepper.setCurrentPosition(0);
// 以 500 步/秒的速度向前運行電機,直到電機達到 4096 步(1 轉):
而(stepper.currentPosition()!= 4096){
stepper.setSpeed(500);
stepper.runSpeed();
}
延遲(1000);
// 將位置重置為 0:
stepper.setCurrentPosition(0);
// 以 1000 步/秒的速度向后運行電機,直到電機達到 -4096 步(1 轉):
而(stepper.currentPosition()!= -4096){
stepper.setSpeed(-1000);
stepper.runSpeed();
}
延遲(1000);
// 將位置重置為 0:
stepper.setCurrentPosition(0);
// 以 1000 步/秒的速度向前運行電機,直到電機達到 8192 步(2 轉):
而(stepper.currentPosition()!= 8192){
stepper.setSpeed(1000);
stepper.runSpeed();
}
延遲(3000);
}
- ULN2003驅動28BYJ48 1次下載
- 基于ULN2003的步進電機驅動 7次下載
- STM32四相電機驅動板ULN2003驅動 0次下載
- 基于定時器中斷的ULN2003驅動器/步進電機驅動程序 10次下載
- 步進電機驅動板模塊ULN2003芯片資料包 40次下載
- 【51單片機】 ULN2003模塊 驅動步進電機(5線)正反轉 代碼以及接線圖(簡單教學,一看就會) 62次下載
- ULN2003驅動步進電機的keil程序和電路圖免費下載 125次下載
- 基于ULN2003及單片機驅動步進電機的應用案例 73次下載
- ULN2003中文資料 89次下載
- ULN2003驅動步進電機 156次下載
- 基于單片機實現74HC595通過ULN2003驅動2路步進電機 208次下載
- 基于單片機實現138譯碼器通過ULN2003驅動2路步進電機 23次下載
- ULN2003 中文手冊 pdf 757次下載
- 高耐壓、大電流達林頓陳列—ULN2003 63次下載
- uln2003 pdf datasheet 554次下載
- 使用ULN2003A的步進電機驅動例程 1198次閱讀
- ULN2003芯片的主要作用 3475次閱讀
- 基于ULN2003A達林頓管的步進電機驅動設計 5626次閱讀
- 基于51單片機的自動門設計 2283次閱讀
- ULN2003內部構造及等效電路圖 2.1w次閱讀
- 如何利用單片機來驅動繼電器 2.1w次閱讀
- Diodes推出兩款驅動器,可直接替代其它廠商同類型行業標準產品 795次閱讀
- 一文看懂arduino驅動uln2003操作步進電機的方法 8w次閱讀
- 74hc595通過ULN2003驅動8*8LED點陣屏 2.8w次閱讀
- uln2003中文資料匯總(uln2003引腳圖及功能_特性參數及應用電路) 14w次閱讀
- 一文看懂uln2803和uln2003區別 10.3w次閱讀
- uln2003有什么作用_引腳圖及功能_工作原理及驅動應用電路 21.7w次閱讀
- ULN2003在自動延遲電路中的應用 4461次閱讀
- uln2003apg引腳圖及功能介紹 7.1w次閱讀
- ULN2003引腳功能介紹 5.9w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多