• 步进电机驱动总结


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

     参考链接: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 
    }
  • 相关阅读:
    制作Elasticsearch的Parcel包和csd文件
    zabbix监控安装1
    linux官方源
    Nginx优化详解
    k8s-kubectl命令大全
    详解keepalived配置和使用
    keepalived工作原理和配置说明
    linux 内核参数优化
    批量更新软连接脚本
    Java 常用知识点汇总(数据类型之间转换、字符串的相关操作-截取、转换大小写等)
  • 原文地址:https://www.cnblogs.com/mlh-bky/p/10296447.html
Copyright © 2020-2023  润新知