中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

讓28BYJ-48步進電機轉起來

發布時間:2020-08-07 10:05:07 來源:網絡 閱讀:1957 作者:yuw2018 欄目:網絡安全

再從新看一下下面的步進電機外不雅圖和外部構造圖:步進電機一共有 5 根引線,個中白色的是公共端,銜接到 5V 電源,接下來的橙、黃、粉、藍就對應了 A、B、C、D 相;那么假如要導通 A 相繞組,就只需將橙色線接地即可,B 相則×××接地,依此類推;再依據上述單四拍和八拍任務進程的解說,可以得出下面的繞組掌握次序表,如表 9-1 所示:
表 9-1 八拍形式繞組掌握次序表


12345678
P1-紅VCCVCCVCCVCCVCCVCCVCCVCC
P2-橙GNDGND




GND
P3-黃
GNDGNDGND



P4-粉


GNDGNDGND

P5-藍




GNDGNDGND


我們板子上掌握步進電機局部是和板子上的顯示掌握的 74HC138 譯碼器局部復用的P1.0~P1.3,關于跳線我們在第 3 章曾經講過了,經過調劑跳線帽的地位可以讓 P1.0~P1.3掌握步進電機的四個繞組,如圖 9-5 所示。

讓28BYJ-48步進電機轉起來
圖 9-5  顯示譯碼與步進電機的選擇跳線


假如要運用電機的話,需求把 4 個跳線帽都調到跳線組的左側(開辟板上的實踐地位),即左側針和兩頭針連通(對應道理圖中的兩頭和下邊的針),就可以運用 P1.0 到 P1.3 掌握步進電機了,如要再運用顯示局部的話,就要再換回到右側了。那假如人人既想讓顯示局部正常任務,又想讓電機任務該怎樣辦呢?跳線帽堅持在右側,用杜邦線把步進電機的掌握引腳(即左側的排針)銜接到其它的暫不運用的單片機 IO 上即可。
再來看一下我們步進電機的道理圖,步進電機的掌握電路如圖 9-6 所示。

讓28BYJ-48步進電機轉起來
圖 9-6  步進電機掌握電路


固然,單片機的 IO 口可以直接輸入 0V 和 5V 的電壓,然則電流驅動才能,也就是帶載才能十分無限,所以我們在每相的掌握線上都添加一個三極管來進步驅動才能。由圖中可以看出,若要使 A 相導通,則必需是 Q2 導通,此時 A 相也就是橙色線就相當于接地了,于是A 相繞組導通,此時單片機 P1 口低 4 位應輸入 0b1110,即 0xE;如要 A、B 相反時導通,那么就是 Q2、Q3 導通,P1 口低 4 位應輸入 0b1100,即 0xC,依此類推,我們可以失掉下面的八拍節奏的 IO 掌握代碼數組:
    unsigned char code BeatCode[8] = { 0xE, 0xC, 0xD, 0x9, 0xB, 0x3, 0x7, 0x6 };
到這里,似乎一切的邏輯成績都處理了,輪回將這個數組內的值送到 P1 口就行了。然則,只需再深化想一下就會發現還有個成績:多長工夫送一次數據,也就是說一個節奏要繼續多長工夫適宜呢?是隨便的嗎?當然不是了,這個工夫是由步進電機的啟動頻率決議的。啟動頻率,就是步進電機在空載狀況下可以正常啟動的最高脈沖頻率,假如脈沖頻率高于該值,電機就不克不及正常啟動。表 9-2 就是由廠家供給的步進電機參數表,我們來看一下。
表 9-2 28BYJ-48 步進電機參數表

供電
電壓
相數相電阻
Ω
步進角度加速比啟動頻率
P.P.S
轉矩
g.cm
噪聲
dB
絕緣介
電強度
5V450±10%5.625/641:64≥550≥300≤35600VAC


表中給出的參數是≥550,單元是 P.P.S,即每秒脈沖數,這里的意思就是說:電機包管在你每秒給出 550 個步進脈沖的狀況下,可以正常啟動。那么換算成單節奏繼續工夫就是1s/550=1.8ms,為了讓電機可以啟動,我們掌握節奏刷新工夫大于 1.8ms 就可以了。有了這個參數,我們就可以入手寫出最復雜的電機遷移轉變程序了,如下:

			#include <reg52.h> unsigned char code BeatCode[8] = { //步進電機節奏對應的 IO 掌握代碼 0xE, 0xC, 0xD, 0x9, 0xB, 0x3, 0x7, 0x6 }; void delay(); void main(){ unsigned char tmp; //界說一個暫時變量 unsigned char index = 0; //界說節奏輸入索引 while (1){ tmp = P1; //用 tmp 把 P1 口以后值暫存 tmp = tmp & 0xF0; //用&操作清零低 4 位 //用|操作把節奏代碼寫到低 4 位 tmp = tmp | BeatCode[index]; //把低 4 位的節奏代碼和高 4 位的原值送回 P1 P1 = tmp; index++; //節奏輸入索引遞增 index = index & 0x07; //用&操作完成到 8 歸零 delay(); //延時 2ms,即 2ms 履行一拍 } } /* 軟件延時函數,延時約 2ms */ void delay(){ unsigned int i = 200; while (i--); }

把程序編譯下載到板子上嘗嘗吧!看看電機轉了沒有?要記得換跳線哦!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸溪县| 凉城县| 海阳市| 乌拉特前旗| 余江县| 东乡| 临澧县| 大庆市| 沧源| 灌南县| 正宁县| 固始县| 阿拉善右旗| 富宁县| 正定县| 黄山市| 潜江市| 延川县| 礼泉县| 奇台县| 新河县| 兴城市| 灵璧县| 新巴尔虎右旗| 子洲县| 深水埗区| 东丽区| 苏尼特左旗| 梁山县| 蛟河市| 三亚市| 江华| 灵宝市| 乌兰浩特市| 新民市| 锡林浩特市| 阿荣旗| 左权县| 喀喇| 富蕴县| 南陵县|