Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Txapuzas- ATtiny85 Con Arduino
Txapuzas- ATtiny85 Con Arduino
TRANSLATE TXAPUZAS
PaperATtinyProgrammer: Un programador para ATtiny
usando un Arduino como ISP
Buscar
Este tutorial muestra como
programar un microcontrolador
Attiny45 o un ATtiny85 utilizando
una placa Arduino y el entorno de
programación Arduino. El ATtiny45 kk
y el ATtiny85 son unos
microprocesadores pequeños (8- kk
patas) y económicos ($2-3); Son
casi idénticos, excepto que el
kk
ATtiny85 tiene el doble de memoria kk
que el ATtiny45 y puede por lo
tanto manejar programas más
complejos. Para programarlos
utilizaremos una modificación de
las librerías de Arduino creadas por
Alessandro Saporetti y ligeramente modificados por HLT
(http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585).
Materiales y Herramientas
Para realizar este tutorial (para la variante breadboard) necesitarás:
Arduino Uno or Duemilanove (con un ATmega328, no son válidos las placas
antiguas con un ATmega168)
ATtiny45 o ATtiny85 (encapsulado 8-patillas)
Un condensador de 10 uF (e.g. from Sparkfun or from Digi-Key)
Una placa de prototipado (breadboard).
Cables de conexionado
Software
Necesitarás el entorno de programación Arduino. Si no lo tienes todavía, puedes descargarlo
desde la página web de Arduino. Las instrucciones de instalación están disponibles para kk
Windows y para Mac OS X. kk
kk
El microcontrolador ATtiny45 / ATtiny85
Aquí está el patillaje del ATtiny45 y ATtiny85: kk
Si te parece interesante
Instalando en Arduino el soporte para ATtiny45 / ATtiny85
converted by Web2PDFConvert.com
Descarga: attiny45_85.zip
Busca la carpeta de Arduino “sketchbook” (puedes encontrar su situación en el
diálogo de preferencias del entorno de programación Arduino) kk
Crea una nueva subcarpeta llamada "hardware" en la carpeta “sketchbook”. kk
Copia la carpeta attiny45_85 de attiny45_85.zip a la carpeta “hardware”.
Reinicia el entorno de programación Arduino.
kk
kk
Transformando la placa de Arduino en un programador
Ahora utilizaremos la placa Arduino para programar el ATtiny45 o ATtiny85. Primero
necesitaremos convertir la placa Arduino en un programador ISP ( "In-System Programmer").
Para ello:
Arranca el entorno de programación Arduino. Enlázame
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”.
kk
Conectando la placa Arduino y el ATtiny kk
Conectaremos la placa Arduino al ATtiny tal como se indica en el siguiente diagrama. Utiliza el kk
punto (pin 1) de la esquina del ATtiny para orientarlo correctamente. También conectaremos un
condensador electrolítico de 10uF entre reset y masa en la placa Arduino como se indica en la kk
imagen (La banda del condensador marcada con un signo negativo (-) debe ir a masa (GRD).
(Sólo se necesita el condensador si se utiliza una placa Arduino Uno, no es necesario con un
Arduino Duemilanove.)
kk
kk
kk
kk
SUSCRIBIRSE A
Entradas
Comentarios
kk
Conexionado de las patillas:
kk
ATtiny Pin 7 (D2) a Arduino D13 (SCK)
ATtiny Pin 6 (D1) a Arduino D12 (MISO) kk
ATtiny Pin 5 (D0) a Arduino D11 (MOSI) kk
ATtiny Pin 1 (Reset-D5) a Arduino D10
converted by Web2PDFConvert.com
conectado en el PIN D5)
Seleccionamos "ATtiny45 (w/ Arduino as ISP)" o "ATtiny85 (w/ Arduino as ISP)" en
el menú Herramientas/Placa (Tools > Board) (Indicando previamente el puerto serie
al que está conectada la placa Arduino).
Cargamos el sketch.
Es probable que aparezca el siguiente mensaje, pero no hay que preocuparse la programación
debería haberse efectuado correctamente:
avrdude: please define PAGEL and BS2 signals in the configuration fi
le for part ATtiny85
avrdude: please define PAGEL and BS2 signals in the configuration fi
le for part ATtiny85
Ahora, conectamos el LED y comprobamos que parpadea.
Referencia
Los siguientes comandos de Arduino deberían funcionar correctamente:
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
millis()
micros()
delay()
delayMicroseconds()
NOTA: Estos comandos son los específicos de Arduino (dependen de la velocidad del micro,
interrupciones, registros específicos...) , desde luego los comandos standard del lenguaje de
programación "C" : "if"‚ "case" y similares también funcionan.
Realización
El método Paper consiste en ayudarnos en unas pegatinas para facilitarnos el proceso de
montaje y soldadura.
converted by Web2PDFConvert.com
Primero imprimiremos el documento PaperATtinyProgrammer (disponible en la parte inferior de
esta página en el apartado de Descargas):
Antes de recortarla:
converted by Web2PDFConvert.com
Y para finalizar la paperetiqueta, le aplicamos adhesivo de doble cara
Posteriormente cortamos una placa de stripboard de 7 filas por 20 agujeros, podemos hacerlo
fácilmente si con un cutter marcamos por las dos caras sobre una fila de agujeros.
Y luego con la mano suavemente flexionas alternativamente la placa y se romperá por la zona
debilitada.
Con ayuda de una (o varias) agujas se posiciona la paperetiqueta de forma que coincidan los
agujeros de la placa con los dibujos de la paperetiqueta
converted by Web2PDFConvert.com
Punzonamos con una aguja todos los agujeros utilizados por los componentes (podemos
comprobar al trasluz que están todos los agujeros perforados)
Y sólo nos queda montar los componentes tal y como se indica en la paperetiqueta. Deberás
prestar atención a la posición del LED y del Condensador electrolítico (Si lo utilizas, ya que
sólo es necesario para Arduino UNO).
Como los pines (yo he utilizado largos, pero puedes usar normales) se sueldan por la parte
inferior, es necesario desplazar el plástico soporte a un extremo del pin.
converted by Web2PDFConvert.com
Una vez soldados todos los elementos (que no se te olviden los puentes!), deberemos cortar
algunas pistas tomando como referencia la imagen del documento impreso
Al utilizarlo deberemos tener cuidado de conectar nuestro Shield en los pines adecuados de
Arduino. (D13-D10 y Reset-GND)
como ves en la imagen, aunque los pines del Arduino no coinciden exactamente con los pines
del Shield, no hay problemas para conectarlo, simplemente el PaperATtiny queda ligeramente
inclinado.
Al Programar hemos de tener en cuenta que el ATtiny sólo tiene 6 pines de control, y que el
converted by Web2PDFConvert.com
led está conectado en el pin 4 en vez del pin 13. De forma que si queremos ver en
funcionamiento el programa blink:
PaperATtinyCable
Un problema que tiene PaperATtinyProgrammer, es que cada vez que quieres realizar una
modificación en el sketch, debes sacar el chip de la placa del circuito y conectarlo en el
PaperATtinyProgrammer. Una alternativa es realizar en la placa del circuito un conector que
nos permita utilizar el PaperATtinyCable.
Para realizarlo, sólo utilizaremos unos conectores de pines hembra (4+4) y unos conectores
macho (5+1) y un trozo de cable plano.
converted by Web2PDFConvert.com
Cortamos un trozo de aproximadamente 30cms x 6hilos:
Separamos ligeramente los extremos y los pelamos, y fijándonos en la imagen siguiente (está
en el paperdocumento):
converted by Web2PDFConvert.com
En el paperdocumento, tienes preparadas para recortar una etiquetas identificativas de los
terminales de los conectores.
Una vez pegada, con un poco de cello la protegemos he impedimos que se suelte:
Ahora, cada vez que realices un circuito con un ATtiny recuerda que debes poner unos
conectores de programación similares a:
converted by Web2PDFConvert.com
Enlaces de Interés
Te pueden interesar los enlaces siguientes
http://hlt.media.mit.edu/wiki/pmwiki.php?n=Main.ArduinoATtiny4585
http://aerobotclubderobticadeaeronuticos.blogspot.com/2011/06/micros-pequenos-
para-proyectos-pequenos.html
http://code.google.com/p/arduino-tiny/
Información legal
0. Fallos y txapuzas no controladas.
Los circuitos publicados se han comprobado y funcionan correctamente. No obstante en el
caso de que en una página se publiquen varios montajes diferentes de un mismo circuito
(sobre un stripboard, PCB, ...), pueden existir fallos que no se han detectado en alguno de los
montajes, ya que normalmente sólo realizo un montaje. En ese caso por favor notificad el fallo
para que pueda corregirlo. muchas gracias.
1. Propiedad intelectual
Todos los derechos de propiedad intelectual del contenido de Txapuzas eléctronicas, están
bajo una licencia Creative Commons Share-Alike, cuyo contenido podéis revisar en este
enlace.
Por tanto queda permitido copiar, distribuir, comunicar públicamente la obra y hacer obras
derivadas de la misma, siempre que se respeten los términos de la licencia arriba reseñada.
3. Actualizaciones y modificaciones de Txapuzas electrónicas
El autor se reserva el derecho a actualizar, modificar o eliminar la información contenida en
Txapuzas eléctrónicas, y la configuración o presentación del mismo, en cualquier momento,
sin previo aviso, y sin asumir responsabilidad alguna por ello.
4. Indicaciones sobre aspectos técnicos
El autor no asume ninguna responsabilidad que se pueda derivar de problemas técnicos o
fallos en los equipos informáticos, que se produzcan a causa de los circuitos e ideas
expuestos en el blog de txapuzas electrónicas, así como de los daños que pudieran ocasionar.
El autor se exime de toda responsabilidad ante posibles daños o perjuicios que pueda sufrir el
usuario a consecuencia de errores, defectos u omisiones en la información facilitada.
Descargas
El esquema, descripción e imágenes están disponibles en el siguiente enlace:
Si tienes problemas con el enlace anterior, aquí puedes descargar todos los archivos
de txapuzas
Notas
Para la realización de este proyecto se han utilizado los programas: Arduino, Inkscape, Openoffice, Gimp, Picasa,
Fritzing
Si encuentras algún fallo, se te ocurre alguna mejora, o simplemente quieres hacer algún comentario, te lo
agradeceré: Gracias. :-)
converted by Web2PDFConvert.com
36 comentarios:
nenexulo22 11 de julio de 2011, 0:38
Buenas como siempre tus proyectos son una pasada y super sencillos de seguir claros y
concisos xd mi pregunta es si ya es posible programar attiny que limita el poder programar
atmegas?
Responder
Saludos
Responder
Muchas gracias
Responder
Habría que mirar con detenimiento los datasheet y comprobar si internamente tienen las
mismas características (mismo número de contadores, canales AD, ...)
En cualquier caso si el core del ATtiny que está disponible en esta página no es compatible
con el ATtiny13, tal vez puedas utilizar otro:
http://code.google.com/p/arduino-tiny/
(parece que Sofian Audry and Samuel St-Aubin han desarrollado uno)
Saludos
Responder
converted by Web2PDFConvert.com
Iñigo
Etching Agitator
http://yopero-tech.blogspot.com/2011/11/agitador-para-etching-v1-part-2.html
Responder
Responder
Una vez más GRACIAS por el tutorial, es fantastico que manera de explicar... clarisimo.
Me decidi a hacer mi primer montaje de algo util. un motorcito que desplaza una base (el
lector optico de un CD), con un potenciometro q regula el tiempo que esta funcionando el
motor y un final de carrera que hace que invierta el sentido del motor.
Mi pregunta es si ¿hay que configurar de alguna manera especial los pines analogicos del
ATtiny (Pin 2-3 y 4) para la lectura de un potenciometro?
V_Pot = analogRead(PotPin);
ANDER
Responder
Respuestas
SL2
Mi código es este:
converted by Web2PDFConvert.com
int FinCarreraPin = 3; // Contacto Final de carrera (analog input 3) (patilla 2)
int buttonPin = 4; // Pin para boton (analog input 3) (patilla 3)
void setup()
{
pinMode(Motor1, OUTPUT);
pinMode(Motor2, OUTPUT);
pinMode(PotPin, INPUT);
pinMode(buttonPin, INPUT);
pinMode(FinCarreraPin, INPUT);
Motor = Motor1;
}
void loop()
{
buttonState = digitalRead(buttonPin);
delay(20);
if (buttonState == HIGH) {
FinalCarreraEstado = digitalRead(FinCarreraPin);
delay(20);
if (FinalCarreraEstado == HIGH) {
if (Motor == Motor1) {
Motor = Motor2;
}
else {
Motor = Motor1;
}
}
V_Pot = analogRead(PotPin);
V_Pot = V_Pot / 50;
digitalWrite(Motor, HIGH);
delay(V_Pot);
digitalWrite(Motor, LOW);
delay(1000);
}
}
ANDER
Responder
Responder
converted by Web2PDFConvert.com
encuentra el archivo Arduino.h, y por consiguiente no entiende las funciones o constantes.
No he logrado hallar como solucionar el fallo, así que voy a seguir intentando, pero si me
puedes ayudar te lo agradecería mucho.
Responder
Respuestas
Responder
no es la primera ves que uso attiny-85 en ocasiones anteriores me funciono muy bien
Responder
Tamaño binario del Sketch: 796 bytes (de un máximo de 2.048 bytes)
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check."
http://electronicavm.wordpress.com/2012/06/17/programar-attiny2313-con-
arduino/#comments
no me han podido dar una solucion y estoy medio deseperado los compre pensando que
los podia reprogramar cuantas veces quisiese pero me encuentro con esto alguna mano ?
Respuestas
converted by Web2PDFConvert.com
aunque supongo que será el mismo que el tuyo ya que la patología que
presenta tu caso y la que presentaba el mio es la misma), el caso es que al
parecer debe de ser un problema de protocolos (por cierto, tambien diría, -esto
es algo que he leido y en mi caso también se confirmó- que es necesario que
uses la versión del programa de arduino 022, ya que en posteriores versiónes
se produce una incompatibilidad a la hora de programar el chip Attiny.)
Y ahora voy al quid de la cuestión, el tema es que debes modificar un fichero
que hace referencia a los protocolos, verás que es muy sencillo y rápido.
1º- Accede a la carpeta del programa que utilizas para compilar los programas
que metes en arduino (recuerda que debe ser la versión 022) y localiza el
archivo "boards.txt" en la carpeta "...\arduino\hardware\arduino\" Abre el archivo y
editalo:
Busca esto:
atmega328.upload.protocol=arduino
atmega328.upload.protocol=stk500
por protocol=stk500.
Por esa razón yo tengo la version 022 en una carpeta independiente, con el
archivo modificado. Y la versión actual en otra carpeta, así cuando tengo que
hacer proyectos con arduino, utilizo la nueva, y cuando quiero programar un
attiny , utilizo la vieja version 022.
Espero que esto permita resolver tu problema.
Responder
Bien como he dicho el blink funciona pero quiero hacer algo tan sencillo como esto:
http://bateaux.trucs.free.fr/testeur_servo.html pero el servo se vuelve loco!! y no se cual es el
problema... si el arduino, el attiny, los nucleos, el potenciometro, la patilla al q conectar... En
fin si alguien esta aburrido o interesado en este ejemplo que comunique el funcinamiento.
Gracias un saludo.
Responder
Respuestas
Una vez cargado el bootloader podemos cargar los sketches desde el entorno
Arduino tal y como se indica en:
Responder
converted by Web2PDFConvert.com
Jomad 14 de febrero de 2013, 21:10
Por cierto Iñigo, una duda, no quiero hacerte perder mucho tiempo así que me bastaría con
una breve explicación si fuera posible. En que beneficiaría acoplar un cristal externo al
attiny, ( no he leído demasiado sobre los cristales, y cuando tenga un ratito lo haré
detenidamente )¿ y como se conectaría? Tengo entendido que aumenta su frecuencia de
trabajo, pero no comprendo exactamente que es lo que eso significa.
Respuestas
http://highlowtech.org/?p=1695
Responder
Una pregunta, he montado el circuito en una placa "stripboard" si así se escribe y estoy
usando el ATTINY85-20PU pero aun así me pone los errores que menciones en el post no
me funciona.
Sera que con ese micro no funciona o tengo que hacerlo de una manera distinta?
Responder
Respuestas
Responder
Sabemos que con una protoboard y cables podemos programar el ATtiny con Paperduino,
pero por comodidad, ¿para cuando una versión de PaperATtinyProgrammer para
converted by Web2PDFConvert.com
Paperduino?
Responder
Gracias.
Responder
Introduce tu comentario...
Si te parece interesante
converted by Web2PDFConvert.com