Étape 4: Série contrôlée matrice de divergence électrons silicium (également connu sous le nom d’un arduino)
Logiciel Arduino laser plotter. Créé et maintenu par J Duffy (jduffy54 sur instructables). Explication et complète du projet
disponible là.
révision 11
int stepporty = 0 ;
int wd = 1 ;
flotteur ib = 0 ;
ib1 int = 0 ;
ib2 int = 0 ;
ib3 int = 0 ;
flotteur abdellah = 0 ;
int iby1 = 0 ;
int iby2 = 0 ;
int iby3 = 0 ;
int val = 30 ;
int prev8 = 1 ;
espion int = 0 ;
int g = 9 ;
flotteur maxx = 1 ;
float movefract ;
Decimales flotteur = 0 ;
float stepsd = 0 ;
float stepsw = 0 ;
float stepsdy = 0 ;
float stepswy = 0 ;
Laissez int = 0 ;
int xd = 0 ;
yd int = 0 ;
int sp = 1 ;
skp int = 0 ;
flotteur prevx = 0 ;
float prevy = 0 ;
flotteur distx ;
flotteur disty ;
flotteur mx = 1 ;
flotteur ma = 1 ;
flotteur tt = 0 ;
aller int = 0 ;
flotteur del = 3 ;
float movedel = 20 ;
float printdel = 5 ;
void setup() {}
Serial.Begin(115200) ;
TCCR1B & = ~ (1 << CS12) ;
TCCR1B | = (1 << CS11) ;
TCCR1B & = ~ (1 << CS10) ;
/**********************************************************************************/
La valeur pwm résolution mode 7 (10 bits)
/**********************************************************************************/
TCCR1B & = ~ (1 << WGM13) ; Peu clair minuterie B 4
TCCR1B | = (1 << WGM12) ; Définissez le bit 3
TCCR1A | = (1 << WGM11) ; Timer A bit set 1
TCCR1A | = (1 << WGM10) ; Définissez le bit 0
pinMode (13, sortie) ;
pinMode (sortie 12,) ;
pinMode (sortie 11) ;
pinMode (8 entrées) ;
digitalWrite (8, HIGH) ;
Delay(50) ;
}
void loop() {}
digitalWrite (12, faible) ;
Si (digitalRead(8) == 0) {}
Delay(100) ;
digitalWrite (11, faible) ;
digitalWrite (12, faible) ;
digitalWrite (10, faible) ;
prev8 = 0 ;
Loop() ;
} else {}
Si (prev8 == 0) {}
prev8 = 1 ;
}
Si (Serial.available() > 0) {}
Laissez = Serial.read() ;
Si (laissez == « X ») {}
digitalWrite (12, faible) ;
xmove() ;
}
Si (laissez == « Y ») {}
ymove() ;
}
Si (laissez == « G ») {}
UPD() ;
}
Si (laissez == « F ») {}
SkipLine() ;
}
} else {}
Serial.Print(1) ;
digitalWrite (12, faible) ;
Delay(printdel) ;
Serial.Print(2) ;
}
}
POS() ;
}
void skipline() {}
SKP = Serial.read() - 48 ;
Si (skp = 1) {}
Delay(200) ;
}
Loop() ;
}
void upd() {}
Si (digitalRead(8) == 0) {}
boucle (); / / / arrêt d’urgence, s’arrête et retourne à loop() ;
}
g = Serial.read() - 48 ;
Delay(10) ;
Si (g == 1) {}
digitalWrite (12, HIGH) ;
} else {}
Si (digitalRead(8) == 0) {}
Loop() ;
}
digitalWrite (12, faible) ;
}
Loop() ;
}
void xmove() {}
Delay(movedel) ;
Prevx = ib ;
IB = Serial.read() - 48 ;
Si (ib == -2) {}
décimal = 0,1 ;
dyn = 1 ;
IB = Serial.read() - 48 ;
}
Delay(movedel) ;
Si (Serial.available() > 0) {}
IB1 = Serial.read() - 48 ;
Si (ib1 == -2) {}
décimal = 1 ;
IB1 = Serial.read() - 48 ;
}
}
Delay(movedel) ;
Si (Serial.available() > 0) {}
IB2 = Serial.read() - 48 ;
Si (ib2 == -2) {}
décimal = 10 ;
IB2 = Serial.read() - 48 ;
}
}
Delay(movedel) ;
Si (Serial.available() > 0) {}
IB3 = Serial.read() - 48 ;
Si (ib3 == -2) {}
décimal = 100 ;
IB3 = Serial.read() - 48 ;
}
}
IB = (ib * décimale) + (ib1 * (décimal / 10)) + (ib2 * (décimal / 100)) + (ib3 * (décimal / 1000)) ;
Loop() ;
}
void ymove() {}
Si (digitalRead(8) == 0) {}
boucle (); / / / arrêt d’urgence, s’arrête et retourne à loop() ;
}
Delay(movedel) ;
prevy = abdellah ;
abdellah = Serial.read() - 48 ;
Si (abdellah == -2) {}
décimal = 0,1 ;
dyn = 1 ;
abdellah = Serial.read() - 48 ;
}
Delay(movedel) ;
Si (Serial.available() > 0) {}
iby1 = Serial.read() - 48 ;
Si (ib1 == -2) {}
décimal = 1 ;
iby1 = Serial.read() - 48 ;
}
}
Delay(movedel) ;
Si (Serial.available() > 0) {}
iby2 = Serial.read() - 48 ;
Si (iby2 == -2) {}
décimal = 10 ;
iby2 = Serial.read() - 48 ;
}
}
Delay(movedel) ;
Si (Serial.available() > 0) {}
iby3 = Serial.read() - 48 ;
Si (iby3 == -2) {}
décimal = 100 ;
iby3 = Serial.read() - 48 ;
}
}
abdellah = (abdellah * décimale) + (iby1 * (décimal / 10)) + (iby2 * (décimal / 100)) + (iby3 * (décimal / 1000)) ;
IB = int(ib *4) ;
abdellah = int(iby * 4) ;
aller = 0 ;
xD = 0 ;
YD = 0 ;
MX = abs (bi - distx) ;
ma = abs (abdellah - disty) ;
Maxx = max(mx,my) ;
ma = my/maxx ;
MX = mx/maxx ;
TT = 0 ;
tandis que (tt < maxx) {}
TT ++ ;
POS() ;
}}
pos() Sub {}
Si (g == 1) {}
digitalWrite (12, HIGH) ;
}
Si (distx < ib) {}
DISTX = distx + mx ;
}
Si (distx > ib) {}
DISTX = distx - mx ;
}
Si (disty < abdellah) {}
Disty = disty + mon ;
}
Si (disty > abdellah) {}
Disty = disty - mon ;
}
Delay(del) ;
analogWrite (10, distx) ;
analogWrite (9, disty) ;
}