$4.5 bättre stepper drivrutin (4 / 5 steg)

Steg 4: programvara. Det där som gör grejer gör saker.



Nu, bara kopiera och klistra in programvara nedan till IDE och klicka på... verktyg?
Ja, verktyg. Gå sedan till "styrelsen" och välj "attiny2313 @ 8Mhz". Ja, jag vet den andra instrucable sade till sätta den till 1MHz tidigare. Detta använder 8MHz eftersom det gör det körs 8 gånger snabbare, med absolut ingen ändring, programvara eller på annat sätt. Göra säker än din normala arduino är konfigurerad för att skicka program till attiny (det kan fördärva arduino om det inte är), klicka på "Verktyg > Bränn Bootloader". Några lampor bör blinka och då bör det stå "gjort brinnande bootloader". Om det inte returnerade ett fel, sedan bara ladda upp koden normalt. När de blinkande lamporna slutar, koppla arduino, dra ut attiny och bryta ut din skärbräda gång.

ATtiny 2313 stepper föraren av Jduffy. Fullständiga instruktioner om instrucatables.
CONST byte I011 = 1; //the stift för varje funktion.
CONST byte I111 = 2; //names slutar i 1 är för stepper 1
CONST byte dr11 = 3;
CONST byte I021 = 8;
CONST byte I121 = 9;
CONST byte dr21 = 10;
CONST byte I012 = 11. //same för stepper 2
CONST byte I112 = 12.
CONST byte dr12 = 13.
CONST byte I022 = 14.
CONST byte I122 = 15.
CONST byte dr22 = 16. //for alla av följande, 0 representerar på "på" pin
som 2619 låga register som aktiv.
så här används eftersom de tar mycket lite av den
chips-minne, som för attiny2313, är en bristvara (bara 2k!)
Det förenklar också koden nedan.
booleska stp10 [] = {1,0,1,0,1,0,1,0,1,0,1,0}; //output till LSB nuvarande begränsa 1
booleska stp11 [] = {1,1,0,0,0,1,1,1,0,0,0,1}; //output till MSB nuvarande begränsa 1
booleska stpd1 [] = {1,1,1,1,1,1,0,0,0,0,0,0}; //output till riktning 1
booleska stp20 [] = {0,1,0,1,0,1,0,1,0,1,0,1}; //output till LSB nuvarande begränsa 2
booleska stp21 [] = {0,0,1,1,1,0,0,0,1,1,1,0}; //output till MSB nuvarande begränsa 2
booleska stpd2 [] = {0,0,0,1,1,1,1,1,1,0,0,0}; //output till riktning 2
byte stepp1; //step del för stepper 1
långa pos1; / / "faktiska" läge för stepper 1
lång dpos1; //desired ställning stepper 1
byte in1 = 6; //direction ingångsstift för stepper 1
byte stepp2; //same grejer för stepper 2
långa pos2;
lång dpos2;
byte in2 = 7.
void setup() {
DDRB = B11111111; //This är mycket viktigt, eftersom detta är den
DDRD = B1000011; //same som "pinMode(); men tar mycket liten plats.
Om du använder något annat än en attiny 2313, måste du ändra alla dessa till
standard "pinMode();" kommandot.
DDRA = B011; //if du använder stift 6 eller 7 som utgångar, måste du ändra dessa rader
//
Om du inte vet vad dessa rader menar, finns det en
förklaring på http://arduino.cc/en/Reference/PortManipulation
attachInterrupt (0, steg 1, RISING); //ALWAYS digital 4 eller 5 (0 = 4, 1 = 5), avbrotten inte vara
attachInterrupt (1, steg 2, RISING), //on något annat stift, såvida du inte använder pcinterrupts, som erbjuder lite
} //to ingen fördel. 0 och 1 är samma för alla avr brädor, men pin nummer själv kommer att vara annorlunda
void loop() {
om (pos1! = dpos1) {//if nummerlistan är inte där det ska vara...
om (pos1 < dpos1) {//and måste gå framåt...
stepfwd1 (); //go fram!
} annat {//otherwise
stepbck1 (); //go bakåt!
}
}

om (pos2! = dpos2) {//do samma sak för stepper 2
om (pos2 < dpos2) {
stepfwd2();
} annat {
stepbck2();
}
}
delayMicroseconds(3); vänta lite
}

void step1() {//if "steg" PIN-koden för stepper 1 koms med hög
IF(digitalRead(In1)==Low) {//and "riktning" PIN-koden är låg
dpos1 ++; //tell slingan till steg framåt 1
} annat {//otherwire
dpos1--, //step baksidan 1
}
}

void step2() {//same för stepper 2
IF(digitalRead(IN2)==Low) {
dpos2 ++;
} annat {
dpos2--;
}
}

void stepfwd1() {//if stepper 1 behov att gå vidare
stepp1 ++; //advance sekvensen steg 1
Pos1 ++; //increase uppfattas positionen av 1
om (stepp1 > 11) {//if det avslutat en fullständig steg sedan
stepp1 = 0; //reset det till början av sekvensen steg
}
(ut); //digitalWrite alla stift där det behövs.
}
void stepfwd2() {//same för stepper 2
stepp2 ++;
POS2 ++;
om (stepp2 > 11) {//if det avslutat en fullständig steg sedan
stepp2 = 0; //reset det till början av sekvensen steg
}
Out();
}

void stepbck1() {//if det måste att gå tillbaka
stepp1--, //move steget sekvens tillbaka en
Pos1--; //move uppfattas placera tillbaka en
om (stepp1 > 12) {//if det avslutat en fullständig steg sedan
stepp1 = 11. //reset det till början av sekvensen steg
}
Out();
}

void stepbck2() {//same för stepper 2
stepp2--;
POS2--;
om (stepp2 > 12) {//if det avslutat en fullständig steg sedan
stepp2 = 11. //reset det till början av sekvensen steg
}
Out();
}

void out() {
IF(stepp1>11) {//these hålla "stepp" byte från att gå ur data
stepp1 = 0; i listorna steg.
}
IF(stepp2>11) {
stepp2 = 0;
}
digitalWrite (I011, stp10 [stepp1]), //writes värden för varje lista till sitt stift.
digitalWrite(I111,stp11[stepp1]);
digitalWrite(dr11,stpd1[stepp1]);
digitalWrite(I021,stp20[stepp1]);
digitalWrite(I121,stp21[stepp1]);
digitalWrite(dr21,stpd2[stepp1]);
digitalWrite(I012,stp10[stepp2]);
digitalWrite(I112,stp11[stepp2]);
digitalWrite(dr12,stpd1[stepp2]);
digitalWrite(I022,stp20[stepp2]);
digitalWrite(I122,stp21[stepp2]);
digitalWrite(dr22,stpd2[stepp2]);
}

Se Steg
Relaterade Ämnen

Installera och konfigurera DRV8825 Stepper drivrutiner

Jag köpte nyligen 2 i den nya tysta steg pinnar så som jag skrev en instructable om: installera och konfigurera SilentStepStick i RAMPER - TMC2100 Schrittmotortreiber - de verkligen imponerade på mig, och ville handla upp mina två senaste A4988 drivr...

Kör en unipolär Stepper Motor med en bipolär drivrutin

så jag rensad en gammal skrivare igår kväll och hittade ett par stavar, motorer och växlar för mina delar hamstra.Jag började skriva motor detaljer i Google och identifierade som som en 12V stepper, men databladet är mycket begränsad. Från 6 stiften...

Med en enkelverkande TB6560 Stepper förare med GRBL/RAMPER

Jag utvecklade en besatthet med laser gravörer och CNC-routers och 3d-skrivare. Först köpte jag en Printrbot som fungerade perfekt ur lådan. I två år spelade jag med det, att lägga till mindre uppgraderingar som en heatbed. Jag bestämde mig att skriv...

Raspberry Pi CNC hatt kontrollerade CDROM Stepper Motor

Syfte: Lär dig hur enkelt det är att använda Raspberry Pi CNC hatten från Protoneer av provande den ute på en CDROM stegmotor.Varför: många av oss drömmer om att göra våra egna CNC router / gravör men få gräva ner sig i detaljer och okända. Detta är...

Arduino Stepper Motors

När vi behöver precision och repeterbarhet, är en stegmotor alltid lösningen. Med hur den är utformad, kan en stepper bara flytta från ett steg till nästa och fixa i den positionen. En typisk motor har 200 steg per varv. om vi säger motorn att gå 100...

Kabeldragning för din Z stepper Motors i serien

Detta instructable är avsedd för ägare av RepRap och andra 3d-skrivare som använder 2 stegmotorer för Z-axeln, som vanligen ses i Prusa eller Mendel stilar av skrivare, bland många andra.Standardkonfigurationen för de flesta controller elektronik sås...

Quad Stepper Controller

detta projekt startade förra året fanns en populärvetenskaplig artikel om en universitetsprofessor som gjorde en "3D skrivare." Jag minns att jag tänkte för mig själv "holy crap... Jag vill ha en." Naturligtvis då var $2300 mycket peng...

ARDUINO UNO + TB6560 Stepper motor driver

Hej. God dagDetta är min första instructable. Förhoppningsvis kan någon kommentar om du vill fråga eller rätta mig om jag har felOK, är detta handledning till enheten stegmotor med ARDUINO och TB6560 Stepper motor drivrutin. Du egentligen kan använda...

CNC-maskin för att forma stora bitar av styrencellplast

SammanfattningDetta instructable visar hur man kan forma polystyren skum, med en CNC-maskin. Börjar med en kort introduktion, diskuteras design programvara som krävs för att skapa en STL-fil. Detta följs av en metod för att skapa G-kod, med en STL-fi...

Hemmabyggd (DIY) CNC router - baserade Arduino (GRBL)

Redan för några var månader eller år, jag planerar att bygga mitt eget CNC fräsmaskin. Nu bestämde jag mig för det var tid att göra det! Jag läser mycket om andra DIY projekt och till slut jag gillade designen från Arduino CNC intstructable som jag h...

Goodbye Moshi eller hur du kör din laserskrivare på Arduino

Uppdatering 19/04/2016:MarlinKimbra är här!Detta är en av de bästa firmwares baserat på Marlin jag sett på länge, ingen funktion saknas.Men för vårt syfte här är det bara om att vara uppdaterade och få bättre resultat.Kontrollera det sista steget i d...

Styra en RepStrap bearbetning

detta instructable visar hur du kan använda många öppet tillgängliga projekt tillsammans bygga en intressant och komplexa system. Det drar på flera gemenskapens projekt inklusive: RepRap, Arduino, bearbetning, Linux och, naturligtvis, Instructables!M...

Konvertera en unipolär stegmotor till bipolär

Stegmotorer är fantastiska: med dem kan du bygga 3d-skrivare, robotarmar, automatiska persienner och bara skrämma levande sh * t av din fru med autonoma rörliga halloween rekvisita. Att erhålla en stegmotor alltid ger det awesome varmt "um" käns...

DIY TV LIFT: Mekanik

Denna TV hiss var gjord av material som jag råkade ha till hands. Det onda som följer inte skulle ha hänt om det hade varit planerat. Liften används Makerslide, Shapeoko V1 ändplattor, en Arduino Uno, en 425oz stepper och en 4.5a Stepper drivrutin. F...

Frankenstein Laser gravör

Detta Frankenstein laserskärare var byggd av en gammal scanner och skrivare.Hela utvecklades runt instructable av Ingela och hans "Pocket Laser gravör".Detta är en Making-Of. Även om många, om inte allt, av stöldkoden konstruktionen kräver påhit...

CNC Grbl med Adafruit Motot sköld v2

Detta är inte en instructables är mest för att dela den grbl programvara som jag modifierat till arbeta med Adafruit Motor dragit V2.Jag hade några Adafruit motor sköld v2 och vissa stegmotorer räddade från några gamla skrivare och jag ledsen jag kan...

Pocket laser gravör.

jag har försökt att få mina händer på en laserskärare en tid men de verkar alltid utom räckhåll. Alla bra saker som kan göras med en riktig laserskärare kittla fantasin.Jag tycker det är dags att dela mitt senaste projekt - en låg kostnad laser gravö...

6 x 6 x 6 3D utskrift: Delta CNC

som löpare upp vinnaren i den senaste verkliga utmaningen, jag har belönats med en anpassad 6 x 6 x 6 tum 3D utskrift för min CNC maskin för bearbetning i stora bitar av frigolit. Jag insåg vilken möjlighet detta presenteras och tänkte på många saker...

Ringa upp och dra

Dial & Draw är min super sized version av den klassiska knopp baserade barn leksak vi alla visste och älskade. I detta Instructable kommer vi att skapa en robot som kan dra stora väggmålningar med just snodd av en urtavla. Var kommer att låna några a...