Étape 3: L’esquisse
Dans la forme la plus simple, l’esquisse devrait recevoir des informations en chiffres entre 0 et 255. Ce numéro est ensuite utilisé pour contrôler la luminosité de la LED à l’aide de la fonction analogWrite(pin,value). Le curseur sur l’app Roboremo doit envoyer le nombre compris entre 0 et 255 par Bluetooth au module Bluetooth HC-06 de l’Arduino.
Cependant, le module reçoit les données codées au format ASCII (cocher ASCII). Il y a des possibilités pour convertir ce ASCII encodée en nombre entier selon les besoins de l’esquisse.
J’ai essayé d’utiliser la méthode cast de type . Tout le monde sait que le type d’une variable doit être déclarée avant la mise en œuvre de l’esquisse. Si un type de la variable doit être changé tout en appliquant le programme, il peut être fait par juste taper (int) ou (octet) ou tout autre type nécessaire pour être converti en. Par exemple,
int i ; La variable i est déclarée en tant qu’entier
flotteur f ; La variable f est déclarée comme un flotteur
f = 3,6 ;
i = f (int) ; maintenant j’ai 3, c'est-à-dire i est la valeur entière du flotteur f
ainsi, déclarez la variable fadeness dans l’esquisse comme octet et ensuite au cours de la mise en œuvre en void loop() effectuer un cast en entier à l’aide de la (int).
Cette méthode a des problèmes. Le smartphone reçoit des données en série et un numéro 103 est reçoit comme distinctes de 1 et 0 et un autre 3. Cela rendra le clignotement de la LED avec une luminosité 1 et lorsque le bit suivant est reçu ce sera 0 et la diode luminescente avec luminosité 0 puis avec luminosité 3 lors de la réception 3. C’est pourquoi la méthode de cast de type, échoue.
Il y a une autre méthode pour mettre en œuvre cette, et ça marche « EUREKA! ». Pour cela à mettre en œuvre déclarer la variable qui contrôle la luminosité de la LED (c.-à-d. fadeAmount comme indiqué sur le croquis) as String. Mise en œuvre lors de la lecture des données sur la fadeAmount via le Bluetooth lire en utilisant la fonction Serial.readString() . C’est une modification de la fonction Serial.read(), qui lit les données reçues via Bluetooth as String. Maintenant, convertir cette chaîne en entier à l’aide de la fonction .toInt() . Il convertit la chaîne a reçu un certain nombre comme 100 ou 200 sans espace.
Cependant, mon observation montre qu’il est lent et il peut y avoir d’autres façons de mieux faire fonctionner plus rapidement.