Étape 6: Code - explication intermédiaire
Dans cette section, nous nous pencherons sur le code, afin que vous pouvez le modifier vous-même à l’avenir.
La première section importante est la ligne 23 et 24. SPI.h doit être inclus pour utiliser le matériel SPI sur l’Arduino. Adafruit_BLE_UART.h doit être inclus comme une bibliothèque dans l’Arduino comme décrit dans la section précédente, ou vous obtiendrez une erreur. Cette bibliothèque gère toutes les communications de bas niveau au Conseil d’administration Adafruit bluetooth - tout ce que décrit dans la section SPI.
Lignes 28-30 décrivent les mappages de broche. Tel que décrit dans les sections de broche de TVD ci-dessus et le NIP REQ, broches 9 et 10 peuvent être déplacés à peu près n’importe quel autre broche, tant que les lignes 28 et 30 sont ainsi modifiées. Si vous utilisez une des broches d’entrée analogiques, ils sont numérotés A0, A1, A2, etc..
Broche 2, la broche RDY peut être déplacée comme bien - mais seulement sur une autre broche capable de l’interruption. Uno et Duemilanove, c’est la seule broche 2 ou 3. Se référer à l’Image 1.
Si vous ajoutez des broches supplémentaires, vous devez vous assurer pour les initialiser dans la fonction de paramétrage (). La fonction de pinMode () prend le numéro pin comme premier argument (dans ce cas, conduit = 3) et sortie ou entrée comme deuxième argument. Sur la ligne 49, nous faisons en sorte, le voyant est éteint, en lui affectant basse avec digitalWrite (). Mise en haute serait allumer la LED. Nous verrons plus tard comment initialiser une broche analogique. Se référer à l’Image 2.
La fonction de boucle (), c’est où votre code va quand il est "simplement assis". Ici, le code doit être capable de gérer toutes les situations, que vous vous souciez. Ce code est exécuté maintes et maintes fois jusqu'à ce que l’alimentation est coupée. La première chose de la note est la ligne 61, ce qui provoque la boucle d’inactivité pour 50 millisecondes afin qu’il termine seulement environ 20 fois par seconde. Ceci maintient la consommation d’énergie vers le bas et est sans doute encore plus vite que vous avez besoin. Se référer à l’Image 3.
Le reste de la boucle gère communique avec le code qui s’occupe le Conseil de Bluetooth. Vous pouvez probablement ignorer jusqu'à ce que vous arrivez à la ligne 73. Ici, un seul caractère est lue à partir du bluetooth à la fois et placé dans la variable « val ». Ligne 74 utilise un if instruction () pour savoir quel caractère a été lu. Tout entre les {}, suivant le cas énoncé n’arrive que si cela si instruction évalue pour être vrai. Sur la ligne 75 nous éteindre le voyant en affectant à la broche 3 élevé. Sur la ligne 76, nous utilisons une fonction personnalisée pour envoyer des données via bluetooth à l’utilisateur. Comportement plus complexe peut être ajouté en ajoutant plus si blocs {} (). Le code peut être défini à répond aux commandes de lettre différente et manipuler divers broches ou envoyer des données rétrospectives en réponse.
La fonction sendData est sur la ligne 87. Dans le tout en boucle, nous utilisons la commandes sendData (« \nLED sur") et sendData"(\nLED OFF"). La puce nRF8001 peut seulement envoyer 20 caractères à la fois, c’est ainsi que la limitation dans la fonction sendData ainsi. Le caractère \n n’est pas affiché, mais plutôt provoque une nouvelle ligne à afficher dans l’application smartphone (équivalent d’un retour chariot). Se référer à l’Image 4.