จากโค้ดข้างล่างนี้ คือผมหาโค้ดนี้มาจากอินเทอร์เน็ต ผมอยากรู้ว่าผมจะสามารถกำหนดอัตราเร็วการหมุน เช่น จะเอา 2 รอบใน 3 นาที หรืออะไรประมาณนี้อะครับ ผมต้องเขียนโค้ดยังไงครับ ผมตั้งค่าความละเอียดที่ 1/16
จากโค้ด เขาตั้งไว้ 1800 pluse stepping motor ของผมมันจะหมุน 1800/2.3 pluse จะได้ 1 รอบโดยประมาณ ( ผมวัดจากการมองด้วยสายตา และประมาณ)
พอดีเพิ่งหัดลองเล่นน่ะครับ ช่วยแนะนำหน่อยนะครับว่าผมควรเขียนยังไง
#define stepaxisx 8
#define diraxisx 9
int a;
void setup()
{
Serial.begin(9600);
pinMode(stepaxisx, OUTPUT);
pinMode(diraxisx, OUTPUT);
}
void loop()
{
Forwardx(1800);
Backx(1800);
}
void Forwardx(int pluse)
{
for(a=0;a<pluse;a++)
{
digitalWrite(diraxisx, LOW);
digitalWrite(stepaxisx, HIGH);
delay(1);
digitalWrite(stepaxisx, LOW);
delay(1);
}
}
void Backx(int pluse)
{
for(a=0;a<pluse;a++)
{
digitalWrite(diraxisx, HIGH);
digitalWrite(stepaxisx, HIGH);
delay(1);
digitalWrite(stepaxisx, LOW);
delay(1);
}
}
ใครเคยใช้ TB6560 ควบคุม stepping motor บ้างครับ รบกวนช่วยผมทีครับ
จากโค้ด เขาตั้งไว้ 1800 pluse stepping motor ของผมมันจะหมุน 1800/2.3 pluse จะได้ 1 รอบโดยประมาณ ( ผมวัดจากการมองด้วยสายตา และประมาณ)
พอดีเพิ่งหัดลองเล่นน่ะครับ ช่วยแนะนำหน่อยนะครับว่าผมควรเขียนยังไง
#define stepaxisx 8
#define diraxisx 9
int a;
void setup()
{
Serial.begin(9600);
pinMode(stepaxisx, OUTPUT);
pinMode(diraxisx, OUTPUT);
}
void loop()
{
Forwardx(1800);
Backx(1800);
}
void Forwardx(int pluse)
{
for(a=0;a<pluse;a++)
{
digitalWrite(diraxisx, LOW);
digitalWrite(stepaxisx, HIGH);
delay(1);
digitalWrite(stepaxisx, LOW);
delay(1);
}
}
void Backx(int pluse)
{
for(a=0;a<pluse;a++)
{
digitalWrite(diraxisx, HIGH);
digitalWrite(stepaxisx, HIGH);
delay(1);
digitalWrite(stepaxisx, LOW);
delay(1);
}
}