久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機控制舵機程序 紅黃褐三根線PWM控制

[復制鏈接]
跳轉到指定樓層
樓主
舵機有紅黃褐三根線,紅線接VCC,褐線接GND,黃線接PWM輸入信號,用PWM信號控制舵機的轉動
pwm信號的周期為20ms,0,5ms-0°,1ms-45°,1.5ms-90°,2.0ms-135°,2.5ms-180°,通過控制單片機使其在pwm引腳輸出對應的pwm波形來控制舵機轉動到指定的角度
下面我寫的是用K1開關控制的舵機自動轉動的程序,按下K1,舵機轉動,再次按下K1,舵機停止轉動
注意:因為舵機平均0.13MS轉動60°,所以當產生指定的信號后需要維持一端時間,使舵機能轉動到指定的角度,然后載改變PWM信號,信號維持時間的長短控制轉動的快慢

//使用15系列51單片機的定時器2進行中斷計時產生PWM波形信號
#include<STC15F2K60S2.h>
int flag=0;
sbit pwm1=P1^1;
sbit key1=P3^2;//開關1引腳
unsigned int value[]={6,11,16,21,16,11};//誤差原因,6-0°,11-45°,16-90°,21-135°,26-180°
unsigned int percent = 0;//0.1ms次數標識
int k=0,count=0;
void Timer0Initial()
{
        T2L = 0xAE;               
        T2H = 0xFB;
} //定時0.1ms,11.0592MHz,0.01%的誤差

void initial_Timer()
{
        
                  
        
        AUXR |= 0x04;        //設置1T模式
               
        Timer0Initial();        
        
        AUXR |= 0x10;//定時器2開始計時
        IE2 |=0x04;        //允許定時器2中斷
        EA = 1;        //打開總中斷
}

void delay(unsigned int x)
{
        unsigned int i,j;
        for(i = 0;i< x; ++i)
                for(j = 120; j >0 ; --j)
                        ;
}//延時函數,1ms

void keyscan()//按鍵掃描函數
{
        if(key1 == 0)
        {
                delay(3);//按鍵消抖,延時消抖
                if(key1 == 0)
                {
                        
                        while(!key1);//按鍵放開
                        
                        flag=!flag;
                }
               
        }

        
}

void initial()
{
        key1 = 1;
        
        
        initial_Timer();
}//初始化

void Timer0() interrupt 12 //定時器2
{
        if(flag==1){//若打開開關
                percent += 1;//設置周期
                if(percent == 200)
                {
                        count++;
                        percent = 0;
                        pwm1 = 1;
                }//產生低電平,當達到20ms時,進入下個周期,重新產生蹈叩縉?
                if(percent == value[k])
                {
                        
                        pwm1 = 0;
                }//產生高電平,當時間達到時,變為低電平
                if(count==20){
                        count=0;
                        k++;
                        if(k==6)k=0;
                }//,13ms/60°,延時,給舵機時間轉動到指定的角度
        }
        Timer0Initial();

}

剩下的程序在文件中
定時器2舵機.zip (29.63 KB, 下載次數: 86)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:658403 發表于 2019-12-9 00:03 | 只看該作者
驅動圖中這個舵機  需要程序就行  還是需要舵機驅動模塊?
回復

使用道具 舉報

板凳
ID:725540 發表于 2020-4-27 12:35 | 只看該作者
qkaitt 發表于 2019-12-9 00:03
驅動圖中這個舵機  需要程序就行  還是需要舵機驅動模塊?

需要單獨的舵機模塊
回復

使用道具 舉報

地板
ID:763807 發表于 2020-5-29 12:46 來自手機 | 只看該作者
song666 發表于 2020-4-27 12:35
需要單獨的舵機模塊

需要電源嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区在线视频 | 欧美精品网站 | 成人欧美 | 国产情侣在线看 | 黄频免费 | 一级片在线观看视频 | 国产偷录视频叫床高潮对白 | 久久久久久91 | 国产免费一二三区 | 欧美成人激情 | 美女爽到呻吟久久久久 | 国产乱码精品1区2区3区 | 欧美福利 | 午夜电影合集 | 免费99视频 | 欧美在线观看免费观看视频 | 亚洲国产精品99久久久久久久久 | 国产精品一区二区在线 | 天天综合网天天综合色 | 亚洲免费精品一区 | 精品久久久久久久久久久久 | 成人欧美一区二区三区在线观看 | 国产高清久久 | 粉嫩av久久一区二区三区 | 一区二区三区在线播放视频 | 亚洲欧美中文日韩在线v日本 | 国产精品成人一区二区 | 国产乱码精品一区二区三区五月婷 | 91精品在线播放 | 中文字幕国产一区 | 国产成人精品一区二区三区四区 | 欧美日韩中文国产一区发布 | 久久小视频 | 久久婷婷香蕉热狠狠综合 | 天天爽天天干 | 欧美日韩在线不卡 | 精品久久av | 亚洲精品国产电影 | 国产精品av久久久久久久久久 | 精品一区二区三区四区在线 | 一级黄色片在线免费观看 |