» Electrónica » Arduino »Relojes Oled en Attiny85

Relojes Oled en Attiny85

Buenas tardes y nuevamente estoy con mis juguetes. Hoy les presento instrucciones para hacer relojes pequeños pero lindos con un sensor de temperatura ambiente.
Relojes Oled en Attiny85


Lista de lo que necesitamos:
- Digispark Attiny85
- Pantalla Oled 128x64 I2C
- sensor de temperatura ds18b20
- Resistencia 4.7 Kom 0.25 W
- programador ISP o Arduino Tarjeta de firmware Digispark Attiny85
- Tableta de plástico con clip o lámina de plástico delgado.
- cables
- Conectores Dupont de 2,54 mm "hembra"
- Botones 2 uds.
- Placa de circuito pequeña o moldura pequeña
- soldador
- Soldadura, colofonia
- tijeras
- cuchillo de oficina
- Pistola de pegamento caliente
- pegamento caliente

Paso 1 Seleccionar componentes.
Como controlador principal usaremos Digispark Attiny85. Hay varios tipos de ellos. Necesitamos una placa con un conector micro USB. El resto no cabe en la caja del reloj.

Para mostrar, necesitamos una pantalla Oled 128x64 I2C. Vienen en diferentes colores: blanco, azul, azul con amarillo. ¡Llamo tu atención! El concepto de "dos colores" en la descripción o título de esta pantalla significa una franja de un color en la parte superior de la pantalla y el segundo color en toda la pantalla restante, ¡y no la capacidad de mostrar dos colores con esta pantalla! Todas las pantallas de este tipo muestran solo un color, o en la parte superior una tira de un color en la parte inferior - otro. Como, por ejemplo, el que usaré. La barra de arriba es amarilla; el resto de la pantalla es azul. Puedes elegir el color que quieras.
También necesitamos el sensor de temperatura integrado DS18B20. No fue elegido por casualidad. Primero, el DS18B20 se comunica con el microcontrolador a través de una línea de comunicación de un solo cable utilizando el protocolo de interfaz de 1 cable. En nuestro caso, esto es importante, ya que las conclusiones de Attiny85 sin sensor son pocas. En segundo lugar, este sensor es un dígito, es decir, toma todas las medidas en sí y simplemente transmite datos de temperatura sin gastar los recursos informáticos de Attiny85.

En cuanto al resto, creo que no habrá preguntas, así que pasemos a fabricar el caso.

Paso 2 Montaje de la carcasa.
La caja del reloj estará hecha de plástico delgado. Tenía una tableta de plástico con un clip en mis manos. Es lo suficientemente resistente como para mantener su forma, y ​​al mismo tiempo se puede cortar con tijeras comunes y un cuchillo de oficina. Él salió perfectamente.Si no está disponible, puede comprar una tableta en una tienda de suministros de oficina o encontrar el plástico adecuado para reemplazar la tableta. Realizamos marcas en plástico según el esquema:


Recorta todas las líneas continuas. Punteado: ligeramente cortado con un cuchillo de oficina. Las líneas punteadas son líneas plegadas. Como ya entendió, este es el diseño de cubo habitual. A continuación, debe soldar los cables a la pantalla, lo mejor es tomar varios colores y anotar qué conduce a qué. Pegue la pantalla en el adhesivo termofusible en el medio, de modo que la parte frontal salga por la parte posterior. Como puede ver, hemos cerrado las designaciones de pin de pantalla. Por lo tanto, era necesario anotarlos. Le entregué un poco al cuchillo, y así corté la parte inferior del cuerpo. No hay nada de malo en eso, todo se puede pegar. Pero es mejor no repetir mis errores.



El resultado debería ser así:


En este caso está listo. Todavía puede cortar la cubierta posterior del mismo plástico, pero esto es opcional.

Paso 3 Soldamos.
Nuestro caso es pequeño, y tenemos que meter mucho allí. Por lo tanto, tomamos un pedazo de la placa de circuito no mayor de 2.8 x 2.8 mm y soldamos en dos botones, un sensor ds18b20, una resistencia y varios contactos. De acuerdo con el siguiente esquema:


No es necesario soldar los cables directamente a Attiny, ya que es necesario desconectar todo para el firmware. El resultado debería ser algo como esto:



Se necesitan botones para configurar la hora. La energía se puede tomar del puerto USB de la computadora. Combinando el más y el menos, respectivamente:


Si desea prescindir de los cables, necesita encontrar una pequeña batería de iones de litio. Aquí hay uno, por ejemplo:


Esta batería cabe dentro de la caja. Solo es necesario proporcionar conclusiones para la carga de la batería.

Paso 4 Preparando el programador.
Digispark Attiny85 se puede programar a través del conector micro USB de la placa, utilizando el IDE Arduino como entorno de programación. Pero al mismo tiempo tienes que sacrificar 2 KB de memoria para el gestor de arranque. Attiny 85 tiene un total de 8 KB Flash. Mi boceto no encaja con el gestor de arranque, por lo que necesito programar a través del programador ISP. No tengo un programador así, pero hay una placa Arduino Uno, que usaré como programador. Si tiene un programador ISB, puede omitir este elemento. Abra el IDE de Arduino y complete nuestro boceto llamado ArduinoISP en nuestro Arduino Uno. Puede encontrarlo como este Archivo - Ejemplos - Arduino ISP. El boceto comienza con una pista sobre cómo conectar el Arduino al controlador programable. En lugar de Arduino Uno, puede haber cualquier otra placa Arduino.
// 10: reinicio esclavo
// 11: MOSI
// 12: MISO
// 13: SCK


Esquema de conexión a Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5


Paso 5 Preparar el entorno de programación.
Para editar el firmware y completar el boceto en Attiny 85, debe preparar no solo el programador, sino también el entorno de programación en sí. Para hacer esto, instale el IDE Arduino desde el sitio web oficial Arduino.cc, y también instale el complemento Attiny para microcontroladores a través del Administrador de Tableros.

Inicie Arduino IDE, luego Archivo - Configuración - en el campo URL de Boards Manager adicionales, pegue el enlace:

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


haga clic en Aceptar (puede ingresar varios enlaces separados por una coma en este campo). Herramientas siguientes - Tablero - Administrador de tableros en el campo de filtro, ingrese Attiny y haga clic en "attiny by David A. Mellis". Haga clic en Instalar y espere a que termine la descarga. Ahora en el menú Herramientas, seleccione:
Junta - Attiny 25/45/85
Procesador - Attiny 85
Reloj - interno 16
y seleccione el puerto serie al que está conectado el programador ISP o Arduino como programador.
Probé muchas bibliotecas diferentes para trabajar con la pantalla. En mi opinión, el más conveniente y trabajando en Attiny85: TinyOzOLED.
tinyozoled-master.rar [15.99 Kb] (descargas: 477)


Un sensor de temperatura necesita la biblioteca OneWire.
onewire.rar [16.75 Kb] (descargas: 263)


Instala estas dos bibliotecas. Puede instalar bibliotecas de terceros directamente en el entorno de programación. Sin desempaquetar los archivos descargados, en el IDE de Arduino, seleccione el menú Sketch - Connect Library. En la parte superior de la lista desplegable, seleccione el elemento Agregar biblioteca .Zip. En el cuadro de diálogo que aparece, seleccione la biblioteca que desea agregar. Abra el menú Boceto - Conectar biblioteca nuevamente. Al final de la lista desplegable, debería ver una nueva biblioteca. Ahora la biblioteca se puede usar en programas. No olvides reiniciar el Arduino IDE después de todo esto.Si eso no ayuda, simplemente descomprima los archivos en la carpeta "bibliotecas" ubicada en la carpeta con el IDE Arduino instalado.

Paso 6 Edite y complete el boceto.
El sensor de temperatura funciona de acuerdo con el protocolo One Wire y tiene una dirección única para cada dispositivo: un código de 64 bits. Los recursos de Attiny no son suficientes para buscar este código cada vez. Por lo tanto, primero debe conectar el sensor a cualquier placa Arduino, complete el boceto ubicado en el menú Archivo - Ejemplos - Temperatura de Dallas - OneWireSearch. A continuación, ejecute Herramientas - Monitor de puerto. Arduino debe encontrar nuestro sensor, escribir su dirección y lecturas de temperatura actuales. Copiamos o simplemente escribimos la dirección de nuestro sensor. Abra el boceto Attiny85_Oled_SPI_Term_2, busque la línea:

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


Anotamos la dirección de su sensor entre llaves, reemplazando la dirección de mi sensor. Después de eso, conecte Attiny al programador o Arduino como programador (esto se describe en el Paso 4) y complete el boceto. Queda por desconectar el programador y conectar todo de acuerdo con el esquema en 3 pasos. El montaje resulta algo como esto:


La pantalla es pequeña, es imposible poner tanto el tiempo como la temperatura para que sea visible. Por lo tanto, el reloj cambia la hora con una lectura de temperatura cada 10 segundos.
attiny85_oled_spi_term_2.rar [2.33 Kb] (descargas: 574)

Attiny 85
Total de votantes: 118
9.3
10
8.7

Agrega un comentario

    • sonriesonrisasxaxaokno sabesyahoonea
      jeferascarsetontosisi-siagresivosecreto
      lo sientobailardance2dance3perdónayudabebidas
      pararamigosbuenobuenosilbatodesmayarselengua
      fumaraplaudirllorardeclararburlóndon-t_mentiondescargar
      calorfuriosorisa1mdareuniónMoskingnegativo
      not_ipalomitas de maizcastigarleerasustarasustabuscar
      burlagraciasestoto_clueumnikagudode acuerdo
      malbeeeojo negroblum3ruborpresumiraburrimiento
      censuradocortesíasecreto2amenazarvictoriaYusun_bespectacled
      shokrespektjajajaPrevedbienvenidokrutoyya_za
      ya_dobryiayudantene_huliganne_othodigolpearprohibircerrar
13 comentarios
Vseslav
Gracias, gracias!
El autor
Buenas tardes No utilicé la biblioteca de Digispart. Tienen un cargador de arranque demasiado grande, junto con el dibujo del reloj no encajaba. Usé la biblioteca TinyOzOLED. Ella no tiene ruso. En general, con Attiny 85 es difícil, hay muy poca memoria.
Vseslav
Bien pensado y hecho, un pequeño defecto: las inscripciones en Aglitsky. ¿Pueden cambiarse simplemente por ruso o es difícil para Digispark hacer esto?
El autor
Buenas tardes Los relojes en tiempo real ocupan suficiente espacio, no caben en este caso.
Hmm ... ¿por qué no poner un reloj de tiempo real en lugar de un sensor de temperatura?
El autor
Otro consejo, un LED está conectado al Digispar Attiny 85 P1, si usa este pin, tenga en cuenta su presencia. Doblé este diodo en mi placa, ya que, en mi opinión, solo interfiere.
El autor
Buenas tardes No es necesario hacer un pull-up con una resistencia, ya que la suspensión integrada en Attiny está incluida en el boceto. Quítate el tirante y vuelve a intentarlo.
También puede probar otro boceto de mis otros relojes, tienen el mismo controlador y pantalla, y la configuración se realiza con un botón:
https://esm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Guest Roman
Buen dia Gracias por la idea y el trabajo. Solo que mis manos no son así o no lo entiendo. Los botones de ajuste de hora no funcionan normalmente. Probé tanto tu skech como el mío, en mi solo agregué el modo pin de los botones de entrada, y atravesé 10k a 5V. Y en eso y en eso, el botón no entendió cómo presionar para cambiar. O tengo retrasos o algo está mal con los botones, el reloj habitual.
pantalla genial Pero glotón. RAM come mucho.
Eres un maestro! exprimir en un tinku85 tal.
El autor
Tienes razón, cometiste un error tipográfico de 2.8 x 2.8 cm
Cita: maxim0512
Ya no solo cabe en el estuche.
Por área, puede cien veces más de lo que propuso.
El autor
Ya no solo cabe en el estuche. Solo hay dos botones, una resistencia y un sensor de temperatura. Todo simplemente encaja.
... placa de circuito recortada no más grande que 2.8 x 2.8 mm
No será suficiente )))

Le recomendamos que lea:

Pásalo por el teléfono inteligente ...