Nu har jag äntligen hunnit leka lite. Har tittat på många YT videos och lärt mig massor om elektronik, ellära, komponenter, mätteknik. Det var längesedan jag hade så här kul!
Jag har trimmat in strömmen från A4988 till motorn, skrivit grunderna av arduino-koden och testkört en motor. Ingen rök och motorn roterar! Det är en bra start. Här är en bild:
Jag har dock ett problem med att den inte återgår till ursprungsläget efter att stega fram och bak lika många steg. Min gissning är att strömmen är ställd lite för lågt och att den då inte orkar dra i vissa steg. Här är en video när motorn snurrar som tydligt visar att den inte återgår till ursprungsläget. Den vandrar sakta motsols.
https://youtu.be/1zUpcQBREmA
Jag läste någonstans att en del av dessa stepstick kort kan vara dåligt lödda, jag tror jag skall testa flera och jämföra.
För beräkning och intrimning av strömmen har jag har utgått ifrån denna instructable:
http://www.instructables.com/id/Drive-a ... /?ALLSTEPS
Jag kollade mina stepsticks med lupp och ser att jag har samma resistanser som kretsen i artikeln. S1 och S2 är på 10K och R1 på 30K.
Artikeln säger (och jag ser att formlerna kommer från databladet):
VREF max = (TrimpotMaxR/(TrimpotMaXR+R1)) x VDD = (10,000 / (10,000 + 30,000)) * 5 = 1.25V
ITripMAX (effectively max motor current) = VREF / ( 8 x Sense_resistor) = 1.25 / ( 8 * 0.1 ) = 1.5625A
To calculate amps from measured VREF: A = VREF / 0.8
To calculate VREF required for a target current: VREF = A * 0.8
Motorns datablad säger 0.33A. Jag var lite feg och rundade av neråt till 0.3, och ställde VREF till 0.24 genom mätning mellan potentiometerns center och jord. Kan detta göra att den hoppar över steg? Eller har jag missuppfattat något med full step mode och antal steg?
Motorns stegvinkel är 1.8 grader +- 5%, i full step mode så går det alltså 200 steg per varv (360). Så kvarts varv, 90 grader, (vridning på kubsida) blir 200/4 eller 50 steg, 180 grader blir 100 steg.
När jag gjorde mätningen var kretsen fullt kopplad till arduinon och motorn men ingen 220 in i transformatorn. Ingen aning vilka signaler jag hade på ENABLE, STEP och DIRECTION pinnarna. Det framgår inte riktigt av datablad eller artikel hur , mer än att man inte skall koppla på motorkraften förrän man justerat strömmen. Kanske spolarna i motorn/transformatorn kan påverka? Eller kanske spänningen på någon av styrpinnarna flyter?
Hastighet
I nuläget så använder jag en konstant delay mellan stegpulserna. Jag började försiktigt på 10 ms och sänkte successivt till 1.5 ms. Med 2 delay per steg och 50 steg per 90 vridning, gick jag från 1 s till 0.15 sekunder.
En lösning av kuben kommer att bestå av 21 drag (både 90 och 180 vridningar). Världsrekordet är under sekunden så det betyder ca 40ms per vridning. Om vi antar att 90 och 180 vridningar är jämnt fördelade så blir snittet 135, eller 75 steg á 1.8 grader så behöver delay sänkas till 40ms/75/2 = 0.26ms
Som sagt, målet är inte hastighet men det skall bli kul att se var gränserna går för arduinon, drivkretsen och motorn.
Jag tror också att rekordhållarna använder variabel hastiget för att starta och stoppa mjukare, men det är lätt fixat om det skulle behövas.
Total ström
Om varje stegmotor drar 0.33A, och jag antar att det är per spole så behöver min matning kunna leverera 0.33 * 2 * 6 eller 4A. Tyvärr så levererar min max 3.5. Detta under förutsättning att alla drivare är ENABLED samtidigt. Det är ju bara en som roterar i taget så borde funka!
Och till slut en länk till min arduino sketch, finns ganska mycket kommentarer.
https://gist.github.com/rofr/e8c41219b780ac3497b3