Programa ATtiny85 eficientemente con Arduino Uno: solución multi-sensor económica
Componentes y suministros
- Arduino UNO (×1)
- Microchip ATtiny85 (×1)
- Condensador electrolítico 10µF/25V (×1)
- Cables jumper M/M (×1)
Sobre este proyecto
Necesitaba leer múltiples sensores en distintas ubicaciones. Usar varios Arduino UNO sería costoso e innecesario, ya que solo requiero pocos pines PWM. El ATtiny85 es una alternativa barata y potente cuando no se necesitan muchos pines. Al ser solo un microcontrolador, requiere un Arduino UNO para programarlo. Aquí explico cómo hacerlo.
Configuración de pines del ATtiny85: Datasheet.
1. Configurar Arduino UNO como ISP (Programación en sistema)
- Conecta Arduino UNO al PC.
- Abre Arduino IDE → Archivo → Ejemplos → ArduinoISP → Sube el sketch.
2. Añadir soporte ATtiny85 a Arduino IDE
- Archivo → Preferencias → URLs adicionales del gestor de tarjetas:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json - Herramientas → Placa → Gestor de tarjetas.
- Busca "attiny by Davis A. Mellis", clic e instala.
- Ahora verás nueva entrada en menú Placa: ATtiny.
3. Conectar ATtiny85 con Arduino UNO
En protoboard:
- Arduino 5V → ATtiny Vcc
- Arduino GND → ATtiny GND
- Arduino Pin 13 → ATtiny Pin 2 (SCK)
- Arduino Pin 12 → ATtiny Pin 1 (MISO)
- Arduino Pin 11 → ATtiny Pin 0 (MOSI)
- Arduino Pin 10 → ATtiny Reset
Añade condensador 10µF entre RESET y GND del Arduino (ánodo en GND) para evitar auto-reset al programar.
4. Subir programa al ATtiny85
- Herramientas → Placa → ATtiny
- Herramientas → Procesador → ATtiny85
- Herramientas → Reloj → 8 MHz (interno)
- Herramientas → Programador → Arduino as ISP
- Importante: Herramientas → Quemar bootloader (para configurar fuses a 8 MHz; por defecto corre a 1 MHz).
- Abre ejemplo Blink, cambia pin 13 por 0, sube.
5. Probar ATtiny85 Blink
Desconecta todo del Arduino. Alimenta ATtiny con pila botón (3V) en Vcc/GND. El LED en pin 0 parpadeará. Proyectos de bajo coste, consumo y espacio; solo limitado por imaginación y pines PWM.
6. Convertir en Shield
Diseñé un shield compatible con Arduino UNO para facilitar la programación repetida. (Imágenes del proceso de fabricación incluidas).
Nota: Soy desarrollador de software, este es mi primer proyecto electrónico. Sugerencias bienvenidas.
Código
Programa Blink (C/C++)
/* Blink
Enciende un LED un segundo, apaga un segundo, repetidamente.
Este código es de dominio público.
Modificado 8 May 2014 por Scott Fitzgerald */
void setup() {
pinMode(0, OUTPUT); // Pin 0 en ATtiny85
}
void loop() {
digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(1000);
}
Esquemáticos
Diagramas Fritzing de conexiones y shield casero.
Proceso de manufactura
- Construye un reloj en tiempo real con Arduino para horarios de oración islámica
- Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Calculadora Básica con Arduino UNO - Proyecto Fácil para Principiantes
- Cómo mostrar imágenes en una pantalla TFT LCD de 1.17 pulgadas con Arduino UNO
- Construir una pantalla de persistencia de visión portátil con Arduino UNO y ATtiny85
- Control de Matriz LED 8×8 con Arduino Uno: Guía Paso a Paso
- Construye un Cubo LED 4x4x4 con Arduino Uno y 1Sheeld – Proyecto LED Interactivo
- Medición Precisa de Radiación Solar con Arduino UNO y Shield Ethernet
- Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas
- Programación de Extensiones en Python con C: Crea Módulos Nativos Rápidos