51单片机控制小舵机
生活随笔
收集整理的這篇文章主要介紹了
51单片机控制小舵机
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以前從沒有想過寫博客,但是最近發現以前的代碼老是找不到,而且找到了也不一定想得起當時的邏輯,很麻煩,所以打算寫寫提醒一下自己。
最近老板讓做一個掃描二維碼裝鑰匙的小盒子,就給個小舵機和3D打印機,傳動結構啥的基本搞定了,就差程序了,所以打算先測試一下舵機
說明一下舵機給20ms為周期高電平占0.5到2.5ms的的PWM波就能動,接下來上代碼
用不到延時函數所以就沒寫
void Init_Timer0() // 定時器初始化 {TMOD=0x01;//定時器0 工作模式一,16位計數TH0=(65535-10)/256;//應該是每次10usTL0=(65535-10)%256;EA = 1;ET0 = 1;TR0 = 1;PT0=1; }這里我剛開始的時候寫完程序舵機總是不動,折騰了半個小時沒發現哪里有錯,所以就翻出了邏輯分析儀測了一下引腳的信號,發現有點問題,計算了一下一次定時中斷有0.4432ms所以把后面主函數的代碼也稍微改了改。因為就用小舵機開關門,精度要求不高所以就不管這些了。我記得以前好像沒遇到過這樣的問題,希望有人指點一下。
void timer0(void) interrupt1 //實測一次中斷0.04432ms { TH0=(65535-10)/256; TL0=(65535-10)%256; if (flag>PWM_Value){PWM_OUT=0;}else{PWM_OUT=1;}if (flag>451){flag=0;}flag++; }主函數簡單點
void main() {PWM_Value = 25; //pwm值為11-56,42時門框打開,25時門框閉合Init_Timer0();while(1);}程序比較簡單,打算留著,過些日子閑下來沒事干再做個4足。
總結
以上是生活随笔為你收集整理的51单片机控制小舵机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交换机、路由器、防火墙综述
- 下一篇: Linux电源管理_Wakeup eve