#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);
}