/*########################################################*/
/* driver A4988 e DRV8825 */
/* ,-----------, */
/* ENABLE |o o| V_MOTORE */
/* MS1 |o ____ o| GND */
/* MS2 |o| | o| 2B */
/* MS3 |o|____| o| 2A */
/* RESET |o o| 1A */
/* SLEEP |o _ o| 1B */
/* STEP |o |_| o| VDD */
/* DIR |o o| GND */
/* `-----------' */
/* */
/* ========================================== */
/* MS1 | MS2 | MS3 | Microstep resolution */
/* -----|------|------|---------------------- */
/* Low | Low | Low | Full step */
/* High | Low | Low | 1/2 step */
/* Low | High | Low | 1/4 step */
/* High | High | Low | 1/8 step */
/* High | High | High | 1/16 step */
/* ========================================= */
/*########################################################*/
// Step motor bağlantıları:
#define DIR_PIN 2
#define STEP_PIN 3
// #define STEPS_PER_REVOLUTION 12 // her bir adımın 30 derece dönmesi için adım tanımı 360/12=30'dan 12 yapmalıyız
//#define STEPS_PER_REVOLUTION 200 // simülasyonda bu step motorun bir turu tamamlaması 200 adım ayarlandığından bu tanımlamanın bir işlevi yok.
void setup() {
// Çıkış pinlerinin:
Serial.begin(115200);
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
// saat yönünün ayarlanması:
digitalWrite(DIR_PIN, HIGH);
/* Bir adım ilerleme (30 derece):
Serial.println("Bir adım atılarak 30 derecelik bir dönüş elde edilecektir");
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(1000);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(1000); */
// Neredeyse 30 derecelik dönüş:
Serial.println("Saat yönünde yaklaşık 30 derecelik açılık açı yapılıyor");
for (int i = 0; i < 267; i++) { // ~30 derece için 267 adım (adım başına 360/3200= 0.1125 derece (30 derecelik açı için 30/0.1125 = 266.66 ≈ 267 adım))
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(1000); // adımlar arası bekleme
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(1000);
}
Serial.println("Yaklaşık açı tamamlandı");
}
void loop() {
// Bir şey yapma.
}