Étape 5: Explication de Code.
Basic couler du code, passe-le si vous voulez, il ne contient aucune étape de la construction réelle.Le code commence comme la plupart des autres, avec la déclaration de variable. La plupart d'entre eux devraient être laissés seuls, mais trois sont utiles à modifier pour calibrer votre installation. Ce sont :
flotteur del = 2 ;
float movedel = 2 ;
float printdel = 5 ;
« del » est le délai entre les étapes du mouvement. Il s’agit (inversement) la vitesse réelle du laser. Si la valeur est trop faible, il peut causer des problèmes dans la gravure, ou « moteur PET », comme je l’appelle, où le moteur fait un fort engouement une seconde environ. Comme le moteur contrôle le laser, c’est un problème. Les deux autres variables sont utilisées pour aider à lutter contre cela.
movedel, c’est combien de temps le programme attend entre recevoir les numéros de port série. C’est nécessaire, car sans elle, les numéros de changent parfois radicalement de ce qui a été envoyé, ce qui pose un problème important.
printdel, c’est combien de temps le programme attendre entre l’envoi d’un « 1 » et « 2 » au traitement. J’aborderai cela plus dans l’étape suivante.
Après avoir configuré les variables, il y a un deux lignes impaires
« TCCR1B = TCCR1B & 0b11111000 | 0 x 01 ;
TCCR2B = TCCR2B & 0b11111000 | 0 x 01; »
Ces lignes augmentent la vitesse de la PWM sur les broches de sortie. Si ce n’est pas fait, les enceintes oscille avec la pwm, qui est normalement à environ 500Hz (500 oscillations par seconde). Ces lignes qui dépasseront 20KHz (20000 oscillations par seconde).
La majorité du code est juste de trouver quelle est la position a été envoyée, et qui devient une valeur l’arduino peut utiliser. Le code réel commence à la fin de « ymove ».
Ici, les valeurs de X et Y (ib et Abdellah) sont redimensionnées pour compenser la différence de distance par angle que survient, qui étendrait l’image la plus loin, que c’est à partir du Centre (X et Y de 100). Ensuite, il figure dans quelle mesure chaque étape du laser doit être. Pour ce faire, il figure tout d’abord dans quelle mesure chaque axe doit voyager :
MX = abs (bi - distx) ;
ma = abs (abdellah - disty) ;
puis prend la valeur maximale entre les deux et divise les deux par cette valeur :
Maxx = max(mx,my) ;
ma = my/maxx ;
MX = mx/maxx ;
Cela se traduit par une des valeurs (ma ou mx) étant l’un et l’autre un nombre décimal.
La partie suivante utilise ces derniers, comme le prochain alors que la déclaration reprend le vide « pos(); » le nombre de fois qu'il a besoin d’afin de déplacer chaque axe la distance qu'il faut.
POS() ; juste detrmines si la valeur de sortir vers les enceintes acoustiques doit aller vers le haut ou vers le bas, puis ajoute ou soustrait mx ou mon en conséquence, puis il écrit la broche analogique va ce haut-parleur à la valeur nouvelle, altérée, après retardant le moment spécifié au début de « del ».
Puis elle remonte et le fait tout de nouveau. centaines
des fois par seconde.