Olá a todos e tenham um bom dia ou noite. Desta vez, compartilharei as instruções para fazer um relógio de sala com um termômetro. O centro de computação do relógio será o Attiny85, montado em uma placa do Digispark. Para exibir o relógio - Oled. Termômetro - o conhecido ds18b20. Para energia, usamos o li-ion 18650 (eles podem ser obtidos a partir de uma bateria antiga de um laptop). E adicione uma exibição do nível da bateria. Como em todos os meus relógios anteriores, ficaremos sem o módulo RTC (relógio em tempo real).
Coletamos tudo o que é necessário:
- Digispark Attiny85 (versão micro USB)
- ds18b20 (em uma caixa de plástico)
- Tela Oled com resolução de 128x64, I2C
- 2pcs 18650 baterias ou uma bateria de íon de lítio antiga
- Resistores (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Plástico fino (para caixa)
- Conexão de fios de cores diferentes
- programador ISP (ou qualquer Arduino taxa)
- Botão
- Conectores Dupont 2,54 mm "mãe", "pai"
- Faca de papelaria, fita dupla face, fita isolante, hotmelt
- Tudo para solda (ferro de solda, resina, solda)
Etapa 1 Caso.
A futura caixa de relógio será feita de plástico fino. Você pode comprar uma folha desse plástico em uma loja especializada ou encomendar no aliexpress. Ou você pode (para não esperar e não olhar) para ir ao escritório e comprar uma pasta de papel plástico da sua cor favorita. Dimensões do futuro relógio: largura - 40 mm, espessura - 30 mm, altura - 70 mm. De acordo com o diagrama abaixo, recortamos uma digitalização em plástico:
Cortamos ao longo de linhas grossas, dobramos suavemente ao longo de linhas finas. Recortamos o retângulo no meio usando uma faca de escritório, esta é uma janela para exibição. Como resultado, obtemos uma varredura de plástico:
Passamos para Attiny.
Etapa 2 Attiny + Oled.
Como eu disse, em nosso coração caseiro será o Attiny 85. É melhor comprar esse chip, imediatamente soldado à placa junto com um regulador de tensão e um chicote. O Digispark Attiny85 é adequado. Escolha a versão com micro-USB na placa. Outras modificações na placa não cabem no tamanho. Acontece que esta placa é vendida com conectores "macho" Dupon já soldados. Nesse caso, solde todos os conectores. Coletamos fios coloridos. Precisamos de 10 centímetros em cores diferentes. Nós os soldamos em Attiny e anotamos a qual fio, a que conclusão corresponde. Os fios P0 e P2 devem ser soldados em dois fios. O segundo par é necessário para conectar a tela Oled. Temos o seguinte:
Eu escrevi o seguinte diagrama no fio:
A tela é pequena (para combinar com o controlador), mas está linda. OLED (diodo orgânico emissor de luz) é uma exibição gráfica. Não há luz de fundo e, em vez disso, cada pixel é um LED independente. Tamanhos de tela - 0,96 polegadas.Resolução 128x64. Conectado via barramento I2C. Usa apenas dois fios para conectar-se ao Attiny. Eles vêm em cores diferentes, escolha ao seu gosto. Eu gostei do azul com uma faixa amarela no topo. Agimos de forma semelhante ao Digispark. Se houver conectores soldados - solde-os. Solda, por enquanto, apenas os fios de energia:
Cuidado ao soldar, não danifique o cabo com um ferro de soldar no visor:
Conectamos as placas usando fita dupla face:
Soldamos as telas Digispark Attiny e Oled juntas de acordo com o esquema (as cores dos fios podem variar, o principal é não mexer nas conclusões):
Por conveniência e ordem, coletamos todos os fios juntos. Você pode torcê-los com fita isolante para não ficar confuso:
No final de todos os fios, conectamos o conector "fêmea" da Dupont, insira-o nos isoladores e enrole tudo junto com fita isolante para fazer o conector. Também registramos a pinagem do conector:
A pinagem deve ser assim, pois no futuro conectaremos um fio para firmware ou outros elementos do relógio ao conector.
Colamos a estrutura resultante no estojo e não esquecemos de colar o estojo em si, deixando um gemido não colado, para outras manipulações:
Ao colar, preste atenção que a tela é uniforme:
Etapa 3 Potência.
Para energia, usaremos dois elementos Li-ion. Digite 18650. Você pode comprá-los separadamente. Nesse caso, solde-os em paralelo, isole e envie o conector para conexão e carregamento subsequente:
Muitos têm laptops mais antigos. Se eles não funcionam mais ou trabalham com o tempo. Mesmo que a bateria do laptop já esteja ruim e não seja adequada para o uso pretendido, ela pode ser usada para todos os tipos de produtos caseiros. No nosso caso, para um relógio. Pegamos a bateria do laptop:
O principal é que ele seja Li-ion. Desmontamos cuidadosamente, é necessário abrir a caixa de plástico para não danificar o elemento interno. Na maioria das vezes, a bateria é dividida em dois elementos conectados em paralelo. Nós os retiramos e separamos um par do resto:
É melhor soldar as pastilhas de contato:
Cole este par na parte de trás do relógio:
Etapa 4 Determinando a carga da bateria.
Uma função conveniente do relógio é indicar a carga da bateria. Determinaremos o grau de carga por voltagem. A tensão mínima para essas baterias é de 2,4 V. Ela não pode ser descarregada mais. A tensão máxima é de 4,2 V.
A medição de tensão na porta analógica é sempre relativa a alguma outra tensão. Não podemos usar o pino AREF do microcontrolador, que serve para definir a tensão de referência. Também é impossível medir a tensão em relação à tensão de alimentação (a relação será sempre a mesma). Portanto, determinaremos a tensão em relação à tensão de referência interna ou Vbg (tensão de referência Bandgap). É 1,1 V. Agora precisamos calcular o divisor de tensão para nossa bateria, de modo que, com carga máxima (4,2 V), o divisor tenha (1,1 V). Você pode calcular pela fórmula:
Ou use
R1 assume um valor de face de 10 kOhm. Então R2, obtemos 3,55 KOhm, o mais próximo adequado dos valores padrão de 3,3 KOhm, e o pegamos. As medições são feitas entre a tensão interna e o GND, de modo que o resistor de 3,3 KΩ é soldado ao menos e 10 KΩ ao mais. Colocamos os resistores na bateria, retiramos o fio do divisor.
Isolamos todos os contatos para evitar curto-circuito:
O fio do divisor será conectado ao PB4.
Etapa 5 Meça a temperatura.
Um excelente complemento para o relógio é a medição da temperatura ambiente. Usaremos o sensor de temperatura integrado DS18B20. Para trabalhar com ele, é necessário apenas um fio (muito útil ao usar o Attiny 85). Todas as medições são feitas por ele mesmo, o controlador central não se incomoda (o Attiny 85 também possui excelente memória e tão pouco), precisamos apenas dar comandos e obter resultados. Existem vários esquemas diferentes para conectar este sensor, usaremos a opção ideal para este caso, na minha opinião.Usando energia externa e um resistor de 4,7 kΩ:
Solde os fios pequenos e aperte os conectores
O fio do sensor DQ está conectado ao PB 3.
Passo 6.
Temos poucas conclusões, mas existem muitos requisitos para relógios. Usaremos um botão para definir a hora. Não podemos contar com mais. Solde os fios ao botão, um contato dele ao GND. Combine com o nosso sensor de temperatura:
O segundo contato do botão está conectado ao PB 1.
Etapa 7 Preparando o ambiente de desenvolvimento
Para mais trabalho com o esboço, assim como sua edição e preenchimento, precisamos do IDE do Arduino. Baixe este programa em:
Agora adicione suporte para o Attiny 85 na quarta-feira. Abra o IDE do Arduion e siga o caminho:
Arquivo - Configurações - "URLs adicionais do Gerenciador de placas" insira o link:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Clique em OK
Vá para:
Ferramentas - Board - Board Manager, digite Attiny e clique em "attiny by David A. Mellis". Clique em "Instalar" e deixe colocar o café.
E agora sobre as bibliotecas. Eles precisam de dois:
Para trabalhar com a tela Oled
Controle do sensor de temperatura
Após o download desses arquivos, descompacte-os na pasta "bibliotecas", que é fácil de encontrar, seguindo o caminho de instalação do Arduino IDE.
Etapa 8 Programador.
O Digispark Attiny 85 é um ótimo conselho. Projetado para conectar a um computador USB. E pode ser programado através dele. Mas o Attiny usa um software USB, que, por sua vez, ocupa 2 KB de 8 KB de memória. Isso não nos convém e, portanto, exibiremos o Attiny 85 na interface do ISP. E aqui precisamos de um programador de ISP. Se não estiver lá - não importa. Pegue o Arduino. No meu caso, o Arduino UNO:
Você pode pegar qualquer outra placa compatível da linha Arduino. Nós nos conectamos ao computador, abrimos o IDE do Arduino, selecionamos a porta com a qual a placa do Arduino está conectada, abrimos o esboço nos exemplos, ISP do Arduino e preenchemos na placa. Também precisamos de um fio para conectar rapidamente ao Attiny.
A conexão é a seguinte:
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Não se esqueça da nutrição Attiny.
Etapa 9 Edite e preencha o esboço.
Download do esboço
Antes de preencher, você precisa editar o esboço.
O sensor integrado ds18b20, como mencionado anteriormente, funciona usando o protocolo One Wire. Cada sensor possui seu próprio endereço exclusivo de 64 bits. Você precisa encontrar o endereço do seu sensor e escrevê-lo em um esboço. Abra o IDE do Arduino, siga o caminho:
Arquivo - Exemplos - Temperatura Dallas - OneWireSearch.
Preencha o esboço no Arduino. Abra o monitor da porta. Você deve ver os endereços de todos os sensores conectados e suas leituras de temperatura. Anotamos seu endereço. Abra meu esboço e altere o endereço para seu próprio na linha:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Para ajustar o progresso do relógio, use a seguinte constante:
if (micros () - prevmicros & gt; [b] 497000 [/ b])
Quanto maior esse valor, mais lento o relógio.
Para controle, os segundos são exibidos na tela:
OzOled.printNumber ((long) sek, 0, 7); // segundos de saída para ajuste preciso
Comente esta linha para remover segundos.
Agora, conectamos o programador ou o Arduino como programador, selecione a porta, selecione nossa placa no menu Ferramentas e defina os seguintes parâmetros:
Conselho: Attiny 25/45/85
Processador: Attiny 85
Relógio: interno 16
Em seguida, selecione no mesmo menu:
Ferramentas - Programador - "Arduino as ISP".
E finalmente:
Esboço - Download via programador
Etapa 10 Montagem final e lançamento.
Desligue o programador e conecte o sensor, energia e botão:
Até que o curso exato do relógio esteja configurado, você pode fechar o gabinete usando borracha de banco. Quando terminar, você pode colar.