Behöver man någon resistor mellan en Arduino och en Geckodrive G540?
Signalerna från en parallellport på en PC ligger ju på 5V och vad jag läst är det lite olika med vilka strömmar man måste förvänta sig. Verkar vara allt mellan 5-30mA.
Frågan är ju om G540 har inbyggda resistorer så att man direkt kan koppla på valfri mikroprocessor som har 5V-utsignaler.
Anledningen till att jag frågar är att jag inte fick min motor att gå snabbare än ~230RPM när jag driver den med en Arduino så jag funderade på om det är signalerna som blir dåliga med motstånd mellan utgång eller motorn som sätter stopp.
Du behöver ingen extra resistor så länge styrsignalerna inte överstiger 5V. Men oavsett så har det inte med hastigheten på motorn att göra - det beror antagligen på en (eller båda) av dessa anledningar:
1) För låg matningspänning till G540. 5.6V indikerar relativt hög induktans vilket gör att "högfartsprestandan" blir lidande.
2) Arduino'n hinner med att skicka pulser tillräckligt fort. 230rpm*200*10/60=7666Hz så om pulserna genereras med mjukvara så skulle det kunna vara en begränsning.
Jag ska kolla upp lite mer när jag kommer hem men själva programkoden innehåller ingen delay förutom en paus på 4us för stegsignalen.
Läser förövrigt av ett värde på max 4byte seriellt och det värdet är rotationshastigheten i rpm. Får försöka komma fram till om jag är nära gränsen hårdvarumässigt på Arduinon som går i 16MHz.
Drivspänning vetesjutton. Nätdelen är på 36V och motorerna har seriekopplade lindningar nu men eftersom jag inte har induktansen på motorn vet jag inte om det är alldeles för liten spänning eller inte. De blir inte speciellt varma när jag kör obelastat.
Vad exakt menar du med att det "inte går att köra fortare"?
Om motorn stallar så är det för låg drivspänning, om den bara inte varvar mer så är det för att Arduinon inte hinner med.
Jag skulle ändrat till parallelkopplade lindningar - det gör att induktansen blir 1/4 av vad den är nu och du kommer kunna köra motorn betydligt fortare med samma matningspänning men du behöver dubbla strömmen för att få samma moment på låga varv - inga problem för G540.
Har tyvärr inget sätt att mäta varvtalet på nu men ska se om jag kan få fast en chassifläkt på stegmotorn och mäta RPM genom pulsgivaren(2ggr per varv) i en sån.
Iaf så verkar det som att den inte snurrar fortare från ungefär 230rpm till 477rpm då den stannar helt men det är lite svårt att höra skillnad på ljudet.
Saknar utrustning för att ta reda på hur signalen ser ut från arduinon så det är inte lätt att felsöka. Funderar på att skaffa ett DSO Quad eller om man ska nöja sig med en billigare logikanalysator...
Ska testa med parallellkoppling senare men nu blir det iväg en sväng igen. Får återkomma med resultat.
Tack för alla bra svar!
-edit- Lägger detta på is ett par dagar.
Får inte motorerna att fungera parallellkopplat. Geckon lyser rött och jag förstår inte varför... Kopplar ihop (A+ och A-), (A+' och A-'), (B+ och B-), (B+' och B-'). A-paren till Geckons A och B-par till Geckons B.
Seriekopplat kör jag: (A+' och A-') sedan A+ och A- till Geckons A. Samma med B...
Tar och beställer 3st Nema23 nu istället så finns det åtminstone vettig dokumentation. Så kan jag fundera hur jag ska kunna verifiera min kod så att den funkar som den skall.
Rampar du upp hastigheten eller skickar du bara på full fart direkt? Om det sistnämda är fallet så kan det nog vara problemet då man behöver/bör rampa upp hastigheten för att det inte ska stalla.
Jag knappar in hastigheten i rpm och skickar den seriellt till Arduinon så det blir ingen fin fartökning men det är ju inte speciellt svårt att lägga in en kodsnutt som ger en linjär ökning av varvtal och låta den påverkas av en eller två tryckknappar.
Man kan ju låta en knapp öka hastgheten med motsvarande 10rpm över ett visst antal pulser eller tid.
-edit- Har ju totalt glömt bort att jag beställt 4st 24p/varv-encoders som kommer bli bra till detta...
Men jag märkte igår att det är något konstigt med styrningen så jag måste förmodligen skaffa något sätt att kolla signalen ut från Arduinon. Minns inte siffrorna i huvudet men mellan kanske 250 och 260rpm så verkade det inte vara en linjär ökning i varvtal. Snarare så att 260 såg ut som 50% mer än 250.
DSO är ju mycket dyrare men klarar mer men jag skulle förmodligen klara mig just nu med en sniffer på logiknivå. Risken är dock att man känner sig begränsad i framtiden så det kan ju vara värt att skaffa ett oscilloskop.
Senast redigerad av DavidS 27 september 2011, 14:06:44, redigerad totalt 1 gång.
Om du har en PC med window i närheten kan du starta med att använda Mach3 för att verifiera funktionen av drivarna och stegmotorerna innan du fortsätter med Arduino:n.
Saknar parallellport på alla datorer jag har hemma så i slutändan hade jag tänkt använda: http://reprap.org/wiki/Arduino_GCode_Interpreter om det inte blir att jag köper ett kort att stoppa i datorn.
... men jag ville se lite mer om vad som ligger bakom G-koden genom att skriva ett enklare styrprogram själv i Python och skicka seriellt till Arduino.