Étape 6: programmation
Maintenant le temps pour la programmation, vous devez être familier avec arduino code à faire cette partie (ou il suffit de copier et coller mon code.)
1. tout d’abord, vous devrez inclure quelques bibliothèques...
a. « Wire » permet de démarrer le bus I2C pour l’écran LCD
b. « LiquidCrystal_I2C » utilisé pour l’I2C/écran LCD
c. « Math » nécessaire pour effectuer les calculs de tr/min plus tard
2. maintenant définir vos broches d’entrée/sortie
a. la valeur « solinoid1pin » broche numérique 9
b. la valeur « potpin » comme la broche analogique 1
c. Se « ignitioninputpin » comme la broche 2 (c’est le capteur à effet hall).
d. définir votre « interruptnumber » comme numéro d’interruption 0 (le numéro d’identification numérique 2)
3. maintenant définir toutes les variables suivantes. (Volatile est utilisé car ces variables sont utilisées dans le rapport de recherche internationale)
a. « previousstate »
b. « buttonstate »
c. « counter1 »
d. « Démarrer »
e. « terminer »
f. « expiration »
g. « RPM »
4. maintenant dans la section general setup qui s’exécute uniquement une fois que lorsque vous commencez vers le haut à l’arduino
a. Placez tous vos NIP comme entrées/sorties
b. définir l’état initial de vos broches/variables
c. Fixez la routine d’interruption du service avec ses paramètres
d. initialiser et activer le rétro-éclairage de l’écran LCD
e. sortie une instruction à l’écran LCD
f. commencer la communication série
5. maintenant, voici la boucle principale. Elle se déroulera pour toujours, jusqu'à ce que l’arduino est arrêté
a. sortie buttonstate previousstate et counter1 sur le port série pour diagnostiquer des problèmes plus tard.
b. faire les calculs pour les tr/min
c. mettre en place If/Then instructions pour activer le solénoïde seulement quand le premier aimant est détecté et gardez-le jusqu'à ce que le deuxième aimant est détecté pour l’éteindre.
d. mettre en place If/Then instruction à compter le temps entre les détections de capteur à effet hall
e. faire un autre If/puis instruction qui renvoie le nombre de tours à l’écran chaque fois que le compteur est un multiple de 6. Ceci est fait pour réduire le décalage dans les moteurs, lorsque la vitesse de rotation est envoyé à l’écran LCD
f. Insérez votre routine d’interruption du service. Cela réinitialise le buttonstate, prevousstate et ajoute la valeur 1 au compteur chaque fois.