Paso 6: Código - explicación intermedio
En esta sección se verá sobre el código, por lo que se puede modificar a sí mismo en el futuro.
La primera sección importante es la línea 23 y 24. SPI.h debe ser incluido con el hardware SPI en Arduino. Adafruit_BLE_UART.h debe incluirse como una biblioteca en Arduino como se describe en la sección anterior, o se producirá un error. Esta biblioteca maneja todas las comunicaciones de bajo niveles a la Junta de Adafruit bluetooth - todo lo descrito en la sección SPI.
Líneas 28-30 describen las asignaciones de pin. Como se describe en el pin REQ y RST pin secciones anteriores, los pines 9 y 10 se pueden mover a prácticamente cualquier otro pin, como líneas 28 y 30 se cambian así. Si utilizas uno de los pines de entrada analógicos, son numeradas A0, A1, A2, etc..
Pin 2, el pin RDY se puede mover como bien pero sólo a otro perno capacidad de interrupción. En Uno y Duemilanove, que es único pin 2 o 3. Ver imagen 1.
Si agrega las patas adicionales, usted necesita para asegurarse de que se inicializa en la función de () de configuración. El pinMode () la función toma el número de pin como primer argumento (en este caso, led = 3) y salida o entrada como segundo argumento. En la línea 49 que estamos haciendo que el LED está apagado, poniendo baja digitalWrite (). Que alto encienda el LED. Más adelante veremos cómo inicializar un pin analógico. Consulte la figura 2.
La función de bucle () es donde el código va cuando es "sólo sentados". El código de aquí debe ser capaz de manejar todas las situaciones que te importa. Este código se ejecuta una y otra vez hasta que la energía esté desconectada. Lo primero que nota es línea 61, lo que provoca el loop a ralentí durante 50 milisegundos para que sólo se completa cerca de 20 veces por segundo. Esto mantiene el consumo de energía hacia abajo y es probablemente aún más rápido de lo que usted necesita. Consulte la imagen 3.
El resto del bucle se encarga de comunicarse con el código que se ve después de la Junta de Bluetooth. Usted probablemente puede ignorar hasta llegar a la línea 73. Aquí, un solo carácter se lee desde el bluetooth a la vez y colocado en la variable "val". Línea 74 usa un if () Declaración de averiguar qué personaje era leer. Todo entre el {} tras el if instrucción sólo sucede si eso si evalúa declaración para ser verdad. En línea 75 encendemos el LED estableciendo el pin 3 en alto. En la línea 76 utilizamos una función personalizada para enviar datos por bluetooth hacia el usuario. Comportamiento más complejo se puede agregar mediante la adición de más si () {} bloques. El código puede ajustarse para responder a comandos de letra diferente y manipular varios pernos o enviar datos posteriores en respuesta.
La función sendData es en línea 87. En el tiempo bucle, utilizamos la sendData comandos ("\nLED en") y sendData ("\nLED OFF"). El chip nRF8001 sólo puede enviar 20 caracteres a la vez, así que es la limitación en la función sendData así. El carácter \n no aparece, sino más bien provoca una nueva línea que aparecerá en la aplicación de smartphone (equivalente a un retorno de carro). Ver imagen 4.