步进电机驱动总结

步进电机的执行过程具有一个经典过程是:  加速阶段--运行阶段--减速阶段

 参考链接:https://www.cnblogs.com/heyxiaotang/p/5701087.html

arduino的线性控制简单示例:

int x;
int s=110;
int step_l=7000;
void setup()
 { 
    pinMode(6,OUTPUT);  // Enable 
    pinMode(5,OUTPUT);  // Step 
    pinMode(4,OUTPUT);  // Direction
    digitalWrite(6,LOW);   // Set Enable low
 }

void loop()
 {
    digitalWrite(4,LOW);   // Set Direction high 正转
    for(x = 400; x > s; x--)   // Loop 200 times  加速阶段
    { 
        digitalWrite(5,HIGH);   // Output high 
        delayMicroseconds(x);   // Wait 1/2 a ms 
        digitalWrite(5,LOW);   // Output low 
        delayMicroseconds(x);   // Wait 1/2 a ms
     } 
    
    for(x = 0; x < step_l; x++)   // Loop 200 times  运行阶段
    { 
        digitalWrite(5,HIGH);   // Output high 
        delayMicroseconds(s);   // Wait 1/2 a ms 
        digitalWrite(5,LOW);   // Output low 
        delayMicroseconds(s);   // Wait 1/2 a ms
     } 
    for(x = s; x < 400; x++)   // Loop 200 times 减速阶段
    { 
        digitalWrite(5,HIGH);   // Output high 
        delayMicroseconds(x);   // Wait 1/2 a ms 
        digitalWrite(5,LOW);   // Output low 
        delayMicroseconds(x);   // Wait 1/2 a ms
     } 
    delay(1000);   // pause one second


    
    digitalWrite(4,HIGH);       // Set Direction low  反转
    
    for(x = 400; x > s; x--)   // Loop 200 times  加速阶段
    { 
        digitalWrite(5,HIGH);   // Output high 
        delayMicroseconds(x);   // Wait 1/2 a ms 
        digitalWrite(5,LOW);   // Output low 
        delayMicroseconds(x);   // Wait 1/2 a ms
     } 
     
    for(x = 0; x < step_l; x++)   // Loop 200 times  运行阶段
   {
        digitalWrite(5,HIGH);     // Output high 
        delayMicroseconds(s);   // Wait 1/2 a ms
        digitalWrite(5,LOW);      // Output low
        delayMicroseconds(s);   // Wait 1/2 a ms 
    } 

    for(x = s; x < 400; x++)   // Loop 200 times  减速阶段
    { 
        digitalWrite(5,HIGH);   // Output high 
        delayMicroseconds(x);   // Wait 1/2 a ms 
        digitalWrite(5,LOW);   // Output low 
        delayMicroseconds(x);   // Wait 1/2 a ms
     } 
    delay(1000);   // pause one second 
}

 

转载于:https://www.cnblogs.com/mlh-bky/p/10296447.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值