Digispark Attiny USB (un Arduino en miniatura)

Digispark Attiny85

El microcontrolador Attiny85 no es muy potente ni demasiado versátil a la vista de los pocos puertos de entrada y salida que tiene, pero es muy pequeño y muy fácil de usar, además de tener un consumo muy bajo y ser muy barato, lo que lo hace perfecto para pequeños proyectos.

Cuando un compañero de trabajo me habló de él no pude esperar a conseguir uno, ya que me encajaba perfectamente para un par de ideas que tenía en la cabeza. Este pequeño microcontrolador de 8 bits sólo tiene 8 patillas: las dos de alimentación y 6 para entrada/salida. Además, lleva un oscilador interno de hasta 20Mhz (si se alimenta a 5,5V), con lo que no es necesario añadir ningún oscilador externo.

Attiny85 pinout

Para un primer contacto he usado una pequeña placa de Digispark. Se trata de la Digispark USB development board. Es muy cómoda de usar ya que puede conectarse directamente al puerto USB, tanto para programarla como para alimentarla. También puede alimentarse externamente a través de los tres pines laterales que pueden verse en la fotografía siguiente.

Disgispark Attiny USB

Los pines son:

5V – Entrada de alimentación a 5V.

GND – Tierra.

VIN – Entrada de alimentación entre 7V y 12V (la placa dispone de un regulador tipo 7805).

Internamente dispone de 8Ks de memoria (aunque el bootloader necesita 2 de esos Kilobytes), y de los seis pines de entrada/salida, además de como E/S digitales, tres pueden ser usados como PWM y 4 como ADC.

Digispark pinout

Esta pequeña placa se puede programar desde el entorno de desarrollo de Arduino, por lo que podremos adaptar desarrollos previos que hayamos hecho para otros microcontrolares soportados por esta plataforma. Los pasos para poder usar esta placa en el IDE de Arduino son las siguientes.

Primero hay que descargar e instalar los drivers de la placa desde https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip.

Una vez instalados, vamos a Archivo>preferencias y en el campo Gestor de URLs Adicionales de Tarjetas ponemos la siguiente URL: http://digistump.com/package_digistump_index.json

preferencias

En el menú Herramientas>Placa seleccionamos Gestor de Tarjetas…

Selección placa

Buscamos la placa Digistump AVR y pulsamos el botón Instalar.

Selección digispark

Elegimos la placa Digispark (Default – 16.5Mhz) en el menú Herramientas>Placa.

Selección microcontrolador

Nos aseguramos de que en Herramientas>Programador está seleccionado AVRISP mskII. En principio, con esto, está todo listo para empezar a trabajar con la placa. Vamos a hacer un pequeño montaje muy sencillo para ponerla a prueba.

Vamos a reutilizar el mismo montaje del artículo anterior, esta es la distribución de los elementos en la protoboard.

Montaje Attiny

Queremos ir encendiendo alternativamente cada led a intervalos de un segundo, así que conectaremos los leds a los pines 0, 1 y 2 de la placa. El programa que vamos a cargar en el Attiny85 es el siguiente.

void setup() {
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
}


void loop() {
  digitalWrite(0, HIGH);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  delay(1000);
  digitalWrite(0, LOW);
  digitalWrite(1, HIGH);
  digitalWrite(2, LOW);
  delay(1000);
  digitalWrite(0, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, HIGH);
  delay(1000);
}

Antes de subir el programa al micro, lo desconectamos del puerto USB y pulsamos la flechita en el IDE para programar la placa. Ahora el programador está a la espera de que conectemos la placa al puerto USB (ahora sí la conectamos). Cuando la detecta, sube el programa y ya podemos volver a desconectarla.

Programación Attiny85

La placa se puede alimentar conectándola a un puerto USB o externamente. En el siguiente vídeo se ve el programa que acabamos de subir funcionando (en este caso con alimentación externa desde una fuente de alimentación a 5V).

 

13 comentarios en «Digispark Attiny USB (un Arduino en miniatura)»

  1. Edwin Melgarejo | el a las | Responder

    Muy bueno el detalle de la instalación con mucha claridad. Los felicito.

    Pero yo hice todo los pasos de instalación y no he podido instalar seguramente estoy mal en algo me pudieran ayudar gracias

  2. rodolfo castellanos | el a las | Responder

    excelente —me estaban creciendo pelos en las orejas no daba como programarla …gracias por compartir tu conocimiento

  3. gonzalo aguilar | el a las | Responder

    muchas gracias he podido superar el problema de programacion con este tutorial de nuevo gracias de verdad. sigue ayudando a la humanidad. es lo mejor

  4. Eduardo | el a las | Responder

    Hola, una consulta? Yo conecto la placa USB a la PC y permanente mente se conecta y se desconecta!! Porque puede ser? Ya probé con 3 placas y con distintas PC y me hace lo mismo

  5. Jaime | el a las | Responder

    Muy bueno el tutorial, gracias a ti he podido configurarlo y ponerlo en marcha superrapido, y funciona genial, gracias y un saludo!

  6. Hola, tengo curiosidad por esta mini placa, tengo una duda hay manera de comunicar la PC y la placa por puerto serie?

  7. A veces, no todos los puertos USB funcionan. Si en uno no pueden programarlo, prueben en otro puerto.
    Saludos

  8. Fernando | el a las | Responder

    La ide se debe hechar a correr y ella avisa cuando conectar a usb. El puerto en mu caso funciona asi

  9. Hola muchas gracias por tu clara explicacion
    Pero al desenchufarlo y volver a enchufarlo no funciona.
    Incluso despues de 5 segundos

  10. Buenos días Alberto. Gracias por tu publicación que me ha venido muy bien para empezar con esta placa.
    Quería preguntarte si es posible alimentarla desde la entrada de 5V con una batería LiPo de 3.7V.
    Para asegurar el funcionamiento correcto y reducir el consumo debido a la impedancia de la salida del estabilizador LM78M05, ¿sería adecuado quitarlo de la placa en el caso de poner la batería?
    Encantado de saludarte.

    • Alberto García | el a las | Responder

      Pues la verdad es que nunca lo he probado, pero yo creo sí. El microcontrolador debería funcionar bien a 3.7V, pero ten en cuenta que las salidas digitales y PWM podrían no date 5V si los necesitas para conectar algún sensor/actuador a 5V.

Deja un comentario

Tu dirección de correo electrónico no será publicada.


*