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 
    }
  • 相关阅读:
    c++11 内存模型解读
    无锁队列的实现
    c++中的原子操作
    还是说Memory Model,gcc的__sync_synchronize真是太坑爹了
    对于Linux平台下C语言开发中__sync_函数的认识
    理解 Memory barrier
    pthread_barrier_init,pthread_barrier_wait简介
    explicit构造函数的作用
    droofs
    27.
  • 原文地址:https://www.cnblogs.com/mlh-bky/p/10296447.html
Copyright © 2011-2022 走看看