Paso 3: El bosquejo
En la forma más simple, el bosquejo debe recibir información en números entre 0 y 255. Este número entonces se utiliza para controlar el brillo del LED con la función analogWrite(pin,value). La botella en la aplicación de Roboremo debe enviar el número entre 0 y 255 por Bluetooth módulo Bluetooth HC-06 de la Arduino.
Sin embargo, el módulo recibe datos codificados en forma ASCII ( ASCIIde control). Hay posibilidades de convertir este ASCII codificado a número entero según lo requiera el dibujo.
He probado con el método de fundición tipo . Todo el mundo es consciente de que tipo de una variable debe ser declarada antes de implementar el bosquejo. Si un tipo variable necesita ser cambiado mientras el programa se puede hacer simplemente escribiendo (int), o (byte) o cualquier otro tipo necesarias para convertir a. Por ejemplo,
int i; La variable se declara como un entero
Float f; La variable f se declara como un flotador
f = 3.6;
i = (int) f; ahora es 3, es decir, es el valor entero del flotador f
por lo tanto, declarar la variable fadeness en el bosquejo como byte y luego durante la implementación en el void loop() convertirlo en entero usando el (int).
Este método tiene problemas. El smartphone recibe datos en serie y un número 103 se recibe como separar 1 y 0 y otro de 3. Esto hará que el parpadeo del LED con brillo 1 y cuando se recibe el siguiente bit será 0 y el LED se iluminará con brillo 0 y luego con brillo 3 cuando se recibe 3. El método de fundición de tipo, por lo tanto falla.
Hay otro método para implementar esto, y funciona "EUREKA!". Para que esto se implementa declarar variable que controla el brillo del LED (es decir fadeAmount tal como se indica en el dibujo) como cadena. Aplicación y lectura de los datos sobre el fadeAmount sobre el Bluetooth lo había leído mediante la función Serial.readString() . Es una modificación de la función Serial.read(), que lee los datos recibidos por Bluetooth como cadena. Ahora, convertir esta cadena a entero mediante la función .toInt() . Convierte la cadena a un número como 100 o 200 sin espacios.
Sin embargo, mi observación muestra que es lento y pueden existir otras mejores formas de hacer que funcione más rápido.