Attiny 85 («Pequeño Arduino») , Especificaciones y programación

En esta entrada, quiero presentar el Attiny85, un pequeño microcontrolador, con el que podremos realizar pequeños proyectos, en los que no necesitemos gran cantidad de memoria ni de entradas o salidas.

Es un micro muy limitado, pero puede hacer que ahorremos mucho dinero en componentes, ya que su precio oscila entre los 1,5€ y 2,5€, y para esos pequeños proyectos, no tendremos que comprar un arduino UNO, o Mini. Ahorrando así, dinero y espacio, ya que el tamaño de este microcontrolador es de 0,9 x 0,7 mm.

ATtiny85_900

La programación de este micro, la podremos realizar con nuestro entorno de escritorio de Arduino, pero tendremos que tener en cuenta, que las librerías a usar, tendrían que estar adaptadas a este micro, (habría que buscar esas librerías en concreto, si quisiéramos usarlas).

El Attiny 85 cuenta con 8 patillas, dos de alimentación,una de reset, y 5 entradas/salidas siendo 2 de ellas PWM…

8Kb de memoria de programa.

512 bytes de EEPROM.

512 bytes de SRAM.

20Mhz usando un cristal externo.

attiny45_85pinout1

El número de Pin será el que usemos para la programación del código.

Para la programación de este micro, usaremos un arduino UNO configurado como programador ISP…

Conectaremos el Attiny85 al Arduino uno siguiendo el siguiente esquema…

programador_attiny85

El archivo de fritzing, con el esquema y el PCB podéis descargarlo desde AQUI.

Ahora tendremos que seguir unos pasos, para poder programarlo….

Primero descargaremos el siguiente paquete de archivos y lo descomprimiremos en la carpeta «hardware» dentro de la carpeta de proyectos de arduino, Para que en la lista de placas arduino disponibles, nos aparezca el Attiny85.

Captura de pantalla 2014-01-26 a la(s) 16.06.31

Ahora para poder programarlo, tendremos que preparar nuestra arduino UNO, para ello, instalaremos el sketch de ejemplo  ArduinoISP.

Captura de pantalla 2014-01-26 a la(s) 16.09.00

Una vez cargado el sketch en la Arduino UNO, y conectado nuestro Attiny85, para poder programarlo, solo tenemos que seleccionar la placa correspondiente «Attiny85 (internal 1Mhz clock)» y el puerto será el de la placa Arduino UNO y por último seleccionaremos «arduino as ISP» en el menú herramientas, programador.

Captura de pantalla 2014-01-26 a la(s) 16.13.54

Una vez cargado el sketch en el Attiny85 saldrá el siguiente mensaje…

Captura de pantalla 2014-01-26 a la(s) 16.19.29

Significará, que se ha grabado perfectamente.

Para probarlo, podemos usar el ejemplo «Blink» modificando el pin del led, cambiaremos el 13 del ejemplo, por el 0, que corresponde a la pata 5 del Attiny85, y siguiendo el siguiente esquema…

ejemplo_blink_attiny85

21 Respuestas a “Attiny 85 («Pequeño Arduino») , Especificaciones y programación

  1. Buenas tardes,
    Me gustaría saber si has profuncizado mas en este tema, porq he intentado transmitir por rf desde attiny a arduino (programando el attiny con arduino as ISP) pero debe hacer falta usar el CMD para cargar librerias como manchester.

    Me parece una idea muy interesante pero no soy capaz de llebarla a cabo, podrias echarme una mano?

  2. Lo tengo un poco paralizado, he descubierto que hay muchas librerías que no son compatibles con arduino, pero enviar datos por rf, no he probado, que módulo quieres usar?
    Puede que haga alguna pruebas con un sensor de temperatura por ejemplo…
    Ya te comentare mis resultados…

  3. Buenos dias:
    Este es el TX-RX que compré en ebay->
    http://www.ebay.es/itm/261041100836?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649

    Tengo una placa arduino1(atmega328) y dos attiny 85

    mi idea inicial es, leer un PWM con el attiny y mandar el dato con RF hasta la placa de arduino

    Estoy probando con la libreria manchester,
    https://www.dropbox.com/sh/uo7dzy2u50davb4/iLODxc0b06
    pero si lo subo a pelo con arduino me da error de compilacion(placa=attiny85 programador=arduinoasISP)
    y la otra debe ser con el CMD pero no entiendo los comandos.

    algo a mayores he leido de que hay que cargar en el attiny el bootloader de 8Mhz, pero tampoco me permite subirlo…http://highlowtech.org/?p=1695

    sigo con ello, asique si puedes darle una vuelta y no me he explicado bien pregunta y te concreto.

    Muchas gracias.

  4. Que módulo? rf? isp? por ir pensandomelo si al final tengo que pillar uno…
    y ya aprovechando… controlar un servo con un potenciometro con attiny? lo has probado?

    Un saludo y gracias 😉

  5. Vaya tocho de emisor y receptor! mola! ya me contarás cuando llegue.
    Lo del servo yo tb lo habia conseguido con arduino pero para attiny me da el mismo problema al intentar subir el programa con libreria que en el tema de la radio frecuencia…

  6. Ponme en sketch que has usado y las librerías que has usado en el attiny…
    Para hacerme una idea… Y de paso el esquema de lo que has montado…

  7. Para la radiofrecuencia no he conseguido cargar los ejemplos asiq no he seguido programando, esta es la libreria que tengo descargada:
    https://www.dropbox.com/sh/uo7dzy2u50davb4/iLODxc0b06

    Para el servo en arduino1 tenia un programilla que meti en esta carpeta con la libreria que por lo visto es compatible con attiny(pero todavia hay que modificarle un poco por esta con servo.h y hay que escribirle para serbo8bit.h)
    https://www.dropbox.com/sh/grl7uiylqn9797t/e0RgNbKLUI

    esquemas si necesitas te los mando luego, que ando en el curro ahora. peor vamos, nada de otro mundo, por ahora es conectar el hardware al pin y punto porq solo son pruebas…

  8. Pingback: Nuevo Transponder para RiCino más pequeño … |

  9. Me gusta, es justo lo que andaba buscando para hacer un watchdog hardware para un arduino uno, que me controla el encendido de unas farolas a traves de internet, y de vez en cuando le da por quedarse frito (cada 49 dias mas o menos, por el overflow de millis()…).

    Conectando el attiny 85 a una plaquita con un rele, que a su vez controle la alimentación del arduino UNO, ya lo tenemos… ¡un reset hardware! 🙂

    A ver si tengo tiempo esta semana que viene, lo pruebo, y subo los esquemas y el tutorial a mi blog trasteandoarduino.com 🙂

    Mil gracias otra vez 🙂

  10. También lo había pensado, pero al tener un PLC que también se puede quedar colgado y que no se como resetear por software casi me obliga a un corte de corriente. Había visto circuitos con un 555, pero rebuscando en los cajones encontré un attiny85… que además necesita mucha menos circuitería (nada de condensadores, resistencias, …) y se puede programar en C…

    El problema del reset software es: si el programa se queda colgado y no se ejecuta el codigo del reset… mientras que con algo de hardware externo, si cada cierto tiempo le tenemos que mandar un heartbeat en el momento en que ese attiny no reciba el pulso que espera por la entrada que corresponda, sabrá que algo malo pasa y procedera a activar el rele para hacer un hardreset. Es un programa que vigila a otro…

    Tambien he probado con el watchdog de arduino, pero no termina de funcionar como debe (el softreset que hace parece que no funciona en todos los casos, ademas de que si el problema no es de Arduino, y es del PLC, no solucionamos nada…)

    Jajajaaja, vaya tocho me ha salido… Al final lo que pasa es que Arduino no es una plataforma para poner algo en producción, que tenga que funcionar 24×7 y que sea tolerante a fallos… Ese creo yo que es el problema.

  11. Pingback: Control para tu impresora 3D con pantalla OLED y lector de tarjetas SD |

  12. Hola, he tenido problemas para poder usar la EEPROM del ATTiny85. Que recomendación o que librerías, o artimañas debo hacer para que me funcione la EEPROM del ATTiny?. Hasta ahora lo que hice fue un programa en el cual hago uso de la EEPROM, en el Arduino NANO me funciona perfecto, pero al grabar en el ATTIny, noto que las funciones con EEPROM no funcionan.

  13. Buenos días,
    Aunque veo que hace un par de años del último comentario, lanzo mi consulta:
    ¿Para que sirve el condensador conectado al pin RESET del Arduino?
    Un saludo.

Replica a lisergio