Cool clock em diodos endereçáveis ​​(parte 3)

Parte 3. Firmware, configuração e algoritmos de trabalho

No arquivo do projeto, coletei o firmware finalizado, as bibliotecas utilizadas, bem como um artigo com o projeto original (infelizmente, agora não está disponível online). Além disso, existe também um scanner para o barramento I2C (caso o módulo de relógio ou o sensor de luz utilizem endereços fora do padrão).





Atenção

Atenção! A biblioteca "MicroLED", escrita por AlexGyver, recebeu uma atualização (no momento da redação deste artigo - até a versão 3). No entanto, a versão atualizada quebra o firmware, pois os algoritmos para especificar a cor da fita foram alterados.

A versão atualizada adiciona funções que não são usadas neste projeto e você não pode atualizar a biblioteca sem reescrever o código.





Antes de piscar, recomendo configurar o módulo bluetooth, ou seja, definir um nome e uma senha, e também verificar a taxa de transmissão da porta.





Você pode deixar as configurações padrão (senha 1234 ou 0000), o nome também será o padrão.





No processo de trabalho neste e em outro projeto, peguei em minhas mãos dois módulos bluetooth (que, claro, foram comprados de nossos amigos asiáticos), cujo modelo não foi possível estabelecer. Além disso, eles estiveram em minhas mãos em momentos diferentes e não pude compará-los na aparência. No entanto, as especificações de suas configurações eram diferentes (acredito que eram HC-05 e HC-06).





Portanto, primeiro você precisa conectar o módulo bluetooth e o arduino da seguinte forma:





Arduino





Bluetooth





Pino 2





TX





Pino 3





RX





5V





VCC





GND





GND





Em alguns artigos, existem esquemas de conexão com resistores, mas tudo isso é supérfluo. O módulo é configurado por comandos AT por meio do esboço especificado.





Em seguida, preencha o esboço "BluetoothAT" do arquivo no arduino, abra o monitor da porta, defina as configurações de retorno de carro "CR&NL" e insira o seguinte:





  • 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



).





, . , , , .





Concluindo, quero acrescentar que não pretendo ser bela ou absoluta correção ao escrever o código: qualquer pessoa pode modificá-lo a seu critério.

Para mim, basta que o relógio funcione sem congelar, mude de brilho e cor sem congelar (na versão anterior do firmware havia incidentes e as funções foram reescritas do zero).

Restrições atuais, interrupções e até economia de energia - tudo isso, é claro, pode ser implementado, só é preciso fazer a pergunta: por que tudo isso neste projeto em particular?

É apenas um relógio.








All Articles