Paso 5: programación
Para este proyecto usé un Arduino Uno para subir el código a un Atmega328. Esta sección será muy pesada con el código, pero te señalo las cosas importantes que se necesitan cambiar para cada proyecto individual. Utilice las clavijas y las variables como sigue
A0 = Photoresistor-define como apagado
A5 = Neopixels
D9 = Servo
umbral = el valor de la interferencia láser. Encontrar el valor que se encuentra en sin interferencia, y luego ir sobre 10 enteros, sólo para estar seguro. Cuando detecta cualquier cosa por debajo de este valor, el código comprobará si es la clave o no.
UpperKeyThreshold y LowerKeyThreshold = los límites superiores e inferiores de la llave. Prefiero este método porque si utilizas un material orgánico, como un cristal, vas a obtener una gran cantidad de impurezas que hará que el posicionamiento del cristal mucho más difícil trabajar con. Esta manera, puede probar la clave para encontrar una gama con que usted es cómodo. Recuerde, cuanto menor sea el rango, más difícil será desbloquear la caja con un objeto específico y cuanto mayor sea el rango, más fácil será utilizar otros objetos para obtener en la caja.
Lo primero que desea hacer la caja para encontrar los valores específicos de prueba. Te recomiendo el programa que Arduino suministros, porque es rápido, fácil y eficiente para utilizar. Una vez cargado, conecte la caja como se muestra en el diagrama en la Página Web. Una vez que está conectado y el láser dado el poder, entonces puede probar para las variables. De esta forma puede probar la posición que desea que su clave, y encontrar los valores para que coincida con. Una vez que encuentre los puede ir al programa real.
En lugar de la explosión la guía con mi código, te concedo lo a este paso como un archivo, que puede descargar y modificar como mejor parezca.
Vas a tener que descargar dos bibliotecas: la biblioteca de Adafruit Neopixely la biblioteca Adafruit TiCoServo.
Se puede usar la biblioteca servo regular en conjunto con la biblioteca de neopixel debido a unos conflictos de flujo de datos entre los dos; es por ello que Adafruit hizo una biblioteca de controlador de servo que trabajaría con él. El artículo incluido es una lectura limpia en el razonamiento detrás de él, así que hay información al respecto en el link si te interesa.