Stap 4: Serial gecontroleerde silicon elektron divergentie matrix (ook bekend als een arduino)
Arduino laser plotter software. Gemaakt en onderhouden door J Duffy (jduffy54 op instructables). Volledige project en uitleg
er beschikbaar.
herziening 11
int stepporty = 0;
int wd = 1;
zweven ib = 0;
int ib1 = 0;
int ib2 = 0;
int ib3 = 0;
zweven iby = 0;
int iby1 = 0;
int iby2 = 0;
int iby3 = 0;
int val = 30;
int prev8 = 1;
int spion = 0;
int g = 9;
zweven maxx = 1;
float movefract;
float decimaal = 0;
zweven stepsd = 0;
zweven stepsw = 0;
zweven stepsdy = 0;
zweven stepswy = 0;
int laat = 0;
int xd = 0;
int yd = 0;
int sp = 1;
int skp = 0;
zweven prevx = 0;
zweven prevy = 0;
float distx;
float disty;
zweven mx = 1;
float mijn = 1;
zweven tt = 0;
int gaan = 0;
zweven del = 3;
zweven movedel = 20;
zweven printdel = 5;
VOID Setup {}
Serial.begin(115200);
TCCR1B & = ~ (1 << CS12);
TCCR1B | = (1 << CS11);
TCCR1B & = ~ (1 << CS10);
/**********************************************************************************/
Pwm resolutie ingesteld op de modus 7 (10 bits)
/**********************************************************************************/
TCCR1B & = ~ (1 << WGM13); Timer B duidelijk bits 4
TCCR1B | = (1 << WGM12); het instellen van bit 3
TCCR1A | = (1 << WGM11); Timer A set bit 1
TCCR1A | = (1 << WGM10); het instellen van bit 0
pinMode (13, OUTPUT);
pinMode (12, OUTPUT);
pinMode (11, OUTPUT);
pinMode (8, INPUT);
digitalWrite (8, hoge);
delay(50);
}
void loop {}
digitalWrite (12, laag);
Als (digitalRead(8) == 0) {}
delay(100);
digitalWrite (11, laag);
digitalWrite (12, laag);
digitalWrite (10, laag);
prev8 = 0;
loop;
} else {}
Als (prev8 == 0) {}
prev8 = 1;
}
Als (Serial.available() > 0) {}
laat = Serial.read();
Als (laat == 'X') {}
digitalWrite (12, laag);
xmove();
}
Als (laat == 'Y') {}
ymove();
}
Als (laat == 'G') {}
UPD();
}
Als (laat == 'F') {}
SkipLine();
}
} else {}
Serial.Print(1);
digitalWrite (12, laag);
delay(printdel);
Serial.Print(2);
}
}
POS();
}
ongeldig skipline() {}
SKP = Serial.read() - 48;
Als (skp = 1) {}
delay(200);
}
loop;
}
ongeldig upd() {}
Als (digitalRead(8) == 0) {}
lus (); / / / noodstop, stopt en keert terug naar loop;
}
g = Serial.read() - 48;
delay(10);
Als (g == 1) {}
digitalWrite (12, hoge);
} else {}
Als (digitalRead(8) == 0) {}
loop;
}
digitalWrite (12, laag);
}
loop;
}
ongeldig xmove() {}
delay(movedel);
Prevx = ib;
IB = Serial.read() - 48;
Als (ib -2 ==) {}
decimaal = 0,1;
dyn = 1;
IB = Serial.read() - 48;
}
delay(movedel);
Als (Serial.available() > 0) {}
ib1 = Serial.read() - 48;
Als (ib1 -2 ==) {}
decimaal = 1;
ib1 = Serial.read() - 48;
}
}
delay(movedel);
Als (Serial.available() > 0) {}
ib2 = Serial.read() - 48;
Als (ib2 -2 ==) {}
decimaal = 10;
ib2 = Serial.read() - 48;
}
}
delay(movedel);
Als (Serial.available() > 0) {}
IB3 = Serial.read() - 48;
Als (ib3 -2 ==) {}
decimaal = 100;
IB3 = Serial.read() - 48;
}
}
IB = (ib * decimaal) + (ib1 * (decimaal / 10)) + (ib2 * (decimaal / 100)) + (ib3 * (decimaal / 1000));
loop;
}
ongeldig ymove() {}
Als (digitalRead(8) == 0) {}
lus (); / / / noodstop, stopt en keert terug naar loop;
}
delay(movedel);
prevy = iby;
Iby = Serial.read() - 48;
Als (iby == -2) {}
decimaal = 0,1;
dyn = 1;
Iby = Serial.read() - 48;
}
delay(movedel);
Als (Serial.available() > 0) {}
iby1 = Serial.read() - 48;
Als (ib1 -2 ==) {}
decimaal = 1;
iby1 = Serial.read() - 48;
}
}
delay(movedel);
Als (Serial.available() > 0) {}
iby2 = Serial.read() - 48;
Als (iby2 -2 ==) {}
decimaal = 10;
iby2 = Serial.read() - 48;
}
}
delay(movedel);
Als (Serial.available() > 0) {}
iby3 = Serial.read() - 48;
Als (iby3 -2 ==) {}
decimaal = 100;
iby3 = Serial.read() - 48;
}
}
Iby = (iby * decimaal) + (iby1 * (decimaal / 10)) + (iby2 * (decimaal / 100)) + (iby3 * (decimaal / 1000));
IB = int(ib *4);
Iby = int(iby * 4);
Ga = 0;
xD = 0;
YD = 0;
MX = abs (ib - distx);
mijn = abs (iby - disty);
Maxx = max(mx,my);
mijn = mijn/maxx;
MX = mx/maxx;
TT = 0;
terwijl (tt < maxx) {}
TT ++;
POS();
}}
ongeldig pos() {}
Als (g == 1) {}
digitalWrite (12, hoge);
}
Als (distx < ib) {}
distx = distx + mx;
}
Als (distx > ib) {}
distx = distx - mx;
}
Als (disty < iby) {}
disty = disty + mijn;
}
Als (disty > iby) {}
disty = disty - mijn;
}
delay(del);
analogWrite (10, distx);
analogWrite (9, disty);
}