from machine import Pin
import time
# Konfigurasi pin sesuai ESP32 DevKitC v4
STEP_PIN = 14 # Pin STEP A4988
DIR_PIN = 27 # Pin DIR A4988
LED_PIN = 2 # LED bawaan ESP32 (GPIO2)
BUTTON_PIN = 23 # Tombol (bisa diganti sesuai pin yang tersedia)
# Inisialisasi pin
step_pin = Pin(STEP_PIN, Pin.OUT)
dir_pin = Pin(DIR_PIN, Pin.OUT)
led_pin = Pin(LED_PIN, Pin.OUT)
button_pin = Pin(BUTTON_PIN, Pin.IN, Pin.PULL_DOWN) # Atau Pin.PULL_UP sesuai wiring tombolmu
# Parameter gerakan motor
number_of_steps = 200 # Satu putaran penuh (1.8°/step)
pulse_width_us = 20 # Durasi pulsa STEP dalam mikrodetik
millis_between_steps = 10 # Jeda antar langkah dalam milidetik
print("🚀 Memulai kontrol stepper A4988 via ESP32")
while True:
if button_pin.value() == 1:
# Gerakan searah jarum jam
dir_pin.on()
for _ in range(number_of_steps):
step_pin.on()
time.sleep_us(pulse_width_us)
step_pin.off()
time.sleep_ms(millis_between_steps)
led_pin.value(not led_pin.value())
time.sleep(1) # Jeda antar arah
# Gerakan berlawanan arah jarum jam
dir_pin.off()
for _ in range(number_of_steps):
step_pin.on()
time.sleep_us(pulse_width_us)
step_pin.off()
time.sleep_ms(millis_between_steps)
led_pin.value(not led_pin.value())