10a逝
获得 0 次赞
帮助过0人
有程序,想通过arduino和tb6600实现步进电机转动一定的圈数,需要知道什么,怎么改程序#define PUL 9 //CLK#define DIR 10 //CWvoid setup() { // put your setup code here, to run once: pinMode(PUL,OUTPUT); pinMode(DIR,OUTPUT); Serial.begin(9600); }void loop() { // put your main code here, to run repeatedly: digitalWrite(DIR,LOW); for(int i ; i<=600 ; i++) { digitalWrite(PUL,LOW); delayMicroseconds(20); digitalWrite(PUL,HIGH); delayMicroseconds(20); }
程序如下#define PUL 9 //CLK#define DIR 10 //CWvoid setup() { // put your setup code here, to run once: pinMode(PUL,OUTPUT); pinMode(DIR,OUTPUT); Serial.begin(9600); }void loop() { // put your main code here, to run repeatedly: digitalWrite(DIR,LOW); for(int i ; i<=600 ; i++) { digitalWrite(PUL,LOW); delayMicroseconds(20); digitalWrite(PUL,HIGH); delayMicroseconds(20); } }如果想电机转十圈,要知道什么,程序怎么改
有arduino和tb6600驱动器,目前自己的接线方法及程序无法实现正反转功能,出现电机锁死的情况,求程序及接线方法。
应该使用的是延时函数吗int Button=3; //连接开关到D3。int LED=13; //连接LED到13(实际上UNO等版本已经有了)。boolean onoff=LOW; //设定一个变量用于记录开关状态。void setup() { pinMode(Button,INPUT); //按钮端子作为输入 pinMode(LED,OUTPUT); //LED端子作为输出}void loop() { if(digitalRead(Button)==LOW) //由于本例检测上升沿触发,所以先检测输入是否低电平, { delay(10); //然后延时一段时间, if(digitalRead(Button)==HIGH) //然后检测是不是电平变为高了。是的话,就是刚好按钮按下了。 { digitalWrite(LED,onoff); //写入当前LED状态onoff, onoff=(!onoff); //然后LED状态反转,以便下一次使用。 delay(10); //延时一段时间,防止按钮突然断开再按下。 while(digitalRead(Button)==HIGH) //判断按钮状态,如果仍然按下的话,等待松开。防止一直按住导致LED输出端连续反转 { delay(1); } } }}函数应该加在什么地方?