【arduino】arduino uno + A4988控制42步進電機
MS1 , MS2 , MS3 跳線說明:(例子裡是低電平,懸空或接地線,使用全步進模式)
分別是全步進,1/2步進,1/4步進,1/8步進,1/16步進模式。
步進電機走一步是1.8度,一圈就是200步。例如使用1/16步進,則需要走3200步才等於一圈。
ms1 ms2 ms3L L L 整步(沒有細分)H L L 1/2(2細分)L H L 1/4(4細分)H H L 1/8(8細分)H H H 1/16(16細分)
測試程式程式
int x;
void setup()
{
pinMode(6,OUTPUT); // Enable: EN可以使用微控制器埠控制,也可以直接連線GND使能
pinMode(5,OUTPUT); // steps:脈衝個數
pinMode(4,OUTPUT); // dir:為方向控制
digitalWrite(6,LOW); // Set Enable low
}
void loop()
{
digitalWrite(4,HIGH); // Set Dir high
for(x = 0; x < 200; x++) // Loop 200 times
{
digitalWrite(5,HIGH); // Output high
delayMicroseconds(800); // Wait 1/2 a ms
digitalWrite(5,LOW); // Output low
delayMicroseconds(800); // Wait 1/2 a ms
}
delay(1000); // pause one second
digitalWrite(4,LOW); // Set Dir low
for(x = 0; x < 200; x++) // Loop 2000 times
{
digitalWrite(5,HIGH); // Output high
delayMicroseconds(800); // Wait 1/2 a ms
digitalWrite(5,LOW); // Output low
delayMicroseconds(800); // Wait 1/2 a ms
}
delay(1000); // pause one second
}
ps後記學習:
*腳6(-en) 低電平為啟動電機(enable),貌似也可以不接,試過一樣能執行.但如果要控制電機的啟動關閉還是要用上
*腳4(-dir) 用高低電平控制方向.
*腳5(-step) 用高低電平驅動電機轉動.注意中間間隔等待的微秒值,如果太快會導致電機有聲響不轉動.
int dirPin = 8;
int stepperPin = 7;
void setup() {
pinMode(dirPin, OUTPUT);
pinMode(stepperPin, OUTPUT);
}
void step(boolean dir,int steps){
digitalWrite(dirPin,dir);
delay(50);
for(int i=0;i<steps;i++){
digitalWrite(stepperPin, HIGH);
delayMicroseconds(800);
digitalWrite(stepperPin, LOW);
delayMicroseconds(800);
}
}
void loop(){
step(true,1600);
delay(500);
step(false,1600*5);
delay(500);
}
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
void loop() {
digitalWrite(9, HIGH);
delay(1);
digitalWrite(9, LOW);
delay(1);
}
問題1.什麼叫做42步進電機,其中數字“42”是什麼意思?命名有沒有國際標準?答:42是電機的基座型號,邊長42mm。就是電機靠近出軸的那個四方的座子的尺寸。問題2.經常看到 2相 5相, 還有複雜的2相 6lead 8lead, 這裡的lead 是什麼意思?附圖答:我自己的理解lead 是指 實際的輸出線有多少根!答:這個是正確的。可以通過外部接線實現電機繞組的並聯和串聯。通過相應的程式還能實現更多的功能。問題3.步進電機有哪些關鍵的引數。答:我有看到一個實物上寫明 1.8度/step , 1.8度是否就是 一個通電週期,機械旋轉1.8度?又問:那是否能在標稱 1.8度的/step 下,通過 靈巧的程式,達到0.9度 0.45度 0.225度?答:1.8度是指一個正步脈衝,你的電機轉過的角度。比如說兩相的,那你開始給A相通電,那下一次你給B通電後,轉過的角度就是1。8度。問題4.何為細分,如何細分?答:細分就是按照一定的方法,使本來轉1.8度的情況變成兩步轉1.8度或者更多步轉1.8度。一般是正方形細分或者正弦波細分。正方形一般用於2細分,正弦波可以有更多的細分,力矩也更平滑。//以上問題我大學裡都有學習過,可惜現在全部還給了老師,希望各位在 暢所欲言,也希望提出更多的問題,來幫助我等小白!謝謝各位電機驅動專家!100莫元,犒勞各位大俠,請耐心教導我等小白,科普小白,我想論壇還有很多人願意看到這個帖子的精華!問題5. 步進電機如何防止失步,(我故意卡死 步進電機,讓他不能轉)自己回答: 抱歉沒有反饋機構,無法防止。唯一的辦法就是選擇合適轉矩的步進電機防止失步。我的理解對嗎?答:儘量選更大力矩的電機。選擇合適的加減速曲線。問題6. 我有幸,有一次拆了一個工廠 30kg的 超級大 步進電機。 220v驅動。只有3根線輸出(這裡我有記錯嗎?)。這個應該是伺服電機吧?加上驅動器,我實在無法卡死轉軸。那麼 伺服電機 是否也會失步。這個伺服電機 老師傅是用在機床上,移動切鐵用的答:伺服電機是有編碼器的,有位置資訊給到驅動器,一旦位置發生偏差,驅動器就會給電機加力,直到驅動器的最大輸出力為止。不過單單就步進電機來說,低速的時候力還是很大的,42的步進電機,如果來個3A驅動的話,抓也是不好抓的。
步距角,即在沒有減速齒輪的情況下,對於一個脈衝訊號,轉子所轉過的機械角度。
也可以這樣描述:定子控制繞組每改變一次通電方式,稱為一拍。每一拍轉子轉過的機械角度稱之為步距角,通常用θs表示。
常見的有3°/1.5°,1.5°/0.75°,3.6°/1.8°。如,對於步距角為1.8度的步進電機(小電機),轉一圈所用的脈衝數為
n=360/1.8=200個脈衝。
步距角的誤差不會長期積累,只與輸入脈衝訊號數相對應,可以組成結構較為簡單而又具有一定精度的開環控制系統,也可以在要求更高精度時組成閉環系統。
步距角θ可用下式計算: θ=360°/(Zr×m) 式中Zr是轉子齒數;m是執行拍數。
步進電機特性及步距角計算方法2009年05月05日 星期二 22:13步進電機作為執行元件,是機電一體化的關鍵產品之一, 廣泛應用在各種自動化控制系統中。隨著微電子和計算機技術的發展,步進電機的需求量與日俱增,在各個國民經濟領域都有應用。 步進電機是一種將電脈衝轉化為角位移的執行機構。當步進驅動器接收到一個脈衝訊號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步執行的。可以通過控制脈衝個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈衝頻率來控制電機轉動的速度和加速度,從而達到調速的目的。步進電機可以作為一種控制用的特種電機,利用其沒有積累誤差(精度為100%)的特點,廣泛應用於各種開環控制。 現在比較常用的步進電機包括反應式步進電機(VR)、永磁式步進電機(PM)、混合式步進電機(HB)和單相式步進電機等。 永磁式步進電機一般為兩相,轉矩和體積較小,步進角一般為7.5度 或15度; 反應式步進電機一般為三相,可實現大轉矩輸出,步進角一般為1.5度,但噪聲和振動都很大。反應式步進電機的轉子磁路由軟磁材料製成,定子上有多相勵磁繞組,利用磁導的變化產生轉矩。 混合式步進電機是指混合了永磁式和反應式的優點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為 0.72度。這種步進電機的應用最為廣泛,也是本次細分驅動方案所選用的步進電機。 步進電機的一些基本引數: 電機固有步距角: 它表示控制系統每發一個步進脈衝訊號,電機所轉動的角度。電機出廠時給出了一個步距角的值,如SL86S2114A型電機給出的值為0.9°/1.8°(表示半步工作時為0.9°、整步工作時為1.8°),這個步距角可以稱之為‘電機固有步距角’,它不一定是電機實際工作時的真正步距角,真正的步距角和驅動器有關。 步進電機的相數: 是指電機內部的線圈組數,目前常用的有二相、三相、四相、五相步進電機。電機相數不同,其步距角也不同,一般二相電機的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72° 。在沒有細分驅動器時,使用者主要靠選擇不同相數的步進電機來滿足自己步距角的要求。如果使用細分驅動器,則‘相數’將變得沒有意義,使用者只需在驅動器上改變細分數,就可以改變步距角。 保持轉矩(HOLDING TORQUE): 是指步進電機通電但沒有轉動時,定子鎖住轉子的力矩。它是步進電機最重要的引數之一,通常步進電機在低速時的力矩接近保持轉矩。由於步進電機的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉矩就成為了衡量步進電機最重要的引數之一。比如,當人們說2N.m的步進電機,在沒有特殊說明的情況下是指保持轉矩為2N.m的步進電機。 DETENT TORQUE: 是指步進電機沒有通電的情況下,定子鎖住轉子的力矩。DETENT TORQUE 在國內沒有統一的翻譯方式,容易使大家產生誤解;由於反應式步進電機的轉子不是永磁材料,所以它沒有DETENT TORQUE。 步進電機的一些特點: 1.一般步進電機的精度為步進角的3-5%,且不累積。 2.步進電機外表允許的最高溫度。 步進電機溫度過高首先會使電機的磁性材料退磁,從而導致力矩下降乃至於失步,因此電機外表允許的最高溫度應取決於不同電機磁性材料的退磁點;一般來講,磁性材料的退磁點都在攝氏130度以上,有的甚至高達攝氏200度以上,所以步進電機外表溫度在攝氏80-90度完全正常。 3.步進電機的力矩會隨轉速的升高而下降。 當步進電機轉動時,電機各相繞組的電感將形成一個反向電動勢;頻率越高,反向電動勢越大。在它的作用下,電機隨頻率(或速度)的增大而相電流減小,從而導致力矩下降。 4.步進電機低速時可以正常運轉,但若高於一定速度就無法啟動,並伴有嘯叫聲。 步進電機有一個技術引數:空載啟動頻率,即步進電機在空載情況下能夠正常啟動的脈衝頻率,如果脈衝頻率高於該值,電機不能正常啟動,可能發生丟步或堵轉。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉動,脈衝頻率應該有加速過程,即啟動頻率較低,然後按一定加速度升到所希望的高頻(電機轉速從低速升到高速)。 步進電動機以其顯著的特點,在數字化製造時代發揮著重大的用途。伴隨著不同的數字化技術的發展以及步進電機本身技術的提高,步進電機將會在更多的領域得到應用。
相關推薦
【arduino】arduino uno + A4988控制42步進電機
MS1 , MS2 , MS3 跳線說明:(例子裡是低電平,懸空或接地線,使用全步進模式) 分別是全步進,1/2步進,1/4步進,1/8步進,1/16步進模式。 步進電機走一步是1.8度,一圈就是200步。例如使用1/16步進,則需要走3200步才等於一圈。 ms1
A4988驅動42步進電機
操作 got 左移 find 連接 edi mos hsv period A4988步進電機驅動器驅動控制42步進電機速度,步進電機調速,調節驅動電流 1 A4988步進電機驅動器簡介 方
步進電機控制和步進電機原理
今天除錯了一個惠斯通的步進電機,原來除錯過一款歐柯達的42步進電機, 本以為兩個電機差不多,驅動器給的一樣,結果發現死活不能動。用自己百度了一下,做一個筆記 例如這個電機42BYGH403AA 42 為機座尺寸, BYGH是指混合式步進電機(混合式步進電機是綜合了永磁式和
【原始碼】Arduino UNO R3的MATLAB控制介面
本介面包含的除錯內容有: 數字輸入/輸出; 模擬輸入/輸出; 伺服電機驅動; 步進電機驅動; 直流電機驅動。 MATLAB下載地址: 更多精彩文章請關注微訊號:
【嵌入式】Arduino編程基礎到應用全解析
接口 實現 關於 第一次 學習 wid 標誌位 解碼 post Arduino Author: Andrew.Du 基礎 基礎語法: setup() loop() pinMode(引腳,模式) pinMode(13,OUTPUT);
如何使用驅動器A4988和Arduino開發板控制步進電機
在本篇文章中,我們將學習如何使用A4988步進驅動器和Arduino開發板控制步進電機。 概述 A4988是一款用於控制雙極步進電機的微步進驅動器,內建轉換器,易於操作。這意味著我們可以用控制器的2個引腳來控制步進電機,一個用於控制旋轉方向,另一個用於控制步數。 驅動器提供
【IoT】Arduino 實現 ESP32 BLE 與 Android 手機的資料互動
1、效果描述: 通過簡單的 Android APP 實現與 ESP32 的雙向藍芽通訊。 2、實現步驟 Step 1:ESP32 硬體支援 1、支援藍芽 4.0 以上協議的安卓手機; 2、支援 Micro USB 的 ESP32 dev board; Step 2
【HTML】瀏覽器內核控制meta name="renderer" 說明文檔
ica code 功能 head 建議 ans idt rda adc 背景介紹 由於眾所周知的情況,國內的主流瀏覽器都是雙核瀏覽器:基於Webkit內核用於常用網站的高速瀏覽。基於IE的內核用於兼容網銀、舊版網站。以360的幾款瀏覽器為例,我們優先通過Webkit
【python】入門指南:控制語句
pan else pre 循環 clas python continue break for 條件控制 if,if-else,if-elseif-else #!/bin/python a = ‘test‘ if a == ‘test‘: print
【181028】VC++ 遠端桌面控制、抓圖原始碼
vc++ 編寫的一套遠端桌面控制、抓圖源程式。主程式分為服務端和客戶端,測試前請先執行服務端,當客戶端啟動後,可以抓取遠端主機的桌面資訊,當然也可以是當前視窗的資訊。源程式在vc++6.0下順利編譯。程式有一個需要完善的地方就是,客戶端的截圖視窗不能最小化或支援快捷鍵,當抓圖的時候會連同客戶端一
【轉】【MySQL】MySQL的併發控制與加鎖分析
https://www.cnblogs.com/yelbosh/p/5813865.html 本文主要是針對MySQL/InnoDB的併發控制和加鎖技術做一個比較深入的剖析,並且對其中涉及到的重要的概念,如多版本併發控制(MVCC),髒讀(dirty read),幻讀(phantom read
【模擬】Ros by example1 控制底座、導航、路徑規劃、SLAM程式碼註釋
一、控制底座 效果:讓機器人花一段時間向前移動1m,再旋轉180度,最後返回原點。 1、基於定時的timed_out_and_back.py # -*- coding: utf-8 -*- 有中文註釋 #!/usr/bin/env python import rospy from
【模擬】Ros by example1 控制底座、導航、路徑規劃、SLAM
為了快速瀏覽教程,先從ArbotiX虛擬器開始。具體程式碼看ros-by-example 1,主要講述實現過程。 首先要啟動一個虛擬的Turtlebot $ roslaunch rbx1_bringup fake_turtlebot.launch 另一個終端,開啟RViz視覺化機器人運動
【mysql】--MVCC 多版本控制
InnoDB的mvcc,是通過在每行記錄後面儲存兩個隱藏的列來實現的。這兩個列,一個儲存了行的建立時間,一個儲存行的過期時間(刪除時間)。儲存的並不是實際的時間,而是系統版本號。每一個新的事物,系統版本號都會遞增。 事物開始時刻的系統版本號會作為事務的版本號,用來和查詢到的每行記錄的版本號進行比
【.NET】03 程式流程控制語句及其應用
3.1 算術運算子 算術運算子: + - * / % 3.2 強制型別轉換和自動型別轉換 自動型別轉換(隱式轉換) : 將精度低資料轉換為精度高的資料,系統自動進行,不會造成資料精度的丟失。 目標型別大於源型別 顯式型別轉換(強制轉換) 目標型別 小於 源型別
【膜摸摸】網紅步進電機驅動A4988和DRV8825的對比和區別及選用實踐 for 四軸CNC雕刻/3D列印
【轉自】http://blog.csdn.net/ling3ye/article/details/47001251 用Arduino驅A4988驅動電機對於DIY3D印表機: 材料清單BOM: Arduino uno *1A4988
【轉】spring中對控制反轉和依賴注入的理解
由於最近沒有太多時間,不能深入的瞭解控制反轉和依賴注入,只好把別人的理解轉載過來,非常痛恨市面上各種教程對所謂的術語張口就來,等自己有了時間一定要寫出新手都能看懂的教程。 首先想說說IoC(Inversion of Control,控制反轉)。這是spring的核心,貫穿始終。所謂IoC
【AutoFac】依賴注入和控制反轉的使用
在開始之前首先解釋一下我認為的依賴注入和控制反轉的意思。(新手理解,哪裡說得不正確還請指正和見諒) 控制反轉:我們向IOC容器發出獲取一個物件例項的一個請求,IOC容器便把這個物件例項“注入”到我們的手中,在這個時候我們不是一個建立者,我們是以一個請求者的身份去請求容器給我們這個物件例項。我們所有的物件依賴
【轉】WPF自定義控制元件與樣式(3)-TextBox & RichTextBox & PasswordBox樣式、水印、Label標籤、功能擴充套件
一.前言.預覽 申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。 本文主要是對文字輸入控制元件進行樣式開發,及相關擴充套件功能開發,主要內容包括: 基本文字框TextBox控制元件樣式及擴充套件功能,實現了樣式、水印、Label標籤、功
【轉】WPF自定義控制元件與樣式(5)-Calendar/DatePicker日期控制元件自定義樣式及擴充套件
一.前言 申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。 本文主要內容: 日曆控制元件Calendar自定義樣式; 日期控制元件DatePicker自定義樣式,及Label標籤、水印、清除日期功能擴充套件; 二.Calend