Algunas veces he tenido ideas para proyectos en las que el circuito a aplicar era bastante simple pero no por eso menos útil. Por poneros un ejemplo, imaginemos una persiana con el motor de subida y de bajada ya incorporado. Si queremos que frente a una determinada luz ambiente la persiana se adapte para la entrada de luz natural en la habitación, solo necesitamos, aparte del Arduino, un LDR (resistencia que varía en función de la luz que le llega) y un relé que haga de "llave de paso" para activar o desactivar el motor. Si además de la sencillez del circuito tenemos poco espacio disponible puede que una placa Arduino no sea la mejor opción para gobernar el circuito. Existe una alternativa y es usar un microcontrolador puro y duro. Por puro y duro me refiero sin nada de electrónica adicional como en las placas que ya conocemos que vienen con conectores USB, Jack de alimentación, contactos para todos los pines, algún led incorporado... Me estuve informando acerca de esto y vi que uno bastante versátil es el ATtiny85 de Atmel (fabricante del ATmega que llevan casi todos los Arduinos). Sus dimensiones son ridículas como se puede ver en la foto que os dejo más abajo, y las prestaciones, aunque son más limitadas, pueden ser suficientes para el proyecto que tengamos en mente.
![]() |
ATtiny85 sobre una moneda de 1 céntimo de euro. |
Y, ¿qué es lo bueno de este microcontrolador? ¿por qué lo he escogido? La respuesta es muy sencilla: porque lo podemos programar en lenguaje Arduino con el IDE que hemos utilizado siempre, utilizando el propio Arduino UNO (no he probado otros de momento) como programador sin necesidad de soldaduras o montajes de cables para conectarlo al ordenador por puertos paralelos, USB... Todo muy sencillo con apenas unos retoques en la configuración del IDE.
Antes de nada, estas son algunas de las características del micro del que os hablo:
- Dimensiones: 0.9 x 0.7 cm. aprox.
- Alimentación a 5V.
- 5 entradas/salidas de las cuales 2 son PWM.
- Memoria de programa: 8 kB.
- Memoria EEPROM: 512 bytes.
- Memoria SRAM: 512 bytes.
- Reloj interno a 1 o a 8 MHz, ampliable hasta 20 MHz con cristal externo.
![]() |
Diagrama del patillaje del microcontrolador |
Aquí dejo el datasheeet para consultar más datos si fuera necesario: Datasheet ATtiny25/45/85
Configuración de nuestro Arduino UNO como grabador
Como dije antes, elegí este microcontrolador por poder programarlo con Arduino sin necesidad de montajes complicados ni de placas grabadoras adicionales, por lo tanto, vamos a preparar nuestro Arduino como grabador. Para ello abrimos el IDE (que como siempre, os dejo el enlace al final de la página) y nos vamos a Archivo > Ejemplos > ArduinoISP. Verificamos la configuración de subida (Arduino/Genuino UNO en el puerto correspondiente) y cargamos. Ya tendremos configurada nuestra placa como un programador de microcontroladores.
Conexión del microcontrolador
Algo muy importante y que tendremos que tener en cuenta durante todo el proceso de manipulación del micro es que no da igual la posición en la que lo conectemos. Conectándolo mal podríamos quemarlo. Según el esquema de patillaje que os dejo junto a las características del chip más arriba, cada patilla tiene su número y la orientación viene dada por una muesca en el dentro del lado pequeño del micro o por un punto troquelado. En la imagen en la que aparece sobre una moneda de un céntimo se puede apreciar lo que digo (está al lado del triángulo que hay en la inscripción). El pin de la esquina en la que se encuentra ese "punto" sería el 1 (reset).
Para conectar el ATtiny85 yo me fabriqué una PCB, que se puede ver en algunas imágenes de la entrada de la fabricación de PCBs, con el fin de tener cierta facilidad a la hora de reprogramar el chip en caso de necesitarlo y no andar haciendo montajes en una protoboard aparte. Dejo al final del post el archivo pdf de la placa para que quien quiera pueda reproducirla siguiendo la entrada que mencionaba antes. Aún así, muestro también un esquema de conexionado para poder programarlo sin tener la PCB que decía.
![]() |
Aunque el recortado de la placa deja que desear, cumple su función |
![]() |
Condensador de 10µF/16V. Imagen hecha con Fritzing. |
A partir de este diagrama se pueden hacer algunas observaciones. Los leds no influyen en el grabado del sketch en la memoria del micro, son simplemente "notificaciones visuales". El verde es el de alimentación, el rojo nos indicará si se produce algún fallo en el proceso de grabado y el amarillo nos informará de cuando se está programando el chip. Por otra parte, el condensador (10µF/16V), según he leído, es necesario conectarlo entre el pin reset y GND de nuestro Arduino para evitar un auto-reset que se produce, en teoría, a la hora de cargar el sketch en el ATtiny85. Yo por ejemplo no lo puse y no tuve ningún problema para programarlo. Si os diese fallo, la solución es tenerlo en cuenta y colocarlo. Ojo a la polaridad, que es electrolítico y no da igual ponerlo en un sentido que en otro (podría incluso explotar si lo conectásemos al revés). Por tanto (y así es como programé el mío), se puede omitir tanto la parte del condensador como la de los leds, siempre y cuando no dé fallos luego, que de ser así tendríamos que incorporar al menos el condensador.
Configuración del IDE y subida del ejemplo "Blink"
Para la preparación del IDE tenemos que instalar los "drivers" de los microcontroladores para que aparezcan en el apartado "Boards" del programa. Para ello nos vamos a Archivo > Preferencias, copiamos el siguiente enlace en "Additional Boards Manager URLs" y damos a "Ok".
Este es el enlace:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
![]() |
Enlace: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json |
Ahora nos vamos a Herramientas > Placa > Boards Manager y dejamos que busque y actualice los archivos. Esto tardará unos segundos. Si bajamos al final en la lista de packs de placas encontraremos la attiny de David A. Mellis. Seleccionamos la última versión disponible, en mi caso es la 1.0.1, y le damos a "Install". Cerramos y ya tendremos los micros instalados (digo los micros porque vienen cuatro en ese paquete, el ATtiny 44, 45, 84 y 85). Puede que sea necesario reiniciar el IDE para poder ver los ATtiny.
Para hacer la prueba vamos a subir el ejemplo Blink. Para ello, desde Archivo > Ejemplos > 01.Basics > Blink, lo abrimos y cambiamos en el código los "13" por "0". Esto es porque esos pines están definidos para el Arduino UNO, concretamente para hacer que parpadee el led que lleva incorporado la placa y conectado al pin 13. Al cambiarlo a 0 estamos diciéndole que parpadeará el led que conectemos al pin 0 del ATtiny85. Para subirlo, tenemos que definir algunas cosas. En Herramientas > Placa seleccionamos "ATtiny"; en Procesador, "ATtiny85"; en Clock, "1 MHz (internal)" y en puerto, el COM al que tengamos conectado el Arduino, en mi caso es el COM7. La referencia de este último sí que es a la placa Arduino UNO y no al micro ya que lo que el PC detecta es un Arduino. Por último, escogemos en Programador la opción "Arduino as ISP" (cuidado, no es lo mismo que "ArduinoISP"). Todo esto se puede ver en la siguiente imagen:
Le damos a subir y debería empezar a grabarse el sketch en nuestro micro. Si tenemos los leds conectados veremos cuando se termina de grabar o si hay fallos durante el proceso. En una de las pruebas que hice no conseguía grabar nada y la solución fue desconectar el chip, volver a cargar el sketch ArduinoISP del apartado "Configuración de nuestro Arduino uno como grabador" y repetir el proceso de grabación. Lo aviso como posible solución si os ocurre lo mismo.
Prueba en un circuito real
Ahora que ya tenemos el ATtiny85 grabado vamos a probarlo en el circuito. Según el esquema del patillaje que os dejo con las características, el pin 0 que cambiábamos en el código corresponde con la patilla 5 o sea que aquí será donde conectemos el led. La alimentación del micro es a 5V por lo que se puede usar un regulador del estilo del 7805 o cualquier otra fuente que nos entregue ese voltaje, aunque yo, para evitarme complicaciones y siendo que estaba haciendo pruebas, utilicé el mismo Arduino. Un posible circuito podría ser el siguiente:
Aquí finaliza el proceso de grabación, pero antes de terminar hay que puntualizar algunas cosas.
Extras
Cambio de velocidad del procesador (usando el cristal interno)
En el IDE veíamos que en Clock podíamos seleccionar varias velocidades. Según los usos que le vayamos a dar, la de 1 MHz que es la que hemos utilizado nosotros puede ser suficiente o no. Aún así podemos subirla a 8 MHz (internal). Esto quiere decir que el ATtiny85 usará el cristal interno que tiene igual que antes, pero en vez de a un millón de ciclos por segundo (1 MHz), lo hara a ocho (8 MHz). Para cambiarlo, no solo hay que seleccionar la opción en el menú del reloj. De hecho si probáis a configurarlo a ocho, siempre "internal", veréis que a pesar de poner 1000 en el delay del Blink, lo que sería una pausa de un segundo, el led cambiará cada ocho segundos. ¿Coincidencia que al subir la velocidad a 8 MHz el led cambie cada ocho segundos?
Para solucionar esto tenemos que quemar el Bootloader en el chip y es tan fácil como en Herramientas seleccionar toda la configuración que deseemos (que sería la misma que teníamos a la hora de probar el led durante el tutorial, pero con 8 MHz (internal) en Clock) y darle a "Quemar Bootloader". Una vez hecho esto, ya podremos subir nuestro sketch y funcionará como queremos. Cuidado porque subir la velocidad del procesador significa que consumirá más al hacer más cálculos por segundo, y si esto lo destinamos a algún proyecto en el que vayamos limitados de batería puede suponer problemas de alimentación y por tanto menos autonomía.
Uso con cristal externo
También se puede utilizar nuestro ATtiny85 con un cristal externo. Si no estáis muy familiarizados con ellos os recomiendo un vídeo de Terrazocultor en el que habla de ellos (enlace) y también tenéis el link a su canal en el apartado de Enlaces de interés del blog. A lo que íbamos. Utilizar un cristal externo implica privar pines del micro de su función de entrada/salida, concretamente el 2 y el 3, lo que nos reduce el número de pines operativos a 3, solo por utilizarlo a 16 o a 20 MHz, algo desde mi punto de vista y manteniendo el fin de utilizar un micro para tareas sencillas en lugar de un Arduino es innecesario. No lo he utilizado nunca con oscilador externo y no puedo dar más detalles. Tampoco sé si el cambio de configuración será tan fácil como quemarle otro bootloader. Si algún día lo pruebo, lo explicaré en una entrada aquí, en el blog.
Funciones válidas
Según he leído, hay una lista de funciones que sirven y se pueden implementar sin ningún problema en nuestro ATtiny85. Por supuesto, la sintaxis de C como if, else, for, switch, etc. también funcionará. Esas funciones son:
- pinMode()
- digitalWrite()
- digitalRead()
- analogWrite()
- analogRead()
- pulseIn()
- shiftOut()
- millis()
- micros()
- delay()
- delayMicroseconds()
Donde conseguirlo
Y la pregunta del millón, ¿dónde puedo conseguir uno de estos? Mi recomendación es preguntar en tu tienda habitual de electrónica. Probablemente, al no ser algo muy demandado, no tengan pero te lo puedan encargar. Aquí en España está alrededor de los 4€ la unidad. Yo suelo adquirir todo lo que puedo en mi tienda de electrónica, pero en este caso recurrí a AliExpress. Buscaba este micro para aprender más acerca de él y abrirme otra puerta para futuros proyectos, lo que se traduce en hacer pruebas y por tanto el componente en cuestión se vuelve muy susceptible de ser dañado. Como soy precavido y no me gusta tener sobresaltos durante cualquier proceso que esté llevando a cabo, pensé que comprarme tres a 4€ cada uno era mucho dinero siendo que solo quería experimentar. Me metí en AliExpress y vi un pack de 5 unidades a poco más 4'50€, algo mucho más asequible. Hay que decir que también hay venta individual, pero teniendo en cuenta lo que tardan en llegar ya que vienen de China, un lote de cinco no me parecía tan mala compra. No os pongo el enlace porque estas cosas varían de precio, unos céntimos arriba o abajo, o simplemente al ser vendidos por particulares, desaparecen del mercado y surgen otros nuevos. Este es el aspecto que tenían:
![]() |
Lote de 5 ATtiny85 de AliExpress |
Y dicho esto finalizamos la publicación. Como siempre, cualquier duda se puede dejar en los comentarios.
Enlace al IDE de Arduino: https://www.arduino.cc/en/Main/Software
NOTA: En la disposición de componentes pone TINY13. Esto es porque en la librería de Eagle no encontré el ATtiny85 pero no importa porque en cuanto a dimensiones son idénticos, que es realmente lo que me interesaba. La muesca aparece a la izquierda, por tanto, colocaremos el micro con el punto de forma que este quede en la esquina inferior izquierda.
Hacer esta placa significa disponer de un zócalo para integrados de 4+4 pines con el fin de poder el quitar y poner el micro todas las veces que haga falta. Fabricar la placa sin zócalo no tiene sentido.
Hacer esta placa significa disponer de un zócalo para integrados de 4+4 pines con el fin de poder el quitar y poner el micro todas las veces que haga falta. Fabricar la placa sin zócalo no tiene sentido.