Paso 4: Programar el Arduino
Para la parte de programación de nuestro proyecto, nos escribió un programa de Arduino:
- ajusta automáticamente la temperatura y el brillo del LED basado en la hora del día
- permiten al usuario ajustar la hora y minuto, usando la pantalla táctil y actualizar el reloj de tiempo real
- Mostrar la hora actual en el menú principal
- permiten al usuario especificar cuando despiertan usando la pantalla táctil
- permiten al usuario ajustar la temperatura de color mínimo y máximo y el brillo del LED usando la pantalla táctil
- almacenar la configuración del usuario en el Arduino EEPROM por lo que se pueden recuperar después de que la energía esté desconectada
Nuestro código se basa en las siguientes librerías:
- la biblioteca de Adafruit GFX (más info aquí)
- la biblioteca de Adafruit ILI9341 (esto es específico a la pantalla que utilizamos - más información aquí)
- la biblioteca de ILI9341_due (añadido cuenta con la biblioteca de Adafruit y es significativamente más rápido - más información aquí)
- la biblioteca de Adafruit FT6206 (este es específico para la pantalla táctil capacitiva que utilizamos - más información aquí)
- la biblioteca de SdFat (más info aquí)
- Adafruit RTClib (más info aquí)
- y un montón de librerías estándar de Arduino (más info aquí)
Tenga en cuenta que la biblioteca de ILI9341_due se diseña para el Arduino y debido. Mientras que funciona bastante rápido en Arduinos menos potente que la debida, puede aprovechar un montón de espacio dependiendo de qué funciones utilizar. Desafortunadamente, esto causó que nuestro código requiere unos 44KB de flash. Esto significa que sólo se ajusta en la debida Arduino Mega y cero. Sin embargo, si se puede modificar nuestro código para utilizar una biblioteca de gráficos diferentes, debe montar en casi cualquier Arduino (no sería trivial, aunque).
Si desea utilizar el código que escribimos para nuestro proyecto, puede descargar el archivo adjunto a continuación. Nota que conectamos las clavijas CS, D/C y CCS de la pantalla táctil con diferentes pernos de Arduino que los especificados en el Adafruit guían (mientras que la colocación funciona bien en la ONU, es menos conveniente en la Mega). Se puede actualizar que pines son utilizados por el código cambiando las variables CS_PIN, DC_PIN y CCS_PIN encontradas en la línea 40. Usted también necesitará descargar el mapa de bits especial (que debe ser renombrado a "colors.bmp"), copiar a una tarjeta MicroSD, y poner la tarjeta MicroSD en la pantalla táctil para todo funcione. Tenga en cuenta que la vista previa de la imagen puede parecer extraña por el formato especial que utiliza (consulte la sección "Carga de imágenes desde una tarjeta SD" aquí).
Nos gustaría agradecer Helland de Tanner para el desarrollo de código para convertir temperaturas de color en valores RGB, que nos salvaron de tener que adaptar a nosotros mismos. Usted puede encontrar su puesto en el tema aquí.