Brzi početak
Za pokretanje stepera potrebno je tri stvari: logička veza s vašim kontrolerom, zasebno napajanje za motor i ograničenje struje prilagođeno motoru koji imate. Prvo postavite ograničenje struje, prije nego što motor uopće krene, kako namotaji nikada ne bi morali nositi veći teret od nazivnog. Postupak je opisan u odjeljku Hardware Details.
Primjeri ovdje koriste NULA DeepSleep ESP32-S3 kao kontroler. Bilo koja ploča s pet slobodnih digitalnih pinova i 3V3 ili 5V logikom je ispravna; mijenjaju se samo brojevi pinova.
Programirate kontroler spojen na ovaj breakout. Sam breakout se ne flasha.
- Arduino
- MikroPython
1. Spojite breakout ploču
PIN-ovi RESET i SLEEP moraju biti spojeni na visoki nivo da bi upravljač radio, a oba imaju interne povlačne otpornike, pa neispeglani pločica ostaje u resetu i u stanju mirovanja. Arduino biblioteka ih nikada ne dira. Spojite ih na 3V3 i ostavite ih tako.
| Kontroler | Pločica pogona steper motora DRV8825 |
|---|---|
| GND | GND (pinceta pored FAULT) |
| 3V3 | RST |
| 3V3 | SLEEP |
| IO5 | STEP |
| IO4 | DIR |
Napajanje motora je odvojeno i ne dolazi od kontrolera:
| Napajanje motora | Pločica pogona korak-motora DRV8825 |
|---|---|
| 8,2 V do 45 V | VIN |
| GND | GND (pinceta pored VIN-a) |
Postavite kondenzator na napajanje motora na ploči. Vlastiti primjer MicroPython modula to navodi; provjerite podatkovni list vašeg motora za vrijednost.
2. Instalirajte biblioteku
Instalirajte Soldered Basic Stepper Driver Arduino Library pomoću Upravitelja biblioteka (Library Manager) u Arduino IDE-u ili je preuzmite s izvora u nastavku.
🔗Lemljeni osnovni pogon stepera – Arduino biblioteka
Arduino biblioteka temeljena na AccelStepperu od Soldereda
Savjet: preuzimanje s Githuba. Na GitHub stranici biblioteke kliknite na zeleno Code gumb i odaberite Download ZIP, zatim je dodajte u Arduino IDE pomoću Sketch → Include Library → Add .ZIP Library....
3. Pokrenite prvi primjer
Ovo je ConstantSpeed.ino s jednom promjenom: priloženi skica je konstruirana
s zadanoj postavci FULL4WIRE, a ova ploča zahtijeva BasicStepper::DRIVER s vašim pinovima STEP i DIR. Ništa drugo se ne razlikuje.
#include <Basic-Stepper-Driver-SOLDERED.h>
#define dirPin 4
#define stepPin 5
BasicStepper stepper(BasicStepper::DRIVER, stepPin, dirPin);
void setup()
{
stepper.setMaxSpeed(1000);
stepper.setSpeed(200);
}
void loop()
{
stepper.runSpeed();
}
4. Provjerite rezultat
Motor se neprestano okreće u jednom smjeru brzinom od 200 koraka u sekundi, što je otprilike jedan krug u sekundi na motoru od 200 koraka u punom koraku. Nema serijskog izlaza, stoga promatrajte vratilo.
Ako zuji ili podrhtava umjesto da se okreće, runSpeed() ne primjenjuje ubrzanje
i motor se možda neće moći pokrenuti tom brzinom pod opterećenjem. Smanjite
setSpeed() dok se ne pokrene, a zatim postupno povećavajte brzinu.
5. Ako ne radi
Nastavite s Otklanjanjem poteškoća i ponovno isprobajte ovaj najmanji primjer nakon svake promjene.
1. Spojite breakout pločicu
MicroPython modul samostalno upravlja pinovima ENABLE, RESET i SLEEP, stoga svih pet kontrolnih pinova ide na GPIO.
| Kontroler | Pločica pogona korak-motora DRV8825 |
|---|---|
| GND | GND (pinceta pored FAULT) |
| IO4 | DIR |
| IO5 | STEP |
| IO6 | EN |
| IO7 | RST |
| IO10 | SLEEP |
Napajanje motora je odvojeno i ne dolazi od kontrolera:
| Napajanje motora | Pločica upravljača stepenastim motorom DRV8825 |
|---|---|
| 8,2 V do 45 V | VIN |
| GND | GND (pinceta pored VIN) |
Spojte dvije zavojnice motora na B1/B2 i A1/A2, po jednu zavojnicu na svaki par. Postavite kondenzator na napojnu liniju motora na ploči; provjerite podatkovni list vašeg motora za vrijednost.
2. Instalirajte modul
Instalirajte DRV8825 pomoću mpremote-a, koristeći naredbu iz README datoteke samog modula:
mpremote mip install github:SolderedElectronics/Soldered-Micropython-modules/Actuators/DRV8825
Na Windowsu:
python -m mpremote mip install github:SolderedElectronics/Soldered-Micropython-modules/Actuators/DRV8825
🔗Lemljeni MicroPython moduli: DRV8825
MicroPython modul i primjeri za ovu ploču
Savjet: preuzimanje s Githuba. Bez mpremote-a, otvorite .py datoteku modula
datoteku na GitHubu i kliknite Preuzmi sirovu datoteku, zatim je otvorite u Thonnyju i upotrijebite
Datoteka → Spremi kao... → MicroPython uređaj da biste je kopirali na ploču.
3. Pokrenite prvi primjer
Ovo je drv8825-motorRotationAndSleep.py, vlastiti primjer modula za ovaj
odjeljak. Okreće motor za jedan puni krug, jedan nazad, a zatim stavlja upravljač u
stanje mirovanja. U kojem smjeru se prvo okreće ovisi o tome kako ste ožičili zavojnice.
Pet brojeva pinova u nastavku jedina su promjena u odnosu na snimljeni primjer, koji koristi GPIO 5, 18, 19, 21 i 22. NULA DeepSleep ESP32-S3 ne izbacuje GPIO18, a ESP32-S3 uopće nema GPIO22.
from drv8825 import DRV8825
from time import sleep
# Define pin numbers (adjust to match your board setup)
DIR_PIN = 4 # GPIO4
STEP_PIN = 5 # GPIO5
EN_PIN = 6 # GPIO6 (optional)
RST_PIN = 7 # GPIO7 (optional)
SLP_PIN = 10 # GPIO10 (optional)
# The motor should be connected via the B1,B2,A1,A2 pins
# The motor power supply should be connected to the VIN and GND pins and have a
# parallel connected capacitor, reffer to your motors datasheet for more information
# Initialize the driver
motor = DRV8825()
motor.begin(DIR=DIR_PIN, STEP=STEP_PIN, EN=EN_PIN, RST=RST_PIN, SLP=SLP_PIN)
# Configure motor behavior
motor.setStepsPerRotation(200) # Typical for 1.8° stepper motors
motor.setStepPulseLength(1000) # Microseconds per step pulse
motor.setDirection(DRV8825.CLOCK_WISE)
motor.enable()
# Step the motor forward 200 steps (one full rotation)
print("Stepping forward...")
for _ in range(200):
motor.step()
sleep(0.005) # 5ms delay between steps
# Change direction and step back
motor.setDirection(DRV8825.COUNTER_CLOCK_WISE)
print("Stepping backward...")
for _ in range(200):
motor.step()
sleep(0.005)
# Put the motor to sleep
motor.sleep()
print("Motor is now sleeping.")
4. Provjerite rezultat
Tri retka na serijskoj konzoli, točno kako je napisano:
Stepping forward...
Stepping backward...
Motor is now sleeping.
Motor se okreće 200 koraka, okreće se u suprotnom smjeru i vraća se na početnu poziciju. Na 1,8° motor u punom koraku, 200 koraka je jedna potpuna rotacija. Ako ste promijenili postavku mikrokoraka pomoću M0, M1 ili M2, isti 200 impulsa pokriva proporcionalno manje: pri 1/8 mikrokoraka to je jedna osmina okreta.
Nakon posljednje linije upravljač je u mirovanju i ne drži ništa, pa se vratuljak slobodno okreće rukom.
5. Ako ne radi
Nastavite s Otklanjanje poteškoća i ponovno isprobajte ovaj najmanji primjer nakon svake promjene.