失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 关于Arduino uno控制两个42步进电机 使用的是DRV8825驱动芯片。

关于Arduino uno控制两个42步进电机 使用的是DRV8825驱动芯片。

时间:2019-09-07 06:00:20

相关推荐

关于Arduino uno控制两个42步进电机 使用的是DRV8825驱动芯片。

#include <Arduino.h>

#include <MsTimer2.h>

//#include <DRV8825.h>

//#include “A4988.h”

//#define MODE0 0

//#define MODE1 0

//#define MODE2 0

//#define MOTOR_STEPS 0

#define DIR1 A1

#define STEP1 2

#define EN1 A0

#define DIR2 A2

#define STEP2 4

#define EN2 A3

//DRV8825 stepper1(0, DIR1, STEP1, EN1, 0, 0, 0);

//DRV8825 stepper2(0, DIR2, STEP2, EN2, 0, 0, 0);

int Distance = 0;

int tick = 0; //计数值

void pwm();

//中断服务程序

void onTimer()

{

Serial.print("timer ");

Serial.println(tick++);

}

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

pinMode(A0, OUTPUT);//EN1使能口

pinMode(A1, OUTPUT);//DIR1正反转

pinMode(A2, OUTPUT);//DIR2正反转

pinMode(A3, OUTPUT);//EN2使能口

pinMode(2, OUTPUT);//PWM1口

pinMode(4, OUTPUT);//PWM2口

digitalWrite(A0, LOW);//电机使能

digitalWrite(A1, LOW);//正转

digitalWrite(A2, LOW);//电机使能

digitalWrite(A3, LOW);//正转

MsTimer2::set(1000, onTimer); //设置中断,每1000ms进入一次中断服务程序 onTimer()

MsTimer2::start(); //开始计时_开启定时器中断

//MsTimer2::stop(); //关闭定时器中断

}

void loop() {

// put your main code here, to run repeatedly:

digitalWrite(2, HIGH);

digitalWrite(4, HIGH);

delayMicroseconds(200);

digitalWrite(2, LOW);

digitalWrite(4, LOW);

delayMicroseconds(200);

if(tick == 5)

{

digitalWrite(A1, HIGH);//正转

digitalWrite(A2, HIGH);

}

else if(tick == 10)

{

digitalWrite(A1, LOW);

digitalWrite(A2, LOW);

tick = 0;

}

}

void pwm()

{

digitalWrite(2, HIGH);

delayMicroseconds(200);

digitalWrite(2, LOW);

delayMicroseconds(200);

}

如果觉得《关于Arduino uno控制两个42步进电机 使用的是DRV8825驱动芯片。》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。