“步进电机控制”的版本间的差异
(→调试) |
|||
第1行: | 第1行: | ||
+ | {{Language |Stepper_Motor_Control}} | ||
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- |
2014年6月25日 (三) 03:53的版本
Language | English |
---|
目的本教程将教大家如何用processing来控制步进电机,向左转向右转。 设备
原理图程序调试硬件搭建部分与进阶教程第三十八课步进电机驱动类似: http://www.microduino.cc/wiki/index.php?title=%E7%AC%AC%E4%B8%89%E5%8D%81%E5%85%AB%E8%AF%BE--Microduino_%E6%AD%A5%E8%BF%9B%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8/zh
步骤三:解释一下代码: 本例需要两端的代码,Processing端和Microduino端 Microduino: //读取串口数据,判断改变速度或者改变步数 void loop() { if(Serial.available()) { int size = Serial.available();//get serial data size for(int i=0;i<size;i++){ if(i==0) {//get command command=(char)Serial.read(); } else if(i>1) {//get number number += (char)Serial.read(); } } if(command=='s') {//'s' means to set speed stepper.setSpeed(number.toInt()); stepper.runSpeed(); } else if(command=='p') {//'p' means to stpper stepper.moveTo(number.toInt()); stepper.run(); } } }
在setup()中,以下代码用来加载调整速度和调整步数的控件 //加载controlP5 cp5 = new ControlP5(this); //加载滑动条用来调整速度 // add a vertical slider cp5.addSlider("slider") .setPosition(0, 580) .setSize(600, 20) .setRange(0, 600) .setValue(25) ; //加载调整步数控件 cp5.addSlider("sliderTicks") .setPosition(0,500) .setWidth(600) .setHeight(40) .setRange(-270,270) // values can range from big to small as well .setValue(0) .setNumberOfTickMarks(7) .setSliderMode(Slider.FLEXIBLE) ; //在draw()中绘制圆环进度用来显示速度值 float angle=map(speed, 0, 600, 0, 360); arc(width/2, height/2, 300, 300, turn, radians(angle)+turn); //速度控制事件处理 void slider(float speedValue) { speed=speedValue; port.write("s:"+(int)speedValue); } //步数控制事件处理 void sliderTicks(float stppedValue) { port.write("p:"+(int)stppedValue); } 步骤四:下载代码并编译通过。 步骤五:运行后,分别调整速度和步数,看看步进电机有啥反应。 结果调整速度可以设置步进电机速度,调整步数可以控制步进电机转动的角度,控制界面像这样 视频 |