Adoro o relógio luminoso e, quando precisava de outro, montei-o rapidamente em uma placa de ensaio do ATtiny85, o indicador de sete segmentos TM1637 e o relógio em tempo real DS1307. No entanto, durante a montagem, a sensação de que um controlador mais simples poderia ser dispensado não me deixou. E isso acabou sendo verdade.
Isenção de responsabilidade
O autor não possui formação em engenharia e o trabalho não está relacionado aos microcontroladores, porque com certeza tudo está mais ou menos. Além disso, não há otimização do consumo de energia - nós, o arduino, não o aceitamos!
Hardware
Antes de tudo, estudei as soluções disponíveis e não encontrei nenhum exemplo pronto para conectar um DS1307 de dois fios ao ATtiny13. Porque o
RTC foi substituído por um DS1302 de três fios. Mais duas pernas pegaram a conexão do monitor. No meio pé restante da redefinição, havia um botão para definir o tempo usando o
StackOverflow e um par de resistores.
Conexão final de elementos
Diagrama de conexão (de staticmain )Para o bem, você ainda precisa de resistores de 4,7 a 10 K das pernas do microcontrolador PB1 e PB2 (centro superior) até o power plus e um capacitor de 0,1 μF entre mais e menos, mas funciona sem eles.
Parte do software
O número de pernas no ATtiny13 não é o único problema. A memória disponível também é pequena - apenas 1 KB, como resultado das quais bibliotecas prontas não são adequadas. A solução é usar o pacote
MicroCore e a biblioteca compacta para o
TM1637 . Nada foi encontrado para o DS1302, então tive que criá-lo pessoalmente com base
neste repositório. O código de exibição resultante está disponível no
GitHub .
Instruções passo a passo para quem deseja repetir
Lista de peças- Microcontrolador ATtiny13
- Exibir no TM1637
- Relógio em tempo real DS1302
- Quartzo a 32768Hz
- Botão
- Um par de resistores em 1K e 10K
- Suporte de bateria de 3 volts
- Tábua de pão e jumpers ou placa de circuito
Se você usar o Ali-Express, tudo levará cerca de 100 rublos.- Como programador - o Arduino com o esboço do ArduinoISP, fornecido nos exemplos, foi carregado. Se você, como eu, usa o Arduino Nano e os pinos 10-13 para conectar, precisará descomentar a linha 81
#define USE_OLD_STYLE_WIRING
Depois de carregar o esboço entre as pernas da terra e redefinir o Arduino, você precisa colocar um capacitor a 10 mF, embora alguns possam ser costurados sem ele.

Processo de firmware ATtiny13 através de um Arduino ligeiramente empoeirado
- Para que o Arduino IDE funcione com o ATtiny13, o conteúdo do MicroCore é adicionado à pasta% Program Files (x86)% / Arduino / hardware. Depois disso, no IDE, na seção Ferramentas, a placa ATtiny13 é selecionada com as configurações: BOD desativado, LBO ativado, Clock 9.6 osc interno.


- As fontes Git já contêm as bibliotecas necessárias para trabalhar com o ds1302 e o TM1637, que estão configuradas para funcionar nos pinos (consulte os arquivos de cabeçalho da biblioteca), respectivamente a imagem da conexão, então faça o download do repositório e faça upload do clock.ino no ATtiny13. O firmware ocupará quase todo o espaço disponível.

Dispositivo montado em uma tábua de pão. Pontos verdes indicam o local de instalação do ATtiny para firmware (o cabo de alimentação laranja e mais é muito pouco visível).
- Devido à peculiaridade de conectar o botão, classificações imprecisas do resistor e tensão de alimentação, pode ser necessário alterar o limiar de resposta do analogRead no clock.ino (26ª linha).
- Os planos eram fabricar a placa usando o método LUT, mas a impressora quebrou no processo; portanto, a verificação da placa resultante foi adiada indefinidamente até que ela fosse corrigida.
Em vez de uma conclusão
O microcircuito TM1637, que controla um indicador de sete segmentos, possui saídas de dois pinos, cujo status pode ser enviado através da interface. No entanto, eles não estão separados no módulo de exibição e a biblioteca usada não os suporta.
Seria possível criar uma placa para um indicador maior colocando microcircuitos e um microcontrolador em uma placa de circuito impresso, mas me pareceu que, nesse caso, é mais fácil comprar uma pronta. Embora, para mim, isso possa ser um bom designer de rádio.