Reloj fresco en diodos direccionables (parte 3)

Parte 3. Firmware, configuración y algoritmos de trabajo

En el archivo del proyecto, recopilé el firmware terminado, las bibliotecas utilizadas, así como un artículo con el proyecto original (desafortunadamente, ahora no está disponible en línea). Además, también hay un escáner para el bus I2C (en caso de que el módulo de reloj o el sensor de luz utilicen direcciones no estándar).





Atención

¡Atención! La biblioteca "MicroLED", escrita por AlexGyver, ha recibido una actualización (en el momento de escribir este artículo, hasta la versión 3). Sin embargo, la versión actualizada rompe el firmware, ya que se han cambiado los algoritmos para especificar el color de la cinta.

La versión actualizada agrega funciones que no se utilizan en este proyecto y no puede actualizar la biblioteca sin volver a escribir el código.





Antes de flashear, recomiendo configurar el módulo bluetooth, es decir, configurar un nombre y contraseña, y también verificar la velocidad en baudios del puerto.





Puede dejar la configuración predeterminada (contraseña 1234 o 0000), el nombre también será el predeterminado.





En el proceso de trabajar en este y otro proyecto, tuve en mis manos dos módulos bluetooth (que, por supuesto, se compraron a nuestros amigos asiáticos), cuyo modelo no fue posible establecer. Además, estuvieron en mis manos en diferentes momentos y no pude compararlos en apariencia. Sin embargo, los detalles de su configuración eran diferentes (creo que eran HC-05 y HC-06).





Entonces, primero debe conectar el módulo bluetooth y arduino de la siguiente manera:





Arduino





Bluetooth





Pin 2





TX





Pin 3





RX





5V





VCC





GND





GND





En algunos artículos, hay esquemas de conexión con resistencias, pero todo esto es superfluo. El módulo se configura mediante comandos AT a través del esquema especificado.





A continuación, complete el boceto "BluetoothAT" del archivo en arduino, abra el monitor de puerto, configure la configuración de retorno de carro "CR&NL" e ingrese lo siguiente:





  • AT+BAUD4 ( 9600 (, )





  • AT - "". ,





    :









AT+NAME





AT+NAME?









AT+PSWD





AT+PSWD?









AT+NAME=





AT+NAMEname









AT+PSWD:"9999"





AT+PINpass





arduino bluetooth RX TX.





! bluetooth RX TX . !





, . ( ), .





"Serial Bluetooth Terminal". , "" .

"Send" "Newline" "CR" ( ). - .





, , , :





  • ;





  • ;





  • ;





  • .





, - .











#  "functions",  "LedColor()"
if (time.Hours == 13 && time.weekday != 0 && time.weekday != 6) { //
    ledColor = GREEN;
  }
  else if (time.Hours == 12 && time.minutes >= 40 ) { // 
    ledColor = LIME;
  }
      
      



, 13:00 14:00. ( ). , 20 , .

- .









else if (time.weekday != 5 && (time.Hours == (endWorkHours - 1) && time.minutes >= endWorkMinutes) || time.Hours == endWorkHours && time.minutes < endWorkMinutes) {
    ledColor = OLIVE; //  ( )
  }
      
      



( - ).

"startWorkHours" "endWorkHours" EEPROM ( ) ( Bluetooth).





, ( ) - , - , - .









info



- .





setdate



- . . - 5 . , , , ( = 0, = 1...).





settime



- . , , - 5 . , .





demo



- ( ).





check



- . ,





setworktimes



- ( ) . - 5 . , ( ). 1 .





setbright



- . , . . 5.





. , , .





( 29 31 ) , 10 .





.





:

- , ;

- , . 210 ( - 256).

- , - , 30 ( max_bright



).





, . , , , .





En conclusión, quiero agregar que no pretendo ser la belleza o la absoluta corrección de escribir el código: cualquiera puede modificarlo a su discreción.

Me basta con que el reloj funcione sin congelarse, cambiando el brillo y el color sin congelarse (en la versión anterior del firmware había incidencias y las funciones se reescribieron desde cero).

Restricciones actuales, interrupciones e incluso ahorro de energía: todo esto, por supuesto, se puede implementar, solo uno tiene que preguntarse: ¿por qué todo esto está en este proyecto en particular?

Es solo un reloj.








All Articles