日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

proteus仿真micropython_[MicroPython]TurniBit开发板DIY自动窗帘模拟系统

發(fā)布時(shí)間:2025/3/20 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 proteus仿真micropython_[MicroPython]TurniBit开发板DIY自动窗帘模拟系统 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、準(zhǔn)備工作

üTurnipBit 開發(fā)板 一塊

ü下載數(shù)據(jù)線 一條

ü微型步進(jìn)電機(jī)(28BYJ-48) 一個(gè)

ü步進(jìn)電機(jī)驅(qū)動(dòng)板(ULN2003APG) 一塊

ü光敏傳感器 一個(gè)

üTurnipBit 擴(kuò)展板 一塊

ü接入網(wǎng)絡(luò)的電腦 一臺(tái)

ü在線可視化編程器

二、步進(jìn)電機(jī)的介紹

本次實(shí)驗(yàn)采用的是28BYJ-48 四相八拍電機(jī),電壓DC5V~12V。

24BYJ48名稱的含義:

24:電機(jī)外徑24mm

B:步進(jìn)電機(jī)中步字的拼音首字母

Y:永磁中永字的拼音首字母

J:減速的減字拼音首字母

48:四相8步

實(shí)物圖

工作原理

步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電機(jī),是現(xiàn)代數(shù)字程序控制系統(tǒng)中的主要執(zhí)行元件,應(yīng)用極為廣泛。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,稱為“步距角”,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。可以通過控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。

28BYJ-48 步進(jìn)電機(jī)參數(shù)表

上表中啟動(dòng)頻率≥550 P.P.S(每秒脈沖數(shù)),意思是要想正常啟動(dòng),需要單片機(jī)每秒至少給出550個(gè)步進(jìn)脈沖。那么每一節(jié)拍需要持續(xù)的時(shí)間就是1S/550≈1.8ms,所以控制節(jié)拍刷新的速率應(yīng)大約1.8ms。

驅(qū)動(dòng)原理

當(dāng)連續(xù)不斷的給電機(jī)發(fā)送控制脈沖時(shí),電機(jī)就會(huì)不斷的轉(zhuǎn)動(dòng)。每一個(gè)脈沖信號(hào)對(duì)應(yīng)步進(jìn)電機(jī)的某一相或兩相繞組的通電狀態(tài)改變一次,對(duì)應(yīng)轉(zhuǎn)子就會(huì)轉(zhuǎn)過一定的角度(步距角)。當(dāng)通電狀態(tài)的改變完成一個(gè)循環(huán)時(shí),轉(zhuǎn)子轉(zhuǎn)過一個(gè)齒距。

四相步進(jìn)電機(jī)可以在不同的通電方式下運(yùn)行,常見的通電方式:

四拍(單相繞組通電):A-B-C-D-A…

雙四拍(雙相繞組通電):AB-BC-CD-DA-AB-...

八拍: A-AB-B-BC-C-CD-D-DA-A…

三、器件的連接

1、將步進(jìn)電機(jī)白色接頭插到驅(qū)動(dòng)板對(duì)應(yīng)的座子上。

2、TurnipBit對(duì)應(yīng)插入擴(kuò)展板,記住帶有LED燈和按鍵的一面朝向擴(kuò)展板帶有針腳的一側(cè)。

3、將驅(qū)動(dòng)板與TurnipBit擴(kuò)展板連接起來(lái)。接線圖如下:

4、將光敏傳感器與TurnipBit擴(kuò)展板連接起來(lái)。接線圖如下:

四、開始編程

1、之前的教程一直都是使用拖拽可視化編程,這種方式可以快速讓零基礎(chǔ)小伙伴入門,但是在實(shí)際項(xiàng)目或工作中,還是要直接敲代碼的。今天就給大家介紹一下TurnipBit的可視化編程器的另一項(xiàng)功能--代碼編程。

之前看過編程的小伙伴,不難發(fā)現(xiàn),一打開編輯器首先進(jìn)入的就是代碼編程器界面。如下圖:

2、接下來(lái)用代碼實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制和光照數(shù)據(jù)的采集。

ü當(dāng)光照變?nèi)鯐r(shí),步進(jìn)電機(jī)順時(shí)針旋轉(zhuǎn)一周,模擬關(guān)閉窗簾的操作;

ü當(dāng)光照變強(qiáng)時(shí),步進(jìn)電機(jī)逆時(shí)針旋轉(zhuǎn)一周,模擬打開窗簾的操作;

完成源代碼:

# 在這里添加Python代碼

from microbit import *

Pin_All=[pin5,pin8,pin11,pin12]

#轉(zhuǎn)速(ms) 數(shù)值越大轉(zhuǎn)速越慢 最小值1.8ms

speed=5

STEPER_ROUND=512 #轉(zhuǎn)動(dòng)一圈(360度)的周期

ANGLE_PER_ROUND=STEPER_ROUND/360 #轉(zhuǎn)動(dòng)1度的周期

isOpen=False#表示窗簾的狀態(tài) True:打開 False:關(guān)閉

def SteperWriteData(data):

count=0

for i in data:

Pin_All[count].write_digital(i)

count+=1

def SteperFrontTurn():

global speed

SteperWriteData([1,1,0,0])

sleep(speed)

SteperWriteData([0,1,1,0])

sleep(speed)

SteperWriteData([0,0,1,1])

sleep(speed)

SteperWriteData([1,0,0,1])

sleep(speed)

def SteperBackTurn():

global speed

SteperWriteData([1,1,0,0])

sleep(speed)

SteperWriteData([1,0,0,1])

sleep(speed)

SteperWriteData([0,0,1,1])

sleep(speed)

SteperWriteData([0,1,1,0])

sleep(speed)

def SteperStop():

SteperWriteData([0,0,0,0])

def SteperRun(angle):

global ANGLE_PER_ROUND

val=ANGLE_PER_ROUND*abs(angle)

if(angle>0):

for i in range(0,val):

SteperFrontTurn()

else:

for i in range(0,val):

SteperBackTurn()

SteperStop()

while True:

light=pin0.read_analog()#讀取光敏傳感器傳遞過來(lái)的模擬量數(shù)據(jù)

#數(shù)值越大說(shuō)明光照度越小

if light>400:

if isOpen:

isOpen=False

SteperRun(-360)#光照小于設(shè)定的值,關(guān)閉窗簾

else:

if isOpen==False:

isOpen=True

SteperRun(360)#光照大于設(shè)定的值,打開窗簾

總結(jié)

以上是生活随笔為你收集整理的proteus仿真micropython_[MicroPython]TurniBit开发板DIY自动窗帘模拟系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。