zoukankan      html  css  js  c++  java
  • 步进电机驱动总结

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

     参考链接: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 
    }
  • 相关阅读:
    bzoj1638[Usaco2007 Mar]Cow Traffic 奶牛交通*
    元类练习题
    元类(metaclass)
    面向对象进阶——内置方法(二)
    面向对象进阶——内置方法
    类的方法练习——定义MySQL类
    面向对象进阶——类中的方法
    面向对象三大特性——封装(含property)
    面向对象三大特性——多态(含鸭子类型)
    面向对象三大特性——继承高阶(接口和抽象类)
  • 原文地址:https://www.cnblogs.com/mlh-bky/p/10296447.html
Copyright © 2011-2022 走看看