Hur tråd en arduino-baserad 3-axlig CNC-maskin (5 / 6 steg)
Steg 5: Arduino exempelkod
Dan 2010-06-15
#define DIR1_PIN 4
#define STEP1_PIN 5
#define DIR2_PIN 6
#define STEP2_PIN 7
#define DIR3_PIN 8
#define STEP3_PIN 9
#define dröjsmål 150
void setup() {
Serial.BEGIN(9600);
pinMode(DIR1_PIN,OUTPUT);
pinMode(STEP1_PIN,OUTPUT);
pinMode(DIR2_PIN,OUTPUT);
pinMode(STEP2_PIN,OUTPUT);
pinMode(DIR3_PIN,OUTPUT);
pinMode(STEP3_PIN,OUTPUT);
}
void loop() {
int i;
digitalWrite (DIR1_PIN, låg); Ange riktning.
digitalWrite (DIR2_PIN, låg); Ange riktning.
digitalWrite (DIR3_PIN, låg); Ange riktning.
Delay(delay);
Serial.println (">>");
för (jag = 0; jag < 6800; i ++) / / iterera för 4000 microsteps.
{
digitalWrite (STEP1_PIN, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (STEP1_PIN, hög); "Stigande kanten" så easydriver vet att när man ska kliva.
IF((i%2)==0) {
digitalWrite (STEP2_PIN, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (STEP2_PIN, hög); "Stigande kanten" så easydriver vet att när man ska kliva.
}
IF((i%4)==0) {
digitalWrite (STEP3_PIN, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (STEP3_PIN, hög); "Stigande kanten" så easydriver vet att när man ska kliva.
}
delayMicroseconds(DELAY); Denna fördröjning är nära toppfart för detta
} / / särskild motor. Något snabbare motorn spiltor.
digitalWrite (DIR1_PIN, hög); Ändra riktning.
digitalWrite (DIR2_PIN, hög); Ändra riktning.
digitalWrite (DIR3_PIN, hög); Ändra riktning.
Delay(delay);
Serial.println ("<<");
för (jag = 0; jag < 6800; i ++) / / iterera för 4000 microsteps
{
digitalWrite (STEP1_PIN, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (STEP1_PIN, hög); "Stigande kanten" så easydriver vet att när man ska kliva.
IF((i%2)==0) {
digitalWrite (STEP2_PIN, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (STEP2_PIN, hög); "Stigande kanten" så easydriver vet att när man ska kliva.
}
IF((i%4)==0) {
digitalWrite (STEP3_PIN, låg); Detta låg till hög förändring är det som skapar den
digitalWrite (STEP3_PIN, hög); "Stigande kanten" så easydriver vet att när man ska kliva.
}
delayMicroseconds(DELAY); Denna fördröjning är nära toppfart för detta
} / / särskild motor. Något snabbare motorn spiltor.
}