#define EN 8
#define X_DIR 5
#define X_STP 2
void step (boolean dir, byte dirPin, byte stepperPin, int steps)
{
digitalWrite (dirPin, dir);
delay (50);
for (int i = 0; i <steps; i++)
{
digitalWrite (stepperPin, HIGH);
delayMicroseconds (800);
digitalWrite (stepperPin, LOW);
delayMicroseconds (800);
}
}
void setup ()
{
pinMode (X_DIR, OUTPUT);
pinMode (X_STP, OUTPUT);
pinMode (EN, OUTPUT);
digitalWrite (EN, LOW);
}
void loop ()
{
step (false, X_DIR, X_STP, 200);
delay (1000);
}
2.ทำโปรแกรมรับค่าจากเอ็นโค้ดเดอร์โดยโจทย์ที่ได้คือถ้าหมุนตามนาฬิกาจะนับรอบเป็นบวก แต่ถ้าหมุนทวนเข็มนาฬิกาจะให้ค่าติดลบครับจากการเขียนโปรแกรมยังไม่เส็ดครับเลยได้โปรแกรมประมาณนี้ครับ
int A = 2;
int B = 3;
int rotate = 0;
void setup()
{
pinMode(B,INPUT_PULLUP);
attachInterrupt(0, Interrupts, LOW);
Serial.begin(9600);
}
void loop()
{
Serial.println(rotate);
delay(200);
}
void Interrupts()
{
if (digitalRead(B)==HIGH)
{
rotate++;
}
else
{
rotate--;
}
}