» Eletrônicos » Arduino »Relógios Oled em Attiny85

Relógios Oled em Attiny85

Boa tarde e novamente estou com meus brinquedos. Hoje, apresento as instruções para a fabricação de relógios pequenos, porém bonitos, com um sensor de temperatura ambiente.
Relógios Oled em Attiny85


Lista do que precisamos:
- Digispark Attiny85
- Tela Oled 128x64 I2C
- sensor de temperatura ds18b20
- Resistor 4,7 Kom 0,25 W
- programador ISP ou Arduino Placa de firmware Digispark Attiny85
- Tablet plástico com clipe de papel ou folha de plástico fino
- fios
- Conectores Dupont 2,54 mm "fêmea"
- Botões 2 unid.
- Placa de circuito pequena ou guarnição pequena
- ferro de soldar
- Solda, resina
- tesoura
- faca de escritório
- Pistola de cola quente
- Cola quente

Etapa 1 Selecionando componentes.
Como controlador principal, usaremos o Digispark Attiny85. Existem vários tipos deles. Precisamos de uma placa com um conector micro USB. O resto não cabe no estojo do relógio.

Para exibir, precisamos de um monitor Oled 128x64 I2C. Eles vêm em cores diferentes: branco, azul, azul com amarelo. Eu chamo sua atenção! O conceito de “duas cores” na descrição ou título dessa tela significa uma faixa de uma cor na parte superior da tela e a segunda cor em toda a tela restante, e não a capacidade de exibir duas cores nessa tela! Todas as telas desse tipo exibem apenas uma cor ou, na parte superior, uma faixa de uma cor na parte inferior - outra. Como, por exemplo, o que eu usarei. A barra acima é amarela e o restante da tela é azul. Você pode escolher qualquer cor que desejar.
Também precisamos do sensor de temperatura integrado DS18B20. Não foi escolhido por acaso. Primeiro, o DS18B20 se comunica com o microcontrolador por meio de uma linha de comunicação de fio único usando o protocolo de interface 1-Wire. No nosso caso, isso é importante, pois as conclusões do Attiny85 sem sensor são poucas. Em segundo lugar, esse sensor é um dígito, ou seja, realiza todas as medições em si e simplesmente transmite dados de temperatura sem gastar os recursos de computação do Attiny85.

Quanto ao resto, acho que não haverá perguntas, então vamos continuar a fabricar o caso.

Etapa 2 Montagem da carcaça.
A caixa do relógio será feita de plástico fino. Eu tinha um tablet de plástico com um clipe de papel nas mãos. É resistente o suficiente para manter sua forma e, ao mesmo tempo, pode ser cortado com uma tesoura comum e uma faca de escritório. Ele surgiu perfeitamente.Se não estiver disponível, você pode comprar um tablet em uma loja de material de escritório ou encontrar o plástico certo para substituí-lo. Fazemos marcações em plástico de acordo com o esquema:


Recorte todas as linhas sólidas. Pontilhada - corte levemente com uma faca de escritório. Linhas pontilhadas são linhas de dobra. Como você já entendeu, esse é o layout usual do cubo. Em seguida, você precisa soldar os fios na tela; é melhor usar cores multicoloridas e anotar o que leva a quê. Cole a tela no adesivo hot-melt no meio, para que a parte da frente saia por trás. Como você pode ver, fechamos as designações de pinos da tela. Portanto, era necessário anotá-las. Entreguei levemente a faca e, assim, cortei a parte inferior do corpo. Não há nada de errado nisso, tudo pode ser colado. Mas é melhor não repetir meus erros.



O resultado deve ser assim:


Neste caso está pronto. Você ainda pode cortar a tampa traseira do mesmo plástico, mas isso é opcional.

Passo 3 Nós soldamos.
Nosso caso é pequeno e temos que nos amontoar muito lá. Portanto, pegamos um pedaço da placa de circuito não superior a 2,8 x 2,8 mm e soldamos em dois botões, um sensor ds18b20, um resistor e vários contatos. De acordo com o seguinte esquema:


Não é necessário soldar os fios diretamente no Attiny, pois é necessário desconectar tudo para o firmware. O resultado deve ser algo como isto:



São necessários botões para definir a hora. É possível obter energia da porta USB do computador. Combinando o mais e o menos, respectivamente:


Se você quiser ficar sem fios, precisará encontrar uma pequena bateria de íons de lítio. Aqui está um, por exemplo:


Esta bateria cabe dentro do gabinete. Só é necessário fornecer conclusões para a carga da bateria.

Etapa 4 Preparando o programador.
O Digispark Attiny85 pode ser programado através do conector micro USB na placa, usando o Arduino IDE como ambiente de programação. Mas, ao mesmo tempo, você precisa sacrificar 2 KB de memória para o carregador de inicialização. O Attiny 85 tem um total de 8 KB em Flash. Meu esboço não se encaixa no gerenciador de inicialização, portanto, preciso programar através do programador do ISP. Eu não tenho esse programador, mas há uma placa Arduino Uno, que eu usarei como programador. Se você possui um programador ISB, pode pular este item. Abra o IDE do Arduino e preencha nosso esboço chamado ArduinoISP em nosso Arduino Uno. Você pode encontrá-lo assim neste arquivo - Exemplos - ISP do Arduino. O esboço começa com uma dica sobre como conectar o Arduino ao controlador programável. Em vez do Arduino Uno, pode haver qualquer outra placa Arduino.
// 10: reset do escravo
// 11: MOSI
// 12: MISO
// 13: SCK


Esquema de conexão com o Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Etapa 5 Preparando o ambiente de programação.
Para editar o firmware e preencher o esboço no Attiny 85, você precisa preparar não apenas o programador, mas também o próprio ambiente de programação. Para fazer isso, instale o Arduino IDE no site oficial do Arduino.cc e também instale o complemento Attiny para microcontroladores por meio do Boards Manager.

Inicie o IDE do Arduino e, em seguida, Arquivo - Configurações - no campo URLs do Gerenciador de placas adicionais, cole o link:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


clique em OK (você pode inserir vários links separados por vírgula neste campo). Próxima Ferramentas - Board - Board Manager no campo de filtro, digite Attiny e clique em "attiny by David A. Mellis". Clique em Instalar e aguarde o download terminar. Agora, no menu Ferramentas, selecione:
Conselho - Attiny 25/45/85
Processador - Attiny 85
Relógio - interno 16
e selecione a porta serial à qual o programador ISP ou o Arduino está conectado como programador.
Eu tentei muitas bibliotecas diferentes para trabalhar com a tela. Na minha opinião, o mais conveniente e trabalhando em Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (downloads: 477)


Um sensor de temperatura precisa da biblioteca OneWire.
onewire.rar [16.75 Kb] (downloads: 263)


Instale essas duas bibliotecas. Você pode instalar bibliotecas de terceiros diretamente no ambiente de programação. Sem descompactar os arquivos baixados, no Arduino IDE, selecione o menu Sketch - Connect Library. Na parte superior da lista suspensa, selecione o item Adicionar biblioteca .Zip. Na caixa de diálogo exibida, selecione a biblioteca que você deseja adicionar. Abra o menu Sketch - Connect Library novamente. Na parte inferior da lista suspensa, você verá uma nova biblioteca. Agora a biblioteca pode ser usada em programas. Não esqueça de reiniciar o Arduino IDE depois de tudo isso.Se isso não ajudar, basta descompactar os arquivos na pasta "bibliotecas" localizada na pasta com o IDE do Arduino instalado.

Etapa 6 Edite e preencha o esboço.
O sensor de temperatura funciona de acordo com o protocolo One Wire e possui um endereço exclusivo para cada dispositivo - um código de 64 bits. Recursos atentos não são suficientes para procurar esse código todas as vezes. Portanto, você deve primeiro conectar o sensor a qualquer placa Arduino, preencher o esboço localizado no menu Arquivo - Exemplos - Temperatura Dallas - OneWireSearch. Em seguida, execute Ferramentas - Port Monitor. O Arduino deve encontrar nosso sensor, escrever seu endereço e as leituras atuais de temperatura. Copiamos ou simplesmente anotamos o endereço do nosso sensor. Abra o sketch Attiny85_Oled_SPI_Term_2, procure a linha:

byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; 


Anotamos o endereço do seu sensor entre chaves, substituindo o endereço do meu sensor. Depois disso, conecte o Attiny ao programador ou ao Arduino como programador (isso é descrito na Etapa 4) e preencha o esboço. Resta desconectar o programador e conectar tudo de acordo com o esquema em 3 etapas. A montagem é mais ou menos assim:


A tela é pequena, é impossível colocar tempo e temperatura para que fique visível. Portanto, o relógio altera a hora com uma leitura de temperatura a cada 10 segundos.
attiny85_oled_spi_term_2.rar [2.33 Kb] (downloads: 574)

Attiny 85
Total de eleitores: 118
9.3
10
8.7

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
13 comentários
Vseslav
Obrigado, obrigado!
O autor
Boa noite Eu não usei a biblioteca do Digispart. Eles têm um gerenciador de inicialização muito grande, junto com o esboço do relógio não se encaixava. Eu usei a biblioteca TinyOzOLED. Ela não tem russo. Em geral, com o Attiny 85, é difícil, há pouca memória.
Vseslav
Bem pensado e feito, uma pequena falha - as inscrições em Aglitsky. Eles podem simplesmente ser trocados por russos ou é difícil para o Digispark fazer isso?
O autor
Boa tarde Os relógios em tempo real ocupam espaço suficiente; eles não se encaixam nesse caso.
Hmm .. por que não colocar um relógio em tempo real em vez de um sensor de temperatura?
O autor
Outra dica: um LED está conectado ao Digispar Attiny 85 P1; se você usar este pino, considere sua presença. Eu apelidei esse diodo no meu quadro, pois na minha opinião ele apenas interfere.
O autor
Boa tarde Não é necessário fazer um pull-up com um resistor, pois a suspensão incorporada no Attiny está incluída no esboço. Tire o seu suspender e tente novamente.
Você também pode tentar outro esboço dos meus outros relógios, eles têm o mesmo controlador e tela e a configuração é feita com um botão:
https://ptm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Romano convidado
Bom dia Obrigado pela ideia e pelo trabalho. Apenas minhas mãos não são assim, ou eu não entendo. Os botões de configuração da hora não funcionam normalmente. Eu tentei tanto o seu skech quanto o meu, no meu apenas adicionei o modo pin dos botões de entrada e passei de 10k a 5V. E nisso e naquilo o botão não entendeu como pressionar para mudar. Ou entrei em atrasos ou algo está errado com os botões, o relógio usual.
tela legal. Mas guloso. RAM come muito.
Você é um mestre! espremer em um tinku85 tal.
O autor
Você está certo, cometeu um erro de digitação, 2,8 x 2,8 cm
Citação: maxim0512
Não cabe mais apenas no estojo.
Por área, você pode cem vezes mais do que propôs.
O autor
Não cabe mais apenas no estojo. Existem apenas dois botões, um resistor e um sensor de temperatura. Tudo se encaixa.
... placa de circuito aparada não superior a 2,8 x 2,8 mm
Não será suficiente. )))

Aconselhamos que você leia:

Entregue-o para o smartphone ...