Digispark ATtiny85 Micro USB: configuración, controladores y primera práctica
Introducción
¿Se puede hacer que un LED se encienda y se apague suavemente, como si respirara, usando una placa más pequeña que una estampilla?
En esta práctica utilizaremos la tarjeta de desarrollo Digispark ATtiny85 con conector Micro USB, una placa compatible con el Arduino IDE que se programa directamente por USB.
Esta versión de la Digispark tiene el mismo microcontrolador ATtiny85 que la versión clásica, pero en lugar de conectarse directamente al puerto, utiliza un conector Micro USB, el mismo de muchos celulares. Esto la hace más cómoda de conectar y más resistente al uso diario.
Durante esta práctica aprenderemos a identificar sus pines, configurar el Arduino IDE, y armar un circuito que controla el brillo de un LED con PWM para crear un efecto de respiración.
¿Qué es la Digispark ATtiny85 Micro USB?
La Digispark es una placa de desarrollo diseñada originalmente por Digistump. Está basada en el microcontrolador ATtiny85 e implementa la comunicación USB por software, mediante un pequeño programa de arranque llamado bootloader (Micronucleus). Gracias a él se puede programar desde el Arduino IDE sin ningún programador externo.
La versión Micro USB funciona exactamente igual que la Digispark con conector USB integrado en la placa: usa el mismo paquete de placas, los mismos controladores y el mismo código. La única diferencia es la forma de conectarla a la computadora: con un cable Micro USB.
Es más pequeña, económica y sencilla que un Arduino UNO, aunque con menos pines y memoria. Es ideal para quienes comienzan en la electrónica y para proyectos donde un Arduino resulta demasiado grande.
Tarjeta de desarrollo Digispark ATtiny85 con conector Micro USB.
Características principales
| Característica | Valor |
|---|---|
| Microcontrolador | ATtiny85 |
| Memoria de programa | 8 KB (aproximadamente 6 KB libres; el resto lo ocupa el bootloader) |
| Pines de entrada y salida | 6 (P0 a P5); en la práctica quedan 3 libres (P0, P1 y P2), porque P3 y P4 se usan para USB y P5 es RESET |
| Salidas PWM | 3 (P0, P1 y P4) |
| Entradas analógicas | 4 (P2, P3, P4 y P5) |
| Comunicación | I2C y SPI (mediante el módulo USI) |
| Entrada VIN | 7 a 12 V recomendados (máx. 35 V) |
| Regulador integrado | 5 V, 500 mA |
| LEDs integrados | LED de encendido y LED de prueba |
| Conexión USB | Conector Micro USB |
| Compatibilidad | Arduino IDE en Windows, macOS y Linux |
| Dimensiones | 24 × 18.5 mm |
| Peso | 2.4 g |
Distribución de pines
Cada pin de la Digispark puede cumplir varias funciones. Esta tabla resume las más importantes:
| Pin | Funciones | Observaciones |
|---|---|---|
| P0 | Digital, PWM, SDA (I2C) | En esta práctica: LED externo |
| P1 | Digital, PWM | Tiene conectado el LED de prueba |
| P2 | Digital, analógica (A1), SCL (I2C) | Uso libre |
| P3 | Digital, analógica (A3) | Se usa para la comunicación USB (USB−). Tiene una resistencia de 1.5 kΩ hacia 5 V, por lo que puede alterar lecturas de sensores. |
| P4 | Digital, PWM, analógica (A2) | Se usa para la comunicación USB (USB+). |
| P5 | Digital, analógica (A0) | Viene configurado como pin de reinicio (RESET). Solo puede usarse como E/S cambiando los fusibles, y aun así entrega una salida débil, de unos 3 V. |
| 5V | Salida o entrada de 5 V | Alimentación regulada. Si alimentas por este pin, la energía no pasa por el regulador. |
| GND | Tierra | Referencia común |
| VIN | Entrada de alimentación externa | Pasa por el regulador de 5 V |
Importante: los pines P3 y P4 están conectados a las líneas de datos del USB. Si conectas algún componente a ellos, es posible que la computadora no reconozca la placa al momento de programarla. Por eso en esta práctica utilizamos P0.
Ojo con la numeración analógica: en la Digispark, el número de la entrada analógica no coincide con el número del pin. Por ejemplo, el pin P2 se lee como entrada analógica 1 (analogRead(1)). Tenlo en cuenta cuando conectes sensores analógicos.
Material necesario
- Tarjeta de desarrollo Digispark ATtiny85 Micro USB.
- Cable Micro USB de datos (no solo de carga).
- Computadora con el Arduino IDE instalado.
- LED de 5 mm o 10 mm (de cualquier color).
- Resistencia de 220 Ω.
- Protoboard.
- Cables Dupont.
Nota sobre el cable: muchos cables Micro USB de cargadores solo tienen los hilos de energía y no los de datos. Con ellos la placa enciende, pero la computadora nunca la detecta. Si tienes problemas para cargar el programa, lo primero es probar con otro cable.
Configuración del Arduino IDE
A diferencia del Arduino UNO, la Digispark no viene incluida en el Arduino IDE, por lo que primero hay que instalar su paquete de placas.
Paso 1. Agregar la dirección del paquete. Abre el Arduino IDE y ve a Archivo → Preferencias. En el campo Gestor de URLs Adicionales de Tarjetas, pega la siguiente dirección. Si ya tienes otras direcciones, presiona el ícono de la derecha del campo y agrégala en una fila nueva.
https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json
Después presiona Ok en las dos ventanas. Esta dirección corresponde a una versión mantenida por la comunidad del paquete original de Digistump, que ya no recibe actualizaciones.
Paso 2. Buscar el paquete. Ve a Herramientas → Placa → Gestor de tarjetas y escribe Digistump AVR Boards en el buscador. Coloca el cursor sobre el resultado y presiona Instalar.
Paso 3. Esperar la instalación. El IDE descarga las herramientas del paquete; la barra inferior muestra el avance. Espera a que termine y presiona Cerrar.
Paso 4. Seleccionar la placa. Ve a Herramientas → Placa → Digistump AVR Boards y elige Digispark. No elijas Digispark Pro (16 MHz): es otra placa con un chip diferente (ATtiny167).
Al elegir la placa aparecen dos opciones nuevas en el menú Herramientas:
- Clock: elige 16.5 MHz - For V-USB, que es la frecuencia con la que funciona la comunicación USB de la placa.
- Micronucleus variant: deja la opción Default (6650 bytes avail.).
Para comprobar que la placa está bien seleccionada, compila cualquier programa: el mensaje debe indicar un máximo de 6650 bytes (o 6586 bytes si elegiste la variante Recommended o Entry on reset). Si aparece un máximo de 14970 bytes, está seleccionada la Digispark Pro.
Nota: la Digispark no utiliza un puerto COM, por lo que no es necesario seleccionar ningún puerto en el menú de Herramientas.
Alternativa: si el gestor de tarjetas marca un error al instalar el paquete, puedes instalar ATTinyCore y elegir la placa ATtiny85 (Micronucleus / Digispark).
Instalación de los controladores en Windows
En Windows es necesario instalar los controladores de Digistump. Sin ellos, la computadora no reconoce la placa y el programa no se puede cargar.
¿Usas otro sistema? En macOS no se necesita instalar ningún controlador. En Linux tampoco se instala un controlador, pero hay que dar permiso de uso a la placa; los pasos están en la sección Configuración en Linux, más abajo.
Si usas Windows, sigue estos pasos:
Paso 1. Descargar los controladores. En la página de versiones del repositorio de Digistump en GitHub (github.com/digistump/DigistumpArduino/releases), busca el archivo Digistump.Drivers.zip y presiónalo para descargarlo.
Paso 2. Descomprimir y ejecutar el instalador. Descomprime el archivo (clic derecho → Extraer todo) y abre la carpeta Digistump Drivers. Haz doble clic en Install Drivers, que elige la versión correcta automáticamente. También puedes ejecutar directamente DPinst64 si tu Windows es de 64 bits, o DPinst si es de 32 bits.
Paso 3. Iniciar el asistente. Se abre el Asistente para la instalación de controladores de dispositivos. Presiona Siguiente.
Paso 4. Autorizar la instalación. Windows pregunta si deseas instalar el software de Digistump LLC. Presiona Instalar. Si marcas la casilla Confiar siempre en el software de "Digistump LLC", no volverá a preguntar por los demás controladores del paquete; si no la marcas, presiona Instalar cada vez que aparezca el aviso.
Paso 5. Finalizar. Cuando el asistente termine, presiona Finalizar y reinicia el Arduino IDE.
Para comprobar que funcionó, abre el Administrador de dispositivos y conecta la Digispark. Durante unos 5 segundos debe aparecer como Digispark Bootloader o dentro de Dispositivos libusb-win32, y después desaparecer. Es normal: el bootloader termina y la placa comienza a ejecutar su programa.
Configuración en Linux
En Linux el sistema ya reconoce la placa, por lo que no se instala un controlador. Solo hay que darle permiso a tu usuario para usarla mediante una regla udev. Sin esa regla, el Arduino IDE no puede escribir en la placa y la carga falla aunque la conectes a tiempo.
Paso 1. Crear la regla udev. Abre una terminal y ejecuta el siguiente comando. Te pedirá tu contraseña.
echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"' | sudo tee /etc/udev/rules.d/49-micronucleus.rules
Este comando crea el archivo 49-micronucleus.rules, que da permiso de uso a cualquier dispositivo con el identificador de la Digispark (16d0:0753).
Paso 2. Recargar las reglas. Ejecuta:
sudo udevadm control --reload-rules
sudo udevadm trigger
Paso 3. Desconectar y volver a conectar la placa. La regla se aplica a partir de la siguiente vez que conectes la Digispark.
Paso 4. Cargar el programa. Es igual que en Windows: presiona Subir en el Arduino IDE y conecta la placa cuando aparezca "Please plug in the device".
Si algo falla:
- Si el IDE muestra un error relacionado con libusb, instala la librería que usa el cargador. En Ubuntu, Debian o Linux Mint:
sudo apt install libusb-0.1-4. En otras distribuciones el comando de instalación cambia (por ejemplo,dnfen Fedora). - Si el error es de permisos, revisa que el archivo exista con
cat /etc/udev/rules.d/49-micronucleus.rulesy reinicia la computadora.
Práctica: efecto de respiración en un LED con PWM
En esta práctica la Digispark hará que un LED externo se encienda y se apague poco a poco, como si "respirara". Es el mismo efecto que tienen muchas computadoras portátiles y cargadores cuando están en reposo.
Para lograrlo utilizaremos la salida PWM del ATtiny85: el pin enciende y apaga el LED muy rápido, tantas veces por segundo que el ojo no lo nota. Variando el tiempo que permanece encendido en cada ciclo, el LED parece brillar más o menos. En el Arduino IDE el brillo se indica con un valor de 0 a 255.
Tabla de conexiones
| Componente | Digispark | Función |
|---|---|---|
| LED, pata larga (ánodo) | P0 a través de la resistencia de 220 Ω | Salida PWM |
| LED, pata corta (cátodo) | GND | Tierra |
La resistencia de 220 Ω limita la corriente que pasa por el LED para que ni el LED ni el pin de la Digispark se dañen. Si el LED no enciende, revisa que no esté al revés: la pata larga debe ir hacia la resistencia y P0.

Conexión física de la Digispark Micro USB con el LED y su resistencia.
El código
Este programa sube y baja el brillo del LED de forma continua:
// ==========================================
// DIGISPARK ATTINY85 MICRO USB
// PRACTICA: EFECTO DE RESPIRACION CON PWM
// LED EN P0 (PWM)
// ==========================================
const int pinLed = 0; // LED externo en P0 (PWM)
void setup() {
// Configurar P0 como salida
pinMode(pinLed, OUTPUT);
}
void loop() {
// Subir el brillo poco a poco (0 a 255)
for (int brillo = 0; brillo <= 255; brillo++) {
analogWrite(pinLed, brillo);
delay(5);
}
// Bajar el brillo poco a poco (255 a 0)
for (int brillo = 255; brillo >= 0; brillo--) {
analogWrite(pinLed, brillo);
delay(5);
}
// Pequena pausa con el LED apagado
delay(300);
}
¿Qué hace el programa?
Primero definimos el pin donde está conectado el LED:
const int pinLed = 0;
En la Digispark, los pines se indican solo con su número: el pin P0 se escribe como 0.
En el setup() configuramos P0 como salida:
pinMode(pinLed, OUTPUT);
En el loop(), el primer ciclo for aumenta el brillo de 0 a 255, un paso a la vez:
for (int brillo = 0; brillo <= 255; brillo++) {
analogWrite(pinLed, brillo);
delay(5);
}
La función analogWrite() aplica el brillo al LED mediante PWM, y el delay(5) hace que cada paso dure 5 milisegundos. Como son 256 pasos, el LED tarda aproximadamente 1.3 segundos en llegar a su brillo máximo.
El segundo ciclo for hace lo contrario: baja el brillo de 255 a 0. Al final, delay(300) deja el LED apagado un momento antes de volver a empezar.
Si quieres que la respiración sea más lenta, aumenta el valor del delay(5); si la quieres más rápida, disminúyelo.
Cargar el programa en la placa
La Digispark se programa de forma diferente a un Arduino UNO: primero se presiona Subir y después se conecta la placa.
- Con el cable Micro USB desconectado de la placa, presiona Subir en el Arduino IDE.
- Cuando el IDE muestre "Please plug in the device (will time out in 60 seconds)", conecta el cable Micro USB a la Digispark.
- Verás "Device is found!" y, al terminar la carga, "Micronucleus done. Thank you!".
- Unos segundos después, cuando termine el tiempo de espera del bootloader, el programa comenzará a ejecutarse.
Hay que conectarla después de presionar Subir porque el bootloader solo acepta programas durante los primeros segundos después de recibir energía. Lo más práctico es dejar el cable conectado a la computadora y desconectar o conectar solo el extremo Micro USB de la placa.
Realizando la prueba
Al empezar el programa, el LED debe encenderse y apagarse de forma gradual una y otra vez, con un ciclo completo de aproximadamente 3 segundos.
Esta tabla muestra cómo cambia el brillo durante la subida:
| Tiempo desde que empieza a subir | Valor PWM | Tiempo encendido en cada ciclo |
|---|---|---|
| 0 s | 0 | 0 % (apagado) |
| 0.32 s | 64 | 25 % |
| 0.64 s | 128 | 50 % |
| 0.96 s | 192 | 75 % |
| 1.28 s | 255 | 100 % (máximo) |
Los porcentajes son aproximados: el valor PWM se divide entre 255 para obtener el tiempo que el LED permanece encendido en cada ciclo.
Nota: el PWM cambia el brillo de forma lineal, pero el ojo humano no lo percibe así: notarás un cambio grande al inicio de la subida y casi nada al final. Para un efecto más natural se puede aplicar una corrección, por ejemplo elevar el valor al cuadrado: brillo * brillo / 255.
¿Qué hacer si la computadora no reconoce la placa?
Es el problema más común al usar la Digispark por primera vez. Estas son las causas más frecuentes:
- El cable Micro USB es solo de carga y no transmite datos. Prueba con otro cable.
- Los controladores de Digistump no están instalados (en Windows).
- La placa se conectó antes de presionar Subir, y el bootloader ya terminó su tiempo de espera.
- Hay componentes conectados a P3 o P4 que interfieren con la comunicación USB. Desconéctalos mientras cargas el programa.
- Algunos puertos USB 3.0 presentan problemas; conviene probar en un puerto USB 2.0 o mediante un hub.
Si el IDE muestra el mensaje de espera y nunca detecta la placa, desconéctala, presiona Subir nuevamente y vuelve a conectarla cuando aparezca el mensaje.
Mejora: dos LEDs que respiran alternados
La Digispark trae un LED de prueba conectado al pin P1, que también tiene PWM. Sin agregar ningún componente, podemos hacer que mientras el LED externo sube su brillo, el LED de la placa lo baje, y viceversa.
Agrega esta línea antes del setup():
const int pinLedPlaca = 1; // LED de prueba en P1 (PWM)
Dentro del setup() configúralo como salida:
pinMode(pinLedPlaca, OUTPUT);
Y dentro de cada ciclo for, después de analogWrite(pinLed, brillo);, agrega:
analogWrite(pinLedPlaca, 255 - brillo);
El resto del programa permanece igual. Como 255 − brillo es el valor contrario, cuando un LED está al máximo el otro está apagado.
Durante la pausa final el LED de la placa queda encendido al máximo. Si quieres que ambos se apaguen, agrega analogWrite(pinLedPlaca, 0); antes del delay(300).
Nota: en algunos clones el LED de prueba está en P0; si el LED de la placa respira junto con el externo, tu placa es de ese tipo.
Ventajas de la Digispark ATtiny85 Micro USB
- Conector Micro USB: se conecta con un cable común, sin forzar el puerto de la computadora.
- Tamaño muy reducido: solo 24 × 18.5 mm y 2.4 g.
- Compatible con el Arduino IDE: se programa con las mismas funciones que un Arduino.
- Sin programador externo: se carga el código directamente por USB.
- Puede funcionar como dispositivo USB: con las librerías adecuadas puede comportarse como teclado o mouse.
- Bajo costo: ideal para proyectos que se quedarán instalados de forma permanente.
Aplicaciones
Esta placa puede utilizarse en diferentes proyectos electrónicos:
- Lámparas y luces con brillo regulable.
- Control de LEDs y tiras LED pequeñas.
- Teclados y atajos USB personalizados.
- Lectura de sensores sencillos.
- Control de relevadores y pequeños automatismos.
- Proyectos portátiles alimentados con un cargador de celular o una batería USB.
- Proyectos educativos de introducción a microcontroladores.
Digispark Micro USB vs. Digispark USB clásica
| Característica | Digispark Micro USB | Digispark USB clásica |
|---|---|---|
| Microcontrolador | ATtiny85 | ATtiny85 |
| Conexión | Cable Micro USB | Directa al puerto USB |
| Paquete del Arduino IDE | Digistump AVR Boards | Digistump AVR Boards |
| Código | El mismo | El mismo |
| Ideal para | Proyectos donde la placa queda lejos de la computadora | Dispositivos USB que se conectan directo al puerto, como teclados o atajos USB |
Conclusión
En esta práctica aprendimos a utilizar la Digispark ATtiny85 Micro USB, una placa compacta, económica y compatible con el Arduino IDE.
Aprendimos a configurar el Arduino IDE y los controladores, a identificar sus pines y a utilizar una de sus funciones más útiles: la salida PWM, para controlar el brillo de un LED y crear un efecto de respiración.
También aprendimos a realizar las conexiones básicas:
COMPONENTE DIGISPARK
LED (+) con 220 ohms ─────────→ P0
LED (−) ──────────────────────→ GND
Este proyecto representa una base muy útil para desarrollar sistemas más avanzados. Por ejemplo, podemos cambiar el LED por una tira LED con un transistor, controlar la velocidad de un motor pequeño o crear indicadores de estado que respiren mientras un equipo está en reposo.
El siguiente paso recomendado sería agregar un sensor analógico, como una fotorresistencia o un sensor de fuerza, en el pin P2 y usar su lectura para controlar el brillo del LED.
Productos relacionados
Estos son los productos utilizados en esta práctica y puedes consultarlos directamente en Tecneu:
Productos utilizados en esta práctica
Digispark ATtiny85 Micro USB
Placa de desarrollo compacta utilizada para controlar el brillo del LED con PWM.
LED Difuso de 10 mm Rojo,Amarillo,Azul,Verde
LED utilizado para visualizar el brillo controlado por PWM.
Resistencias de 1/4 W
Resistencia de 220 Ω utilizada para limitar la corriente del LED.
Cables Dupont
Cables utilizados para realizar las conexiones en la protoboard.
No comments










0 comments