Étape 4: Arduino Code
Ce projet nécessite de morceaux de code. « Firmware » qui est chargé sur le microcontrolleur Arduino. Et « Software » qui est géré par le programme de traitement sur le PC.
La chaîne de commandement va comme ceci - transformation -> Ardcuino -> Steppr -> pilotes moteurs pas à pas -> étapes de XY.
Voici un peu plus en détail de la communication qui va se passer, basé sur ma compréhension de la façon dont les choses fonctionnent...
Le logiciel de traitement va envoyer des commandes à la carte Arduino via le câble USB. Carte Arduino The T va prendre le commandement et définir les broches de sortie spécifié à haute ou États faibles logique (5V ou 0V). Les pilotes de stepper sont câblés sur les sorties de carte Arduino. Alors quand les pilotes voient les signaux de hautes et basses, ils envoient la puissance aux bobines appropriées dans les moteurs pas à pas, ce qui les rend d’aller.
Le code ci-dessous configure la carte Arduino pour écouter les commandes envoyées par traitement et ensuite prendre des mesures.
Vous pouvez couper et coller le code dans l’IDE Arduino. Puis vérifiez le code en cliquant sur le "Play" bouton. S’il n’y a pas d’erreurs que vous pouvez puis transférez-le au Conseil d’administration en appuyant sur le bouton upload - qui ressemble à une flèche vers la droite.
Code de l’Arduino :
Lire les données de la série et s’allume ou éteint un feu en fonction de la valeur
et de contrôle de moteur pas à pas sur RepStrap
char de val ; Données reçues du port série
int ledPin = 13 ; L’axe de la valeur numérique d’e/s 13
#define XstepPin 10
#define XdirPin 7
#define YstepPin 2
#define YdirPin 3
void setup() {}
pinMode (ledPin, sortie) ; Mettre la broche en sortie
pinMode (XstepPin, sortie) ;
pinMode (XdirPin, sortie) ;
pinMode (YstepPin, sortie) ;
pinMode (YdirPin, sortie) ;
Serial.Begin(9600) ; Commencer la communication série à 9600 bps
}
void loop() {}
Si (Serial.available()) {/ / si les données sont disponibles pour lire,
Val = Serial.read() ; Lisez-le et stockez-la dans le val
}
Si (val == « H ») {/ / si H a été reçu
digitalWrite (ledPin, HIGH) ; allumer la LED
digitalWrite(XdirPin,HIGH) ;
digitalWrite(XstepPin,HIGH) ;
delayMicroseconds(2) ;
digitalWrite(XstepPin,LOW) ;
delayMicroseconds(2) ;
}
Si (val == « h ») {}
digitalWrite (ledPin, HIGH) ; allumer la LED
digitalWrite(YdirPin,HIGH) ;
digitalWrite(YstepPin,HIGH) ;
delayMicroseconds(2) ;
digitalWrite(YstepPin,LOW) ;
delayMicroseconds(2) ;
}
Si (val == « L ») {}
digitalWrite (ledPin, basse) ; Dans le cas contraire, mettez-le hors tension
digitalWrite(XdirPin,LOW) ;
digitalWrite(XstepPin,HIGH) ;
delayMicroseconds(2) ;
digitalWrite(XstepPin,LOW) ;
delayMicroseconds(2) ;
}
Si (val == « l ») {}
digitalWrite (ledPin, basse) ; Dans le cas contraire, mettez-le hors tension
digitalWrite(YdirPin,LOW) ;
digitalWrite(YstepPin,HIGH) ;
delayMicroseconds(2) ;
digitalWrite(YstepPin,LOW) ;
delayMicroseconds(2) ;
}
delayMicroseconds(1000) ; <<<<<< Permet de modifier la vitesse <<<<<<<<
}