欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2511|回復: 0
打印 上一主題 下一主題
收起左側

直流電機的變速轉動及正反轉單片機程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:590981 發表于 2019-8-1 19:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
今天嘗試了小車里面的直流電機部分,嘗試了用pwm控制的變速轉動及用改變IO口電平的正反轉。
在控制變速轉動中,拿之前的呼吸燈來做成功了。main.c中主函數如下:
int main(void)
{
u16 led0pwmval=0;
u8 dir=1;
delay_init();       //延時函數初始化
LED_Init();     //初始化與LED連接的硬件接口
TIM1_PWM_Init(899,0);//不分頻。PWM頻率=72000/(899+1)=80Khz
while(1)
{
delay_ms(10);
if(dir)led0pwmval++;
else led0pwmval–;
if(led0pwmval>300)dir=0;
if(led0pwmval==0)dir=1;
TIM_SetCompare1(TIM1,led0pwmval);
}
}
經過相應的定義和初始化之后,TIM1_PWM_Init(899,0);按我的理解通俗來說這句話可以控制一個循環周期的時長。“899”代表了arr的值,會決定周期時長;而“0”即psc的值會決定是否時鐘預分頻。
led0pwmval的值即直接控制了PWM的占空比。另外在這個實驗中在配置 AFIO 相關寄存器的時候,必須先開啟輔助功能時鐘。  (之前兩天的當中有什么情況需要用的IO的復位(AFIO))。
在while循環里面,先消抖,而后led0pwmval 即PWM 比較值,通過他的改變控制PWM的占空比。在每一個循環中,因為led0pwmval值的不同,燈的亮度會發生改變,同樣的電機的轉速也會發生改變。
另外在改變PWM的占空比的時候,改變值“300”,會發現當改變值超過300后,燈的亮度的改變將看不出來,只有時間的變化。是燈的原因與程序無關。
在直流電機的正反轉當中,開始直接想的是在上一個轉速上面直接改變IO口電平的狀態來改變電機兩個引腳的高低,達到正反轉的目的,結果沒能實現。具體原因還不知道。
然后單獨嘗試直流電機的正反轉,即通過配置高低電平來實現控制電機的正反轉。具體程序參照“https://blog.csdn.net/teavamc/article/details/77429519
自己在開始寫這個的時候遇到的問題是不知道怎么來表示,原理很簡單,
#define IN1(a) if (a)  \ GPIO_SetBits(GPIOA,GPIO_Pin_2);\else  \ GPIO_ResetBits(GPIOA,GPIO_Pin_2) 但像這樣的宏定義自己之前沒有想到,在這句話中要注意:1,這句話最后不需要;來結尾;2,\代表的是連接前后兩句話。
---------------------
作者:天甄
來源:CSDN

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表