Paso 8: Bibliotecas y Variables globales
Este paso será discutir las bibliotecas y las variables globales necesarias para implementar la rutina de detección de movimiento. En primer lugar, vamos a discutir las librerías necesarias.
#include
#include < Adafruit_MCP23017.h >
#include
La biblioteca de Wire.h viene con el IDE de Arduino y no necesita ser descargado. Esta biblioteca permite el Arduino acceder a las entradas analógicas que se necesita para leer el acelerómetro. Las otras dos bibliotecas existen proporcionar las funciones necesarias para utilizar la pantalla LCD RGB de Adafruit. Estas bibliotecas pueden descargarse desde el repositorio de github de Adafruit. En los enlaces proporcionados en los pasos anteriores, pueden encontrarse los enlaces para la descarga de archivos. Vincular las nuevas bibliotecas para el IDE de Arduino, simplemente extraiga el archivo .zip en la carpeta "libraries" (no lib) en el archivo de programa de Arduino. Sin embargo, usted necesitará cambiar el nombre de la carpeta porque el nombre es descargar ya que es un nombre no válido. Simplemente quite los "-" y el "maestro" en el nombre. Tendrá que reiniciar el IDE para completar el enlace.
A continuación, discutiremos las variables globales y objetos declarados para implementar el código.
Lcd de Adafruit_RGBLCDShield = Adafruit_RGBLCDShield(); definir el objeto de LCD como pantalla lcd
#define verde 0 x 2 //define el color verde para el lcd
Lo anterior crea un objeto llamado lcd. Este objeto se utilizará para llamar a funciones específicas relacionadas con el dispositivo LCD. Además, la definición de verde en este caso es un número hexadecimal a la pantalla LCD color para visualizar el siguiente en. Esto puede cambiarse mediante el uso de diferentes números hexagonales.
Declarar pines de entrada
const int xInput = A0; const int yInput = A1; const int zInput = A2; int idleX = 0;
Lo anterior declara los pines de entrada analógicos para el acelerómetro.
int idleY = 0; int idleZ = 0; int idlemaxX = 0; int idlemaxY = 0;
int idlemaxZ = 0; int idleminX = 0; int idleminY = 0; int idleminZ = 0;
Lo anterior inicializa las variables de inactividad para el acelerómetro. Estos deben definirse como variables globales porque son utilizados en las rutinas de la configuración y el lazo. Más adelante, se verá que el estado inactivo se redefine cada vez que el controlador se enciende. Esto evita errores deben las condiciones del medio ambiente cambiar los valores de estado de inactividad.
Tomar múltiples muestras para reducir el ruido
const int sampleSize = 10;
int dir = 0;
Tamaño de la muestra se declara para reducir el ruido en las mediciones del acelerómetro. Cada vez que se leen los valores, 10 muestras son tomadas y luego promediadas. La variable dir se utiliza para comunicar qué botón en la pantalla LCD ha sido presionado. Esto le indica a la LCD qué información para mostrar.