黄工无刷电机学习
直播中

李敏

7年用户 1354经验值
私信 关注
[问答]

请问中断如何控制电机反向转动?

请问中断如何控制电机反向转动?

回帖(1)

文汝寒

2021-10-18 10:26:52
1: 2: /* 3: Stepper Motor Control - one revolution 4: 5: This program drives a unipolar or bipolar stepper motor. 6: The motor is attached to digital pins 8 - 11 of the Arduino. 7: 8: The motor should revolve one revolution in one direction, then 9: one revolution in the other direction. 10: 11: 12: Created 11 Mar. 2007 13: Modified 30 Nov. 2009 14: by Tom Igoe 15: 16: */ 17: 18: #include 19: 20: int stepsPerRevolution = 200; 21: int pbIn = 5; 22: 23: 24: Stepper myStepper(stepsPerRevolution, 9,7,8,6); 25: 26: void setup() { 27: attachInterrupt(pbIn,stateChange,RISING); 28: // set the speed at 60 rpm: 29: myStepper.setSpeed(60); 30: // initialize the serial port: 31: Serial.begin(9600); 32: } 33: 34: void loop() { 35: // step one revolution in one direction: 36: Serial.println("clockwise"); 37: myStepper.step(stepsPerRevolution); 38: delay(500); 39: } 40: 41: void stateChange() 42: { 43: stepsPerRevolution = -stepsPerRevolution; 44: }不知道为什么,当行程开关按下的时间不一样时,会出现这样一种怪现象:电机先反向转了一圈,然后又恢复了原来的方向,有点诡异。而且电机对开关的响应还是迟钝,大概这个也是Arduino的缺点,不过肯定有优化的方法,也可能是我对电机的库函数的理解不对!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分