Paso 3: El código
Parte del código proviene directamente de los dibujos de ejemplo que viene con el escudo y el módulo RTC. El resto fue cocinado para arriba por tuyo realmente y muy comentado por su facilidad de uso. Único lo que necesita mirar hacia fuera para es las diferentes formas que se pueden establecer para la pantalla TFT. También está disponible como un tablero de arranque simple (sin el joystick o el lector de tarjetas SD) y el pinout es diferente por eso. También hay varias versiones del escudo que se indicaron mediante el color de la ficha en el protector de pantalla. Mina llegó con una ficha verde pero sólo trabajó con la línea de código negro ficha habilitada. Sólo tendrás que probar un par de cosas para conseguir el tuyo trabajando. Consulte los dibujos de ejemplo para obtener ayuda.
Debe incluir las siguientes bibliotecas:
- Wire.h
- SPI.h
- RTClib.h
- Adafruit_GFX.h
- Adafruit_ST7735.h
Asegúrese de que tenerlos descargado e instalado en el IDE antes que ponerse en marcha. Los tres primeros tienen que ser en ese orden exacto u obtendrá errores de compilación. Yo estaba confundido durante bastante tiempo antes he encontrado ese dato poco en un foro en algún lugar.
Voy a explicar el código un poco. Para elegir un color para usar en la pantalla usted tiene que utilizar un valor hexadecimal de 16 bits pero resulta en una configuración extraña que es un poco difícil de entender al principio. Se llama color 565 y eso es porque el valor verde es tratado de manera diferente. Hay cinco bits para el rojo y azul pero porque su ojo es más sensible al verde utiliza 6 bits para eso. Así que tienes 16 valores para el rojo y azul y 32 para el verde. Pero eso no es todo. El valor más bajo es realmente cero, por lo que el valor más alto es en realidad 15 o 31.
Si bien puede salir un gráfico hexagonal y hacer alguna conversión es algo engorroso para estar constantemente escribiendo en valores de color en hexadecimal como 0xFFFF para blanco (pueden declarar unos valores de color, ver la parte superior del bosquejo) la biblioteca GFX proporciona una agradable pequeña función para cuidar de las cosas para usted utilizando valores de 0 a 255.
Qué significa la porción de tiempo del boceto es tomar el valor de la hora y usar la función de mapa para convertir 24 horas, 60 minutos y 60 segundos a valores entre 0 y 255. Luego conecta las variables en el tft. Función Color565 y se encarga de dar con el valor hexadecimal. Dar el valor rojo, minutos el verde y segundos el azul.
redValue = map(hour(t), 23, 0, 0, 255);
grnValue = map(minute(t), 59, 0, 0, 255);
bluValue = map(second(t), 59, 0, 0, 255);
tft.fillRect (0, 0, 160, 50, (tft. Color565(redValue, grnValue, bluValue)));
Eso es lo que usa el bosquejo para definir los colores de texto y el campo. Metí con eliminar la barra negra y en su lugar con el tiempo aparecen en negro con un fondo de texto pero era un poco flickery. Por eso existe la barra y dibuja dos rectángulos de color en vez de simplemente llenar la pantalla con color.
En cuanto a los colores puedes saber donde estás en el día o la hora con sólo un vistazo.
Justo después de medianoche es muy oscuro porque el rojo (horas) valor es cero y por lo tanto son el azul y el verde (minutos y segundos). Los segundos Marque cosas conseguir más azul y más azul hasta el minuto garrapatas y se añade un poquito de verde y el valor azul vuelva a cero. Cuando es casi 1:00 las cosas serán muy verdes con los segundos teniendo cosas en teal como se arrastran para arriba.
Por hora de la comida hay una gran cantidad de rojo en el juego por lo que las cosas comienzan a conseguir un poco más morado.
Y al final de la jornada, especialmente justo antes de medianoche las cosas son muy brillantes porque todos los valores son muy altos en este punto.
Si usted también tiene el escudo con el joystick es muy sencillo añadir algo de código para ajustar el brillo. Si has pasado la ruta simple sólo puede agregar dos botones a las dos patas que pueden hacer un digitalRead. Usar uno para llamar a la función de brillo y luego los otros dos para arriba y abajo. Seleccione nuevo para salir de golpe.
Si desea deshacerse totalmente de botones podría bien programa el brillo dependiendo de la hora del día, o utilizar un sensor de foto y control con niveles de luz ambiente.
Aquí está el código: