亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 單片機怎么控制舵機這樣旋轉啊? [打印本頁]

作者: shirowhite    時間: 2018-11-5 15:35
標題: 單片機怎么控制舵機這樣旋轉啊?
可以通過程序來這樣控制嘛?我按一個鍵位,舵機轉動90度然后轉回去。我按第二個鍵位舵機來回轉動90度(5次)。可以通過一個舵機來控制嗎?如果不可以那么分開用一個單片機控制兩個舵機可以做到嘛?

作者: shirowhite    時間: 2018-11-5 15:36
如果能有大佬寫程序的話可以在加黑幣。本人窮逼只能送黑幣希望有大佬幫幫忙。

作者: 上善若水001    時間: 2018-11-5 22:02
可以實現的,51單片機和STM32都可以的
作者: jiaosw410923    時間: 2018-11-6 08:54
電機 加驅動模塊 加單片機就可以了
作者: new_hand    時間: 2018-11-6 10:22
pwm控制
作者: qingfengyu    時間: 2018-11-7 18:13
單片機是不能直接接在電機上的 所以要加驅動模塊隔離 兩個按鍵 直接判斷是哪個按鍵按下再給接驅動的io輸出是轉一次 還是5次的的程序不就好了嗎
作者: xiabing0420    時間: 2018-11-7 20:00
脈寬調頻控制
作者: 戎馬半生戀    時間: 2018-11-7 20:53
pwm脈沖帶寬調制,用stm32,杜洋教程有詳細介紹
作者: 戎馬半生戀    時間: 2018-11-7 20:56
b站中杜洋教程有stm32,pwm控制的詳細介紹視頻以及工程

作者: Dremt    時間: 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();               //按鍵掃描
  
}
}
作者: mogui37    時間: 2018-11-8 16:26
可以啊,舵機轉動的角度是跟pwm波的占空比對應的
作者: yly1314    時間: 2018-11-8 20:26
程序控制的吧
作者: 123liao    時間: 2018-11-8 21:45
操作步驟: 1 單片機,舵機,電源共地; 2 用兩個穩壓芯片進行供電,將電源分開來; 3 舵機信號端沒有直接連接單片機IO口,我串了一個10K的電阻,也就是這一步之后就可以控制舵機。
作者: 123liao    時間: 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++;
作者: 123liao    時間: 2018-11-8 21:47
操作步驟:
1 單片機,舵機,電源共地;
2 用兩個穩壓芯片進行供電,將電源分開來;
3 舵機信號端沒有直接連接單片機IO口,我串了一個10K的電阻,也就是這一步之后就可以控制舵機
作者: 999999999瀟灑    時間: 2018-11-17 12:34
參考https://download.csdn.net/download/chenshm/2656320?web=web
作者: Z1235789    時間: 2018-11-18 20:35
[圖片][圖片] 一個就能做到
作者: 封小墨    時間: 2018-11-19 17:57
可以通過代買來實現的,可以通過一個舵機來實現的。




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1