Elektromotor en regelaars

Lambiek

Special Member

Op 10 oktober 2018 10:31:49 schreef SparkyGSX:
Als je een driver met microstepping gaat gebruiken, heb je niet meer genoeg aan 10 stappen ramp-up en ramp-down...

Ja dat is waar, daar had ik even niet aan gedacht.

Als je haar maar goed zit, GROETEN LAMBIEK.

Dit is eigenlijk wel een leuk onderwerp en ik had al eens iets met een Arduino Uno gemaakt om panoramafotos te maken. 12x 30 graden draaien met een stappenmotor. Ik had ook nog een 4e as voor mijn freesmachine met een eigen voeding en driver dus ik dacht "even" iets in elkaar te zetten. Helaas het clone Arduino mega bordje weigerde met mijn computer te praten. Ik bedacht me dat ik ook nog een Nucleo bordje had liggen. Een beetje overkill een 32 bits processor maar ze zijn goedkoper dan een Arduino Uno. Programmaatje aanpassen en overzetten en weer MBED wennen. Het Nucleo bordje werkt met 3.3 V dus ik twijfelde of die goed met de stepperdriver kon werken met een 74ls07 OC driver is dat opgelost. Maar goed het werkt.
De 4e as heeft een 1:4 tandriem overbrenging en de driver heeft 8 microsteps dus 6400 pulsen per omwenteling.

c code:


#include "mbed.h"

DigitalIn startPin(D9);
DigitalOut stepPin(D6);
DigitalOut dirPin(D7);

int main() 
{
int nsteps=6400, asteps=500, steptime,i,d;
long startspeed=150,accspeed,inc,topspeed=10000;
    startPin.mode(PullUp);


if(nsteps<2*asteps) {
  asteps=nsteps/2;
  nsteps=0;}
else nsteps=nsteps-2*asteps;

inc=(topspeed-startspeed)/asteps;
steptime=1000000/topspeed;
dirPin = 0;
stepPin = 1;

while(1) 
{

while(startPin == 0);
//accelerate
accspeed=0;
for(i=0;i<asteps;i++) 
{
stepPin=0;
  wait_us(10);
stepPin=1;
  accspeed +=inc;
  d=1000000/accspeed;
  wait_us(d); 
}

for(i=0;i<nsteps;i++) 
{
stepPin=0;
  wait_us(10);
stepPin=1;
  wait_us(steptime);
}
accspeed=topspeed;
for(i=0;i<asteps;i++) 
{
stepPin=0;
  wait_us(10);
stepPin=1;
  accspeed -=inc;
  d=1000000/accspeed;  
  wait_us(d); 
}
}
}

filmpje:
https://www.youtube.com/watch?v=6RrdTCYwGWY

JohannaC

Golden Member

Zo allereerst mijn excuses ik dacht als ik geen bericht krijg is er geen nieuws dat was dus wel zo bedankt allemaal.
ik ben bezig geweest een soort dummy te maken die alles moet gaan doen deze is nog even van hout maar dat gaat aluminium worden.
een rol wordt de aandrijfrol die gaat 10 cm. worden als dat beter is die is nu 32 mm pvc heb ook een soort tekening gemaakt wat er in de machine gebeurt
mijn simpele gedachte is als ik de motorsnelheid kan regelen met een potmeter? en de stappen met een potmeter komt alles goed?

Het aantal stappen lijkt me handiger om in te stellen met een paar knopjes omhoog/omlaag, waarbij je de instelling ook op een schermpje kunt zien. Zo'n schermpje met knopjes kost nog geen 5 euro, en de software ervoor is ook niet ingewikkeld.

De snelheid zou je op dezelfde manier kunnen doen, maar dat kan ook met een potmeter als je wilt, want dat hoeft niet zo nauwkeurig, zolang de positionering maar nauwkeurig is.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Lambiek

Special Member

Op 24 oktober 2018 10:27:36 schreef JohannaC:
ik ben bezig geweest een soort dummy te maken die alles moet gaan doen deze is nog even van hout maar dat gaat aluminium worden.

Zo creatief geweest met hout. :)

mijn simpele gedachte is als ik de motorsnelheid kan regelen met een potmeter? en de stappen met een potmeter komt alles goed?

Ik zou het aantal stappen "de doorvoer positie dus" ook via een paar drukknoppen doen, met een display erbij om te zien wat je doet.

De snelheid hoef je niet eens in te kunnen stellen, daar kun je gewoon een vaste waarde voor geven in de software. Maar het kan wel natuurlijk.

Als je haar maar goed zit, GROETEN LAMBIEK.
JohannaC

Golden Member

Ja als dat kan mijn simpele gedachte was dat een potmeter simpeler zou zijn maar wat beschreven wordt is natuurlijk veel mooier het mag natuurlijk ook best wat kosten

JohannaC

Golden Member

Op 5 oktober 2018 11:12:16 schreef MGP:
Zoals beloofd een filmpje, het heeft meer tijd gekost om het 'bewijs' te leveren dan de opbouw ;)

Wat toelichting:

De driver is een gewone A4988 in fullstep en de motor is een 12V type waar ik gewoon 12V heb aangesloten, dus geen stroomsturing met hogere spanningen.

3knoppen UP/DWN en cyclus(of startknop)

Stappenmotor heeft 1.8°/step = 200steps/toer.

Op de riem zijn 4 witte stippen te zien, die de riem in 4 gelijke stukken verdeelt.
Om goed te kunnen volgen hou de stip op het bovenste tandwiel in de gaten.

Het totale aantal impulsen voor de volledige riemomtrek is 880 steps.

Elke stip komt overeen met 220 steps.

Het display lijkt te knipperen maar daar is in de realiteit niks van te zien en dat komt omdat het display gemultiplext wordt en mijn fototoestel al enkele jaartjes oud is.

Misschien ga ik in het WE de software nog aanvullen om wat metingen te kunnen doen voor eigen gebruik maar zoals je ziet werkt dat goed.

Omdat er niks geweten is over de machine blijf het een heel onzeker gegeven, wat er kan en wat niet kan, heb al genoeg machine ervaring om dat redelijk goed in te schatten.

@Lambiek, ik heb een kristal/resonator van 20Mhz van doen ;)
En je hebt alle tijd en voel je absoluut tot niets verplicht en als het niet gaat ook geen probleem hoor...

En maak je niet ongerust als je het toch wil doen, ik ga het zo eenvoudig mogelijk maken en ga er een vaste waarde insteken (200 = 1tr of een veelvoud ervan) zodat je geen display nodig hebt, enkel 3 knoppen, up/dwn per 200 steps en startknop en een led.

Of je mag zelf zeggen hoe je het wilt hebben.

Filmpje.

Edit: op het allelaatste (110steps) zie je dat er verschil opzat, dat heb je als je met draadjes werk, had een slecht contact..

Doortrek Berekening.cdr

Ter info, heb ondertussen contact gehad via email met de TS.

Samenvatting: Ben bereid om het programma naar uw wensen aan te passen en ook aan de driver, zoveel je wilt maar ik maak en verzend niks en behalve de driver en motor (ik zou niet weten welke zal voldoen) kun je alles kopen bij VOTI, print DB047 en een geprogrammeerde 16F876a.

Die file kan ik niet openen maar dat geeft niet ;)

Misschien iemand anders? ... eventueel enkel voor de hardware..

LDmicro user.
Lambiek

Special Member

Op 28 oktober 2018 12:49:14 schreef MGP:
Die file kan ik niet openen maar dat geeft niet ;)

Ik kan de file ook niet openen!

Misschien iemand anders? ... eventueel enkel voor de hardware..

De TS moet gewoon een motor en een driver kopen, dat is voor hem/haar het simpelste.

Dan heeft hij/zei alleen maar de controller nodig.

Als je haar maar goed zit, GROETEN LAMBIEK.
JohannaC

Golden Member

jaaa mensen dat was niet zo slim van mij hier een leesbaar bestand

Doortrek Berekening.pdf

Lambiek

Special Member

Ik zet het even hier neer, dat is wat makkelijker voor iedereen.

JAAAA op het filmpje zie ik precies wat ik bedoel
zou ik dat zelf kunnen maken?

Dan moet je leren programmeren, dan is het mogelijk.

het maakt me niet uit hoeveel tijd het duurt om het
onder de knie te krijgen.....

Het is niet alleen de tijd, je hebt ook software nodig en een compiler en een programmer om het in je controller te krijgen.

laten we ervan uitgaan dat we per uur 2500 tikken doen van max 200 mm. Dus dan is het 2500 x 200 mm. is 50.000 mm. Dat delen door 314 mm. is 160 toeren per uur is afgerond 2,7 toeren per minuut.

Ja, alleen zijn die toeren niet constant. Je geeft een puls en je motor doet bijv. 200 of 400 stappen, dan werk je de rest van je proces eerst af voordat je de volgende puls geeft.

Doorsnede rol gaat worden 100 mm. omtrek is dus 314 mm?

Dat klopt.

stel 400 stappen is 1 omwenteling. De stap is dan 0,785 mm dat is prima. 200 stappen is ook prima voor mij dan is de stap 1,57 mm.

Je kunt beter 400 stappen of meer nemen.

Heb inmiddels een nema 23 motortje gekocht dan kan ik in ieder geval gaan proberen / testen.

Heb je het type van je motor?, dan kunnen we de datasheet erbij zoeken.

Wil de motor direct op de as aansluiten?

Misschien kun je toch beter een vertraging er tussen zetten.

De dummy op schaal heb ik zover af, maar de uren vliegen door mijn vingers.

Maar het ziet er goed uit. :)

Maar als ik al de antwoorden zie op het forum moet het goed komen.

Dat gaat ook zeker gebeuren. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Die berekening in dat bestand is niet juist.

2500 tikken/uur is 3600/2500=1,44 sec de tijd om 1 tik te maken bij de max lengte (20cm).

314mm rolomtrek, 200 stappen/tr motor

1 stap is 314/200 = 1.57 mm

Blad is 20cm dan moet je 200: 1.57 = 127,3 stappen per 1.44sec hebben om 200mm papier erdoor te krijgen = 88 stappen per sec.

Om wat speling te hebben zullen we zeggen 100stappen/sec dat is 10x minder dan in de startpost en hierdoor zal de motor ook meer aanloopkracht hebben.

Verbeter mij als ik verkeerd ben want ik ben weer aan het multitasken ;)

edit: en niet in minuten zoals in die pdf file ..

LDmicro user.
JohannaC

Golden Member

deze motor heb ik gisteren besteld:
https://www.123-3d.nl/123-3D-NEMA23-stappenmotor-1-8-graden-...14807.html
en deze driver?
https://www.123-3d.nl/123-3D-SL2690A-Stappen-Driver-6-5A-1-1...-t332.html
had eindelijk wat tijd over deze week en dacht doe het gewoon en zie wat er van komt...… en het is niet zo dat het geld op me rug groeit want een paar jaar geleden reed ik nog met de taxi bejaarden en zieken (dat was Fantstisch werk) voor 11,00 per uur met avond en weekenddiensten maar nu gaat het weer beterrrrrrr en kan ik leuke dingen doen ook zoals dit

Lambiek

Special Member

De motor heeft een aardig houd koppel van +/- 300Ncm, daar gaat tijdens het draaien wel wat van af. Hoe sneller de motor draait hoe meer koppel je verliest.

De driver past er goed bij, dus de combinatie moet geen probleem zijn. Zou het geheel voeden met 12 of 24VDC, de stroom is in te stellen tussen de 2.8 en 6.5A en je kunt tot 128 microstappen instellen.

Nu nog een goede voeding voor het geheel kopen.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 28 oktober 2018 17:43:17 schreef Lambiek:
De motor heeft een aardig houd koppel van +/- 300Ncm, daar gaat tijdens het draaien wel wat van af. Hoe sneller de motor draait hoe meer koppel je verliest.

De driver past er goed bij, dus de combinatie moet geen probleem zijn. Zou het geheel voeden met 12 of 24VDC, de stroom is in te stellen tussen de 2.8 en 6.5A en je kunt tot 128 microstappen instellen.

Nu nog een goede voeding voor het geheel kopen.

Zou persoonlijk voor een Nema 23 48VDC 6A gaan. Je houdt anders weinig koppel over bij 12VDC.

Dat is voornamelijk waar als je in de buurt komt van het maximale toerental dat je met de gebruikte voedingsspanning kunt halen; de driver beperkt de stroom, en zolang die stroom gehaald wordt, is het koppel beschikbaar.

@TS: wil je zelf leren programmeren of niet? De code die ik eerder heb gepost werkt prima om met een motor die koppel moet leveren toch een goede snelheid te halen, en daarmee kun je ook microstepping gebruiken als je dat wilt. Als je dat in een Arduino projectje plakt zou je zelf met een schermpje en knopjes wat kunnen maken om het aan te sturen; dat kost je ~10 euro aan elektronica van Aliexpress.

Het interessante, technische stuk code, voor het maken van die pulstrein, was leuk; ik heb niet perse zin om het saaie deel (knopjes, schermpje, etc.) te doen.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
JohannaC

Golden Member

ja een vertraging ertussen zetten is dat hetzelfde als de aandrijfrol kleiner maken b.v. 50 mm?
en de voeding had ik nog niet besteld ik heb nog een sloopprinter staan ik wil eerst kijken wat daar in zit (beetje zuinig misschien)

JohannaC

Golden Member

ja natuurlijk wil ik het programmeren leren maar het gaat alleen om dit "Ding" dus als ik dat eenmaal kan en het werkt is dat meer dan goed

Lambiek

Special Member

Op 28 oktober 2018 18:05:17 schreef JohannaC:
ja een vertraging ertussen zetten is dat hetzelfde als de aandrijfrol kleiner maken b.v. 50 mm?

Nee dat is niet het zelfde.

Hier heb je een voorbeeld.

Het grote tandriemwiel drijft de rol aan. De rol waar de folie op zit.

en de voeding had ik nog niet besteld ik heb nog een sloopprinter staan ik wil eerst kijken wat daar in zit (beetje zuinig misschien)

Ik zou een geschakelde voeding kopen die zo'n 8A kan leveren. Maar om te testen kun je die printer voeding misschien gebruiken.

Op 28 oktober 2018 18:03:40 schreef SparkyGSX:
Het interessante, technische stuk code, voor het maken van die pulstrein, was leuk; ik heb niet perse zin om het saaie deel (knopjes, schermpje, etc.) te doen.

Dat hoort er ook bij hé. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Een kleinere aandrijfrol heeft netto hetzelfde effect als een overbrenging, dus dat zou ik ook doen.

De voeding kun je altijd later nog vervangen; als die printer een losse netvoeding heeft kun je die wel gebruiken, anders is een oude laptop- of computervoeding ook wel mogelijk.

Zoals ik al zei, het moeilijkste (en daarmee voor mij leuke) stuk van het programmeerwerk heb ik al voor je gedaan; je kunt dat in een Arduino Uno zetten (ik gebruik een Chinese kloon van ~3 euro), en er zelf de rest bij schrijven; dat zou niet zo moeilijk moeten zijn, en het is een leuke introductie in de wereld van microcontrollers.

Uiteraard staat je vrij om de code van één van de anderen hier te gebruiken, maar persoonlijk vind ik dat allemaal "net niet" eigenlijk. Ze zijn wellicht wel eenvoudiger te begrijpen, omdat ze geen gebruik maken van de timer hardware die beschikbaar is, en in plaats daarvan de hele controller ophangen terwijl ze bezig zijn met stappen, maar dat hoeft hier geen probleem te zijn.

Alle software die ik professioneel schrijf (voor hobby ook trouwens) moet talloze dingen concurrerend doen, en dat kan dat echt niet, daarom ben ik zo'n tegenstander van code die bestaat uit "ik ga hier op mijn reet zitten tot het weer tijd is om verder te gaan". Wederom; voor deze toepassing niet zo'n probleem, maar ik vind het niet netjes.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
JohannaC

Golden Member

Okay mooi de voeding laat ik weten wat er in de printer zit.
De grote rol (is alleen een transport rol) daar zit niet de folie op de grote rol is alleen om de folie door te voeren

Een overbrenging 2:1 (niet 1:2, dat zou het toerental verhogen!) met een rol van 100mm is netto hetzelfde als een rol van 50mm direct aandrijven.

Lambiek neemt aan dat je de rol met de folie erop aandrijft, maar dat lijkt me niet logisch; je kunt immers niet tegen de folie duwen vanaf die rol. Ik ging er vanuit dat je de folie tussen 2 rollen laat lopen, waarmee je die folie van de voorraadrol trekt en doorvoert.

Op 28 oktober 2018 18:54:05 schreef Lambiek:
[...]
Dat hoort er ook bij hé. :)

Nah, daar heb ik junior programmeurs voor ;-)

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
JohannaC

Golden Member

Die grote aandrijfrol had ik uit de lucht gegerepen met de gedachte dat de stappenmotor het sterkste is bij een laag toerental ha ha een boerengedachte?

Lambiek

Special Member

Op 28 oktober 2018 19:00:13 schreef SparkyGSX:
Een kleinere aandrijfrol heeft netto hetzelfde effect als een overbrenging, dus dat zou ik ook doen.

Het heeft misschien netto het zelfde effect, maar het is toch net even anders. Zelf zou ik een vertraging gebruiken van 1:2 of 1:3, je kunt dan nog snel genoeg transporteren en je hebt net wat meer koppel tot je beschikking. Maar ja, wie ben ik. :)

Uiteraard staat je vrij om de code van één van de anderen hier te gebruiken, maar persoonlijk vind ik dat allemaal "net niet" eigenlijk. Ze zijn wellicht wel eenvoudiger te begrijpen, omdat ze geen gebruik maken van de timer hardware die beschikbaar is, en in plaats daarvan de hele controller ophangen terwijl ze bezig zijn met stappen, maar dat hoeft hier geen probleem te zijn.

Zoals je zelf al aanhaalt, is hier totaal geen probleem. De controller hoeft maar één ding te doen, en dat is stappen uitgeven meer niet.

Maar ik vind het verder allemaal goed genoeg. :)

Op 28 oktober 2018 19:06:54 schreef JohannaC:
....met de gedachte dat de stappenmotor het sterkste is bij een laag toerental ha ha een boerengedachte?

Dat is ook zo. :)

Als je haar maar goed zit, GROETEN LAMBIEK.