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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機怎么控制舵機這樣旋轉啊?

  [復制鏈接]
回帖獎勵 200 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:421090 發表于 2018-11-5 15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
可以通過程序來這樣控制嘛?我按一個鍵位,舵機轉動90度然后轉回去。我按第二個鍵位舵機來回轉動90度(5次)。可以通過一個舵機來控制嗎?如果不可以那么分開用一個單片機控制兩個舵機可以做到嘛?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:421090 發表于 2018-11-5 15:36 | 只看該作者
如果能有大佬寫程序的話可以在加黑幣。本人窮逼只能送黑幣希望有大佬幫幫忙。
回復

使用道具 舉報

板凳
ID:228467 發表于 2018-11-5 22:02 | 只看該作者
可以實現的,51單片機和STM32都可以的
回復

使用道具 舉報

地板
ID:421482 發表于 2018-11-6 08:54 | 只看該作者
電機 加驅動模塊 加單片機就可以了
回復

使用道具 舉報

5#
ID:246251 發表于 2018-11-6 10:22 | 只看該作者
pwm控制
回復

使用道具 舉報

6#
ID:394504 發表于 2018-11-7 18:13 | 只看該作者
單片機是不能直接接在電機上的 所以要加驅動模塊隔離 兩個按鍵 直接判斷是哪個按鍵按下再給接驅動的io輸出是轉一次 還是5次的的程序不就好了嗎
回復

使用道具 舉報

7#
ID:422557 發表于 2018-11-7 20:00 | 只看該作者
脈寬調頻控制
回復

使用道具 舉報

8#
ID:422604 發表于 2018-11-7 20:53 | 只看該作者
pwm脈沖帶寬調制,用stm32,杜洋教程有詳細介紹
回復

使用道具 舉報

9#
ID:422604 發表于 2018-11-7 20:56 | 只看該作者
b站中杜洋教程有stm32,pwm控制的詳細介紹視頻以及工程
回復

使用道具 舉報

10#
ID:419294 發表于 2018-11-8 13:03 | 只看該作者
#include <reg52.h>
unsigned char count;      //0.5ms次數標識
sbit pwm =P0^1 ;          //PWM信號輸出
sbit jia =P1^2;           //角度增加按鍵檢測IO口
sbit jan =P1^1;           //角度減少按鍵檢測IO口
unsigned char jd;         //角度標識
void delay(unsigned char i)//延時
{
  unsigned char j,k;
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}
void Time0_Init()          //定時器初始化
{
TMOD = 0x01;           //定時器0工作在方式1   
IE   = 0x82;
TH0  = 0xfe;
TL0  = 0x33;     //11.0592MZ晶振,0.5ms
    TR0=1;                 //定時器開始
}
void Time0_Int() interrupt 1 //中斷程序
{
TH0  = 0xfe;             //重新賦值
TL0  = 0x33;
    if(count< jd)              //判斷0.5ms次數是否小于角度標識
      pwm=1;                  //確實小于,PWM輸出高電平
    else
      pwm=0;                  //大于則輸出低電平
    count=(count+1);          //0.5ms次數加1
    count=count%40;     //次數始終保持為40 即保持周期為20ms
}
void keyscan()              //按鍵掃描
{
   if(jia==0)               //角度增加按鍵是否按下
  {
    delay(10);              //按下延時,消抖
    if(jia==0)              //確實按下
     {
      jd++;                 //角度標識加1
      count=0;              //按鍵按下 則20ms周期從新開始
      if(jd==6)
        jd=5;               //已經是180度,則保持
      while(jia==0);        //等待按鍵放開
     }
  }
  if(jan==0)                //角度減小按鍵是否按下
  {
    delay(10);
    if(jan==0)
     {
      jd--;                 //角度標識減1
      count=0;
      if(jd==0)
        jd=1;               //已經是0度,則保持
      while(jan==0);
     }
  }
}
void main()
{
jd=3;
count=0;
Time0_Init();            
while(1)
{
  keyscan();               //按鍵掃描
  
}
}
回復

使用道具 舉報

11#
ID:423083 發表于 2018-11-8 16:26 | 只看該作者
可以啊,舵機轉動的角度是跟pwm波的占空比對應的
回復

使用道具 舉報

12#
ID:423225 發表于 2018-11-8 20:26 | 只看該作者
程序控制的吧
回復

使用道具 舉報

13#
ID:423287 發表于 2018-11-8 21:45 | 只看該作者
操作步驟: 1 單片機,舵機,電源共地; 2 用兩個穩壓芯片進行供電,將電源分開來; 3 舵機信號端沒有直接連接單片機IO口,我串了一個10K的電阻,也就是這一步之后就可以控制舵機。
回復

使用道具 舉報

14#
ID:423287 發表于 2018-11-8 21:46 | 只看該作者
#include<REG52.H>
#define OUT P0
#define CON P2
#define ms0_5Con  461
#define ms2_5Con  2304
typedef unsigned char unit8;
typedef unsigned short unit_16;

sbit servo0=OUT^0;
sbit servo1=OUT^1;
sbit servo2=OUT^2;
sbit servo3=OUT^3;
sbit servo4=OUT^4;
sbit servo5=OUT^5;
sbit servo6=OUT^6;
sbit servo7=OUT^7;

sbit KEY1=CON^0;
sbit KEY2=CON^1;

unit_16 pwm[8]={1382,1382,1382,1382,1382,1382,1382,1382}; //??90?,(???1382.4,???1382)  

void Inter_Form()
{
        TMOD|=0x01;
        TH0  =0xf7;
        TL0  =0x00;
        TR0  =1;
        ET0  =1;
        EA   =1;
}

void delay(unit8 x)
{
        unit8 i=0;
        while(x--)
        {
                for(i=0;i<125;i++);
        }
}
/*------------------------?????--------------------------*/
/*unit_16 Transform(uchar val)
{
//0?=0.5ms, 45?=1ms, 90?=1.5ms, 135?=2ms, 180?=2.5ms
//2.5 ms??? F700, (12n/11059200=2.5/1000, n=2304, X=65536-2304=63232 > F700)
//return (unit_16)(((float)(2/180)*X+0.5)/1000*11059200/12);
unit_16 a = (val+46)*10;
if(a<ms0_5Con)
a=ms0_5Con;
if(a>ms2_5Con)
a=ms2_5Con;
return a;
}  */

/*-------------------------???---------------------------*/  

void Steering_UP(unit8 val)
{
if(pwm[val]>ms2_5Con)
pwm[val]=ms2_5Con;
pwm[val]=pwm[val]+10;
}

void Steering_Down(unit8 val)
{
if(pwm[val]<ms0_5Con)
pwm[val]=ms0_5Con;
pwm[val]=pwm[val]-10;
}

void main(void)
{
Inter_Form();
while(1)
{
if(!KEY1)
   {
   delay(2);
   if(!KEY1)
   Steering_UP(0);
   }
   else if(!KEY2)
   {
        delay(2);
   if(!KEY2)
   Steering_Down(0);
   }                 
}
}

/*------------------------??????--------------------------*/
void SteeringGear() interrupt 1
{
        static unit8 pwm_flag=0;
switch(pwm_flag)
{
case 1: servo0=1; TH0=-pwm[0]>>8; TL0=-pwm[0]; break;
case 2: servo0=0; TH0=-(ms2_5Con-pwm[0])>>8; TL0=-(ms2_5Con-pwm[0]); break;
case 3: servo1=1; TH0=-pwm[1]>>8; TL0=-pwm[1]; break;
case 4: servo1=0; TH0=-(ms2_5Con-pwm[1])>>8; TL0=-(ms2_5Con-pwm[1]); break;
case 5: servo2=1; TH0=-pwm[2]>>8; TL0=-pwm[2]; break;
case 6: servo2=0; TH0=-(ms2_5Con-pwm[2])>>8; TL0=-(ms2_5Con-pwm[2]); break;
case 7: servo3=1; TH0=-pwm[3]>>8; TL0=-pwm[3]; break;
case 8: servo3=0; TH0=-(ms2_5Con-pwm[3])>>8; TL0=-(ms2_5Con-pwm[3]); break;
case 9: servo4=1; TH0=-pwm[4]>>8; TL0=-pwm[4]; break;
case 10: servo4=0; TH0=-(ms2_5Con-pwm[4])>>8; TL0=-(ms2_5Con-pwm[4]); break;
case 11: servo5=1; TH0=-pwm[5]>>8; TL0=-pwm[5]; break;
case 12: servo5=0; TH0=-(ms2_5Con-pwm[5])>>8; TL0=-(ms2_5Con-pwm[5]); break;
case 13: servo6=1; TH0=-pwm[6]>>8; TL0=-pwm[6]; break;
case 14: servo6=0; TH0=-(ms2_5Con-pwm[6])>>8; TL0=-(ms2_5Con-pwm[6]); break;
case 15: servo7=1; TH0=-pwm[7]>>8; TL0=-pwm[7]; break;
case 16: servo7=0; TH0=-(ms2_5Con-pwm[7])>>8; TL0=-(ms2_5Con-pwm[7]); break;
default:TH0=0xff; TL0=0x80; pwm_flag=0;
}
pwm_flag++;
回復

使用道具 舉報

15#
ID:423287 發表于 2018-11-8 21:47 | 只看該作者
操作步驟:
1 單片機,舵機,電源共地;
2 用兩個穩壓芯片進行供電,將電源分開來;
3 舵機信號端沒有直接連接單片機IO口,我串了一個10K的電阻,也就是這一步之后就可以控制舵機
回復

使用道具 舉報

16#
ID:422661 發表于 2018-11-17 12:34 | 只看該作者
回復

使用道具 舉報

17#
ID:428557 發表于 2018-11-18 20:35 | 只看該作者
[圖片][圖片] 一個就能做到
回復

使用道具 舉報

18#
ID:429166 發表于 2018-11-19 17:57 | 只看該作者
可以通過代買來實現的,可以通過一個舵機來實現的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久免费看 | 国产乱码精品一区二区三区五月婷 | 一区二区三区精品视频 | 色桃网| 一级片在线播放 | 久久精品青青大伊人av | 在线播放一区二区三区 | 香蕉大人久久国产成人av | 欧美久久精品 | 91精品一区二区三区久久久久 | 国产精品久久久久久久久久久久冷 | 日韩一区二区在线视频 | 国产精品久久久久久久久久 | 毛片久久久 | 亚洲福利网站 | 亚洲国产高清免费 | 日韩www| 精品欧美一区二区三区免费观看 | 国产伦精品 | 91久久精品一区二区二区 | 亚洲一区免费视频 | 久久国产精品99久久久久久丝袜 | 91传媒在线观看 | 国产一区二区在线播放 | 欧美精品一区二区三区在线播放 | 免费在线h视频 | 一区二区三区四区在线 | 99久久久国产精品 | 欧美精品一区二区三区视频 | 日日躁狠狠躁aaaaxxxx | 毛片黄片 | 乱码av午夜噜噜噜噜动漫 | 台湾a级理论片在线观看 | cao在线 | 天堂网avav | 久久久久久影院 | 国产精彩视频在线观看 | 婷婷桃色网 | 在线观看国产视频 | 91视频精选| 国产精品一区二区三区在线 |