Buggfix Plus
Aktuellt datum och tid: 07.45 2019-11-14

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 70 inlägg ]  Gå till sida Föregående  1, 2, 3, 4, 5  Nästa
Författare Meddelande
InläggPostat: 16.33 2019-10-17 
Användarvisningsbild

Blev medlem: 17.51 2007-12-13
Inlägg: 672
Ort: Stockholm
TMCn är dessutom väldigt mycket tystare. Bytte till dessa i min prusa i3 PRO och den är nu som en viskning. Jag bytte till tmc2130


.


Upp
 Profil  
 
InläggPostat: 18.35 2019-10-17 

Blev medlem: 13.50 2012-07-24
Inlägg: 69
test


Senast redigerad av basekson 15.44 2019-11-09, redigerad totalt 1 gång.

Upp
 Profil  
 
InläggPostat: 19.01 2019-10-17 

Blev medlem: 10.02 2009-05-08
Inlägg: 798
Ort: Lund
säter skrev:
Kan du förklara vad du ska ha grejen till?


Upp
 Profil  
 
InläggPostat: 19.43 2019-10-17 

Blev medlem: 13.50 2012-07-24
Inlägg: 69
Snurra en axel, allt är ju beskrivet i tråden


Upp
 Profil  
 
InläggPostat: 20.18 2019-10-17 
Användarvisningsbild

Blev medlem: 11.56 2004-05-08
Inlägg: 3550
Ort: Stockholm
basekson skrev:
void loop(){
for (int i = 0; i <= 6000 ; i+=100) {
Serial.println(i);
spd = i;
stepper.setSpeed(dirr * spd);
stepper.runSpeed();
delay(2000);

}

}

basekson: Du kan inte använda delay() tillsammans med AccelStepper, och .runSpeed() är antagligen inte heller rätt funktion att anropa. Läs dokumentationen för .run() och .runSpeed().

Som du ser ska funktionerna anropas så ofta som möjligt, så delay() i loop() funkar inte alls!


Upp
 Profil  
 
InläggPostat: 22.10 2019-10-17 

Blev medlem: 10.02 2009-05-08
Inlägg: 798
Ort: Lund
basekson skrev:
Snurra en axel, allt är ju beskrivet i tråden

?

Det sitter tydligen något med en betydande massa i änden av axeln. Flera har frågat hur denna massa är fördelad. Men du verkar inte vilja svara på den frågan heller.

Whatever...


Upp
 Profil  
 
InläggPostat: 22.19 2019-10-17 

Blev medlem: 13.50 2012-07-24
Inlägg: 69
test


Senast redigerad av basekson 15.44 2019-11-09, redigerad totalt 1 gång.

Upp
 Profil  
 
InläggPostat: 22.31 2019-10-17 

Blev medlem: 01.01 2006-03-02
Inlägg: 7877
Ort: Vänersborg
Du gör ett misstag som många nybörjare gör när de programmerar realtidsprogram. Man får aldrig anropa delay, helt enkelt. Det blir aldrig bra. Ibland kan det funka ändå, om programmet inte är så avancerat. Typ för korta test o.s.v.

Lägg de nödvändiga anropen i mainloopen, så att de alltid anropas varje varv. (Förutom möjligtvis ifall du vill gå över i ett läge där motorn inte drivs.)

Använd ett villkår som jämför aktuell tid med en sparad tidpunkt (istället för delay()). När skillnaden är större än ett valt intervall blir villkoret sant. Ändra då varvtalet med accelerationen. T.ex. speed = speed + acceleration. Där acceleration både kan vara positivt och negativt beroende på om du vill öka varvtalet eller sakta ned.
https://learn.adafruit.com/multi-taskin ... for-timing


Upp
 Profil  
 
InläggPostat: 06.46 2019-10-18 

Blev medlem: 11.20 2009-05-26
Inlägg: 6036
Ort: Kristinehamn
Dessutom så är void loop(){} lika med mainloop i Arduino. Lägg stegmotorkörningen i en egen rutin och att skriva till serieporten varje lopvarvarv är lika illa som delay. Skriv bara när du inte kör stegmotorn.


Upp
 Profil  
 
InläggPostat: 12.45 2019-10-18 

Blev medlem: 13.50 2012-07-24
Inlägg: 69
test


Senast redigerad av basekson 15.44 2019-11-09, redigerad totalt 1 gång.

Upp
 Profil  
 
InläggPostat: 12.48 2019-10-18 
Användarvisningsbild

Blev medlem: 21.16 2009-02-22
Inlägg: 17772
Ort: Säter
Har du tandremshjul tillsammans med kilremmar?


Upp
 Profil  
 
InläggPostat: 12.52 2019-10-18 

Blev medlem: 13.50 2012-07-24
Inlägg: 69
Mycket möjligt
säter skrev:
Har du tandremshjul tillsammans med kilremmar?


Mycket möjligt, kan inte namnen på någon av dem.
Hjulen är dock 3D-printade och har samma som remmarna, har cad:at dom själv.


Upp
 Profil  
 
InläggPostat: 13.47 2019-10-18 
Användarvisningsbild

Blev medlem: 11.56 2004-05-08
Inlägg: 3550
Ort: Stockholm
basekson skrev:
Har dock tappat lite i toppfart, har någon tips där?

Du anropar .setAcceleration() och .move() varje loop efter den första sekunden (och förutom den millisekund när millis() == 30000). Varför? Från dokumentationen om .setAcceleration(): "This is an expensive call since it requires a square root to be calculated. Dont call more ofthen than needed". Kanske det gör att Arduinon inte hinner skicka pulser lika ofta så att du tappar toppfart?


Upp
 Profil  
 
InläggPostat: 13.52 2019-10-18 

Blev medlem: 13.50 2012-07-24
Inlägg: 69
Ja det går säkert att putsa på koden ytterligare, detta är inte funktionen jag ska använda slutligt utan mest för att testa och få inputs som från dig.
Ge gärna förslag på Hur koden borde se ut enligt dig.

Jag ska slutgiltigt ha när jag matar in "s" (start) eller "b" (break) i serial montor så ska den köra start/stop-funktionen.
Har därför testat olika accelarationer på båda därför är dom kvar, men som sagt ge gärna förslag uppskattas enormt. Väldigt kompetent forum!


Upp
 Profil  
 
InläggPostat: 13.56 2019-10-18 
Användarvisningsbild

Blev medlem: 11.56 2004-05-08
Inlägg: 3550
Ort: Stockholm
Anropa .setAcceleration() en enda gång (alltså i setup() istället)?


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 70 inlägg ]  Gå till sida Föregående  1, 2, 3, 4, 5  Nästa

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Anahka1975 och 5 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010