hola taringueros!
Este post muestra como cargar un sketch en un microcontrolador ATtiny85 utilizando una placa Arduino y el entorno de programación Arduino. El ATtiny85 son microprocesadores pequeños (8-patas) y económicos que nos pueden servir para proyectos pequeños .
-mini transmisores rf
-Controlar servos
-controlar sensores y eviar la info a pantallas
-relojes
-luces estroboscopicas
una de sus limitantes seria que no tiene puerto serial pero por lo pequeño que es sirve para muchas funciones.
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).
(http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585).
El Attiny 85 cuenta con 8 patillas, dos de alimentación,una de reset, y 5 entradas/salidas siendo 2 de ellas PWM…
Memoria de programa =8Kb
EEPROM =512 bytes .
SRAM= 512 bytes.
Clock = 20Mhz usando un cristal externo.
Para programarlos utilizaremos una modificación de las librerías de Arduino creadas por Alessandro Saporetti.
(http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585).
Paso a paso
1- abrimos el Ide arduino ya que debemos instalar algunos archivos para que reconozca nuesto Attiny85
Archivo >> Preferencias y abrimos Aditional Boards Manager URLs.
En la ventana que se abre escribimos esto: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json y le damos a OK.
A continuación vamos a Herramientas >> Placa >> Boards Manager y en la barra de búsqueda escribimos “ATtiny”, cuando nos aparezca en pantalla le damos a INSTALAR.
Ahora ya podemos ver en Herramientas >> Placa que aparece nuestro ATtiny.
Configurar el Arduino UNO como ISP
Para configurar el Arduino UNO como ISP (In-System Programmer) tan solo tenemos que subirle un sketch que esta en la galería de ejemplos del IDE de Arduino. Cargamos ese ejemplo y lo subimos al Arduino y con esto ya estamos listos para el siguiente paso
- Inicia el IDE Arduino
- Abre el sketch “ArduinoISP” del menú de ejemplos (examples).
- Selecciona la placa y el puerto serie que corresponden a tu placa Arduino.
- Carga el sketch “ArduinoISP”.
con esto nuestro arduino funciona como programador isp
y ya podemos conectar nuestro Attiny85 a nuestra placa Arduino
Conectar el ATtiny85 a nuestro Arduino UNO.
Oden de conexionado
- ATtiny85 Pin 7 (D2) a Arduino D13 (SCK)
- ATtiny85 Pin 6 (D1) a Arduino D12 (MISO)
- ATtiny85 Pin 5 (D0) a Arduino D11 (MOSI)
- ATtiny85 Pin 1 (D5) a Arduino D10(Reset)
- Attiny85 pin8 Vcc (v+)
- Attiny85 pin4 Gnd (-)
Pinout attiny85
lo puedes montar en una placa o un protoboard si quieres es muy facíl.
Debes revisar las conexiones cuidadosamente para que no arruines el Attiny85 o el atmega328 de tu arduino
aunque esto tal ves sea una exageración ya que lo acabo de montar alreves (mi attiny) en soporte dip8 y no sucedió nada (no digo que no sucedera nada pero en esta ocasión no sucedió nada),Pero de todos modos debemos tener algunos resguardos.
Realizadas las conexiones procedemos a cargar algún sketch ejemplo para pobrar en este caso usaremos el famoso "blink"
Para esto abrimos nuestro ide arduino nos vamos a herramientas buscamos en el gestor de taretas ATtiny85 selecionamos el clock 8mhz internal
y en programador selecionamos arduino as isp
Blink original.
void setup() { // inicia el pin 13 digital como salida.
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(13, LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}_________________________________________________________________________________________
Blink modificado para ATtiny85.
solo cambiamos el numero de pin que usamos para encender nuestro led
en el blink original usamos el D13, pero el attiny85 no tiene pin D13 por lo tanto lo cambiamos por el pin D2 (pin fisico 7) o el que prefieras y mejor se adapte a lo que nesecitas.
voidsetup(){
// inicia el pin D2 (pin fisco 7) como salida.
pinMode(2,OUTPUT);
}
voidloop(){
digitalWrite(2,HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(2,LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}
Ya cargamos el sketch ahora a conectar.
Como comentaba mas arriba puedes usar cualquier pin solo debes declararlo en el sketch
En este ejemplo se uso el pin D3 (pin fisico 2).
void setup() {
// inicia el pin D3 (pin fisico 2) como salida.
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(3, LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}
En este ejemplo se usa el pin D0 (pin fisico 5)ejemplo:
void setup() {
// inicia el pin D0 (pin fisico 5)l como salida.
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(0, LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}
Debemos montarlo en una placa o protoboard o donde queramos.
yo monté una plaquita tipo shield nivel rata, no se ve master race pero es 100% funcional y es lo que me importa,le incluí un led rojo por posibles fallos si algo falla al cagar un sketch enciende y uno para probar el blink con un jumper para desabilitar el led, ambos led llevan resistencias de 220ohm recordemos que ATtiny85 funciona con 5 volts
a continuación unas capturas y un video funcionando
proximo post Rapid-fire regulable ATtiny85 para cualquier mando generico u original
Saludos
Este post muestra como cargar un sketch en un microcontrolador ATtiny85 utilizando una placa Arduino y el entorno de programación Arduino. El ATtiny85 son microprocesadores pequeños (8-patas) y económicos que nos pueden servir para proyectos pequeños .
-mini transmisores rf
-Controlar servos
-controlar sensores y eviar la info a pantallas
-relojes
-luces estroboscopicas
una de sus limitantes seria que no tiene puerto serial pero por lo pequeño que es sirve para muchas funciones.
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).
(http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585).
El Attiny 85 cuenta con 8 patillas, dos de alimentación,una de reset, y 5 entradas/salidas siendo 2 de ellas PWM…
Memoria de programa =8Kb
EEPROM =512 bytes .
SRAM= 512 bytes.
Clock = 20Mhz usando un cristal externo.
Para programarlos utilizaremos una modificación de las librerías de Arduino creadas por Alessandro Saporetti.
(http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585).
Paso a paso
1- abrimos el Ide arduino ya que debemos instalar algunos archivos para que reconozca nuesto Attiny85
Archivo >> Preferencias y abrimos Aditional Boards Manager URLs.
En la ventana que se abre escribimos esto: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json y le damos a OK.
A continuación vamos a Herramientas >> Placa >> Boards Manager y en la barra de búsqueda escribimos “ATtiny”, cuando nos aparezca en pantalla le damos a INSTALAR.
Ahora ya podemos ver en Herramientas >> Placa que aparece nuestro ATtiny.
Configurar el Arduino UNO como ISP
Para configurar el Arduino UNO como ISP (In-System Programmer) tan solo tenemos que subirle un sketch que esta en la galería de ejemplos del IDE de Arduino. Cargamos ese ejemplo y lo subimos al Arduino y con esto ya estamos listos para el siguiente paso
- Inicia el IDE Arduino
- Abre el sketch “ArduinoISP” del menú de ejemplos (examples).
- Selecciona la placa y el puerto serie que corresponden a tu placa Arduino.
- Carga el sketch “ArduinoISP”.
con esto nuestro arduino funciona como programador isp
y ya podemos conectar nuestro Attiny85 a nuestra placa Arduino
Conectar el ATtiny85 a nuestro Arduino UNO.
Oden de conexionado
- ATtiny85 Pin 7 (D2) a Arduino D13 (SCK)
- ATtiny85 Pin 6 (D1) a Arduino D12 (MISO)
- ATtiny85 Pin 5 (D0) a Arduino D11 (MOSI)
- ATtiny85 Pin 1 (D5) a Arduino D10(Reset)
- Attiny85 pin8 Vcc (v+)
- Attiny85 pin4 Gnd (-)
Pinout attiny85
lo puedes montar en una placa o un protoboard si quieres es muy facíl.
Debes revisar las conexiones cuidadosamente para que no arruines el Attiny85 o el atmega328 de tu arduino
aunque esto tal ves sea una exageración ya que lo acabo de montar alreves (mi attiny) en soporte dip8 y no sucedió nada (no digo que no sucedera nada pero en esta ocasión no sucedió nada),Pero de todos modos debemos tener algunos resguardos.
Realizadas las conexiones procedemos a cargar algún sketch ejemplo para pobrar en este caso usaremos el famoso "blink"
Para esto abrimos nuestro ide arduino nos vamos a herramientas buscamos en el gestor de taretas ATtiny85 selecionamos el clock 8mhz internal
y en programador selecionamos arduino as isp
Blink original.
void setup() { // inicia el pin 13 digital como salida.
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(13, LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}_________________________________________________________________________________________
Blink modificado para ATtiny85.
solo cambiamos el numero de pin que usamos para encender nuestro led
en el blink original usamos el D13, pero el attiny85 no tiene pin D13 por lo tanto lo cambiamos por el pin D2 (pin fisico 7) o el que prefieras y mejor se adapte a lo que nesecitas.
voidsetup(){
// inicia el pin D2 (pin fisco 7) como salida.
pinMode(2,OUTPUT);
}
voidloop(){
digitalWrite(2,HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(2,LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}
Ya cargamos el sketch ahora a conectar.
Como comentaba mas arriba puedes usar cualquier pin solo debes declararlo en el sketch
En este ejemplo se uso el pin D3 (pin fisico 2).
void setup() {
// inicia el pin D3 (pin fisico 2) como salida.
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(3, LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}
En este ejemplo se usa el pin D0 (pin fisico 5)ejemplo:
void setup() {
// inicia el pin D0 (pin fisico 5)l como salida.
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH); // enciende led
delay(50); // espera por el tiempo señalado entre parentesis
digitalWrite(0, LOW); // apaga el led
delay(50); // espera por el tiempo señalado entre parentesis
}
Debemos montarlo en una placa o protoboard o donde queramos.
yo monté una plaquita tipo shield nivel rata, no se ve master race pero es 100% funcional y es lo que me importa,le incluí un led rojo por posibles fallos si algo falla al cagar un sketch enciende y uno para probar el blink con un jumper para desabilitar el led, ambos led llevan resistencias de 220ohm recordemos que ATtiny85 funciona con 5 volts
a continuación unas capturas y un video funcionando
proximo post Rapid-fire regulable ATtiny85 para cualquier mando generico u original
Saludos