Inicio > Electrónica, Proyectos > Scroller de 7×5 leds basado en micro Attiny2313

Scroller de 7×5 leds basado en micro Attiny2313

Domingo, 20 de abril de 2008 Dejar un comentario Ir a comentarios

Vamos a comenzar con este una serie de proyectos basados en microcontroladores AVR. El primero es un “Scroll” de leds de 7x5 pixels que incluye una aplicacion visual para el diseño de animaciones y letreros.

Desde que conocí Arduino, mi curiosidad por los microcontroladores AVR a sido creciente. Habia programado bastante con micros PICs, pero siempre me fué imposible encontrar un programador que no dependiese de un puerto RS232 puro. El AVRisp MKII es un programador USB que permite programar prácticamente cualquier micro AVR y que se puede usar desde cualquier plataforma (win,mac,linux).

Además, AVR dispone de un compilador GCC totalmente GNU (avr-gcc). Esto permite desarrollar aplicaciones sin necesidad de usar compiladores comerciales, y además con toda la potencia del lenguage C y la comunidad GNU. Con WinAVR y AVR Studio (ambos gratuitos) podemos hacer todo el proceso de programacion, compilacion y grabación del firmware.

Por otra parte los micros AVR estan basados en un “core” común que permite desarrollar aplicaciones para todos los modelos únicamente adaptandola a los recursos de cada uno. Otra ventaja de los AVR es su arquitectura RISC que le permite ejecutar casi todas las instrucciones en un solo ciclo de reloj, de modo que los cálculos de tiempo son mas fáciles y precisos, ademas de ser un micro ideal para ahorrar energia.

En este primer proyecto, hemos usado un micro AVR Attiny2313 que es perfecto para controlar los 13 pines necesarios para la matriz de leds. Hemos dispuesto además los pines en el orden más óptimo para ocupar lo menos posible.

Lista de materiales

  • 1x Programador para micros AVR (AVRisp MKII en mi caso)
  • 1x Microcontrolador Attiny2313 con los fuses configurados para oscilador interno de 8Mhz (Optimización D1)
  • 1x Display 5x7 leds Kingbright
  • 1x Regulador de tension 7805
  • 1x Pila o fuente de alimentacion 9v
  • 2x Condensadores 100uF
  • 2x Condensadores 100nF
  • 5x Resistencias 90 Ohms

Software necesario

Esquemas y placas

Comparte y disfruta:
  • Facebook
  • Tumblr
  • Twitter
  1. Juan
    Martes, 29 de abril de 2008 a las 16:43 | #1

    Muy interesante el trabajo, especialmente por lo sencillo que es.

    Pregunta:
    Cuan dificil seria añadir 1 or tal vez 2 mas de los 7×5 LED para tener un display mas elegible?

    Buen Trabajo.
    Juan Riofrio

  2. Martes, 29 de abril de 2008 a las 17:26 | #2

    Muchas gracias,,,

    Realmente el modulo de leds que he usado es el que se usa en los carteles de leds de las farmacias y otros sitios. Digamos que es una letra de 5×7, pero girada para que sea 7×5. Si quieres controlar mas de un display necesitarías otro controlador con más pines o usar otros chips como expansores o registros de desplazamiento, pero lo importante es el numero de pines que necesitas.

  3. Yu
    Miércoles, 30 de abril de 2008 a las 10:52 | #3

    I don’t suppose you get much current passing through the LEDs in this design. The maximum source/sink current for a single digital output in the AVR chips is, as far as I remember, 25mA. Multiplexing gives us 5mA per led in a column or 3mA in a row, depending on how you scan the matrix. It would be advisable to add a BC557/547 transistor for each selected column/row. I am currently working on a 5×8 matrix and would like to make a scroller as well. Mail me if you want more information on the project, I expect to finish it in a few days. Best regards.

  4. Viernes, 2 de mayo de 2008 a las 21:50 | #4

    Yu, i know, i need to optimize a little bit the hardware, but i want to remove the 5 resistors of rows to up the current on leds, but i dont want to add new components. My target is reduce to the most simple. Also i thinking in chage the 7805 to another another package version more reduced.

  5. rubén darío gurrute delgado
    Viernes, 16 de mayo de 2008 a las 16:13 | #5

    hola el proyecto es realmente bueno, yo estoy trabajando con un ATMEGA 16-16PU y estoy tratando de implementarlo en este, me preguntaba que tan viable es, y si por medio de registros de desplazamiento podria extender un poco mas el tamaño del publik. suerte.

  6. Sábado, 17 de mayo de 2008 a las 00:51 | #6

    Ruben, me alegro de que te guste. El usar registros de desplazamiento es totalmente viable, aunque no lo he probado aun.

  7. eprom2000
    Miércoles, 21 de mayo de 2008 a las 13:27 | #7

    kalanda me puedes ayudar en un proyecto con un attiny 2313 que estoy realizando

    saludos

  8. eprom2000
    Miércoles, 21 de mayo de 2008 a las 13:29 | #8

    voluntarios para un proyecto con attiny 2313

    eprom2000@hotmail.com

  9. Miércoles, 21 de mayo de 2008 a las 13:32 | #9

    Cuéntanos y vemos que se puede hacer…

  10. eprom2000
    Viernes, 23 de mayo de 2008 a las 02:38 | #10

    Hola

    Buenos os comento un poco de que se trata:
    Tengo por afición pilotar unos aviones de radio control con una cámara inalámbrica en su interior en el asiento del piloto En tierra unas gafas 3d con un receptor donde recibo las imágenes, el efecto es, tú pilotas el avión! Una pasada!. Esto se conoce como fpv .mi problema es el mano con el que controlo el avión se queda corto de señal a 1 Km. y este jovi te pide explorar cada vez más

    La idea es hacer una interfase para el mando utilizando un radio módems 868 Mª
    He estado haciendo pruebas de conectividad y a 15 Km. no tienen ningún problemas

    Tengo diseñado el transmisor y el receptor para darle movilidad a 8 servos utilizando el attiny 2313 y todos los conceptos de cómo seria la modulación desmodulación

    Si alguien esta interesado le puedo pasar todo lo que ya he avanzado circuitos etc…

    Saludos

    Eprom2000

  11. Viernes, 23 de mayo de 2008 a las 03:14 | #11

    Hey eeprom2000, ya habia visto algun fpv por internet y la verdad es que suena interesante.

    Si tienes esquemas y demás yo te recomendaría publicarlos, verás como la gente se anima. Cuenta conmigo para hablar de ello y si veo que puedo te puedo ayudar un poco lo haré.

  12. eprom2000
    Viernes, 23 de mayo de 2008 a las 14:52 | #12

    ok Kalanda

    Si te parece pásame un correo y te reenvio los esquemas y el código fuente y ya te comento donde estoy atrancado y vemos la manera mas sencilla de publicarlo que veo que a ti se te da bastante bien

    Saludos

    eprom2000

  13. Vince
    Miércoles, 13 de agosto de 2008 a las 21:11 | #13

    Excelente estudio, los felicito por inovar, y contribuir al desarrollo de la ciencia y tecnologia, y emitir una luz en medio de tantas tinieblas…

  14. andhika
    Jueves, 21 de agosto de 2008 a las 06:18 | #14

    can you explain the config.h?because i don’t understand the pins in ther is the 2313 pins or the matrix pin. thx.

  15. Jueves, 21 de agosto de 2008 a las 12:07 | #15

    andhika, config.h define the retationship between the port pins of attiny2313 (for example PORTA.0, PORTB.2) to an absolute pin number like Arduino does (pin0, pin1, etc)

    This is to simplify all in one function called:
    digitalWrite(pin,value);

    Also in config.h, is defined the relation between rows and columns of led display to an absolute pin.

    I hope so i help you.

  16. Andhika
    Miércoles, 3 de septiembre de 2008 a las 08:02 | #16

    Thank you kalanda..more question, if I want to add more matrix, what should I do? did I have to change the ATTiny with another AVR that have more pins such as ATMega8 or 16? and then, how the config.h that should i change if i do that? thank you.

  17. Achem
    Viernes, 12 de septiembre de 2008 a las 19:13 | #17

    para que sirve el aparatito con un led verde (no se que sea) y que uso tienen esos 5 cables que salen de el y van a la matriz de leds?

  18. Viernes, 12 de septiembre de 2008 a las 21:20 | #18

    Achem, el aparato que aparece con el led verde es un programador de chips AVR. En concreto es el AVR ISP mkII y se conecta por usb al ordenador para pasarle el programa una vez compilado al chip Attiny2313.

  19. bobika
    Lunes, 15 de septiembre de 2008 a las 00:25 | #19

    7×5 LED display Kingbright TA12-11EWA/TC12-11EWA ???

  20. Kazan
    Lunes, 15 de septiembre de 2008 a las 00:27 | #20

    display common Anode/Cathode ???

  21. IROY
    Martes, 16 de septiembre de 2008 a las 04:45 | #21

    im iroy english plsss i dont understand your language

  22. SRKRS
    Jueves, 23 de octubre de 2008 a las 20:19 | #22

    Muy buen proyecto! por fin alguien ha logrado que me ponga manos a la obra! Lo que pasa es que la cosa una vez terminada parece no funcionar. Puesto que no se en que me habré equivocado, ¿podrías colgar un .hex con una animación cualquiera para comprovar que no tenga algun fallo de placa? Es que ya no se si es el programa, la placa, el programador…
    Gracias, un saludo y adelante con esta página tan buena!

  23. Viernes, 24 de octubre de 2008 a las 11:28 | #23

    SRKRS, en que punto te quedas. Si consigues compilar el HEX es que el programa está bien. Que programador usas? Son los displays del mismo tipo que los mios?

  24. SRKRS
    Viernes, 31 de octubre de 2008 a las 18:59 | #24

    Compilo el .hex a trancas y barrancas, es mi primera vez con WinAVR y el makefile es improvisado. Luego lo programo con el AVR Studio 4 y un programador AVRISPmkII. Cuando arranca se encienden sólo 4 leds, y no se mueven. El display no es Kingbright, aunque el patillaje es el mismo que los “TC” (cátodos en las columnas).

  25. Viernes, 31 de octubre de 2008 a las 20:50 | #25

    Yo uso el AVR Studio 4 para compilar el programa. Viene con un plugin “de serie” para WinAVR de modo que puedes compilar y programar en el mismo entorno. Debes configurar unicamente la velocidad del micro y alguna cosa mas.

    Otra cosa. ¿Has comprobado los fuses para que funcione como osc interno a 8mhz?

  26. SRKRS
    Viernes, 31 de octubre de 2008 a las 21:58 | #26

    El fuse SUT_CKSEL lo tengo en “int. RC osc 8Mhz”, o sea que eso no será. Ahora miro el tema de compilar con AVR Studio directamente, a ver si descubro como funciona. Gracias por tu ayuda.

  27. Matrix
    Sábado, 1 de noviembre de 2008 a las 21:31 | #27

    Hola amigo muy interesante tu tema oye necesito tu ayuda yo quiero hacer el proyecto pero con un atmega8 quisiera que me ayudaras con el codigo porque puse el que pones pero me marca muchos errores, me podrias ayudar con el codigo por favor de verdad necesito tu ayuda te lo agradecere mucho, ayudame con el codigo en lo estoy haciendo en c y me explicarias como usar lo del programa de frames de led porfa

  28. Domingo, 2 de noviembre de 2008 a las 03:11 | #28

    Matrix, te agradeceria que me hicieras preguntas mas concretas si realmente quieres que te ayude.

  29. Matrix
    Lunes, 3 de noviembre de 2008 a las 06:08 | #29

    Ok amigo, ya pude compilar el programa, tengo unas dudas, mira yo no tengo un scroller, quiero hacer el proyecto con puros leds, como seria el diagrama con los leds yo supongo que parecido si no es que igual, ya en concreto me explicarias en detalle el programa, o espero que me des tu correo y platicar por messenger, saludos

  30. teko
    Martes, 4 de noviembre de 2008 a las 17:32 | #30

    Hola Kalanda:

    Resulta que estoy tratando de hacer tu proyecto, sin embargo al tratar de simularlo con AvrStudio me da el siguiente problema

    - The contents of the objectfile exceeds the maximum program memory of the device
    - Error loading object file C:\Documents and Settings\Administrador\ … \Proyectos\main\default\main.elf

    Sabes a que se puede deber?

    Te agradecería tu respuesta
    Saludos

  31. Martes, 4 de noviembre de 2008 a las 18:08 | #31

    Teko, tiene toda la pinta de ser que no has activado la optimizacion del codigo.

    http://mexlewiki.hs-heilbronn.de/index.php/Error:_%22Region_Text_Is_Full%22

    En el enlace que te mando puedes ver un ejemplo de la pantalla de configuracion. Debe poner device a Attiny2313 la frequency a los hercios que tengas los fuses y la optimización a -O1. Este es el nivel mas bajo de optimizacion pero a mi me fue suficiente.

  32. teko
    Miércoles, 5 de noviembre de 2008 a las 17:02 | #32

    Hola Kalanda:
    Ahora tengo otro problema
    Resulta que no he podido encontrar un display de leds, entonces estoy intentandov er otra solución,como crear una matriz yo mismo. tienes alguna sugerencia de como hacerlo?
    Saludos

  33. Jueves, 6 de noviembre de 2008 a las 01:26 | #33

    no te puedo ayudar mucho, pero puedes fijarte en el esquema propio del que yo he usado.

    http://www.ic-on-line.cn/iol_tc1211ewa/pdfview/3926727.htm

  34. ricardo
    Martes, 9 de diciembre de 2008 a las 19:23 | #34

    Me puedes indicar por favor que seteo tienes en los fusibles ? hfuse, lfuse y efuse.

    Gracias de antemano por tu respuesta y saludos

    Ricardo

  35. farhad
    Miércoles, 11 de febrero de 2009 a las 23:43 | #35

    if you can,please send to me all abute this project(map,pdf,help,program,..)i like this project and i make

  36. kiki
    Domingo, 1 de marzo de 2009 a las 23:36 | #36

    hello kalanda
    great work!

    but it doesn’t work at me

    it gives me errors.

    is says:../mypov.c:112: warning: ‘out’ may be used uninitialized in this function

    ../mypov.c:112: warning: ‘out’ may be used uninitialized in this function

    does anybody can help me?

    here is my mail(Y!Messenger ID)->castoru_2005@yahoo.com

    thanks and good luck all!

  37. tolunay
    Miércoles, 25 de marzo de 2009 a las 19:11 | #37

    hi kiki, i have the same problem here. do you know how to solve this bug, Kalanda.

    tolunay,
    my email is tolunay_gul93@hotmail.com

  38. Carl
    Lunes, 8 de junio de 2009 a las 13:30 | #38

    im a newbie, i dont knw how to program the attiny2313. help needed, i have already assembled the circuit.

  39. Esteban
    Viernes, 12 de junio de 2009 a las 18:11 | #39

    Hola kanadala muchas gracias por hacer este proyecto, lo estoy usando para pasar un ramo en mi uniersidad, me costo mas hacerlo si, tube que hacerlo con un programador stk200 y un protoboard, me costo mucho alfinal logre que funcionara pero un led de la matriz no funciona , algo muy extraño, pero bueno con uno solo no funcionando puedo presentar el proyecto al profe de cualquier manera :D

  40. Viernes, 12 de junio de 2009 a las 18:15 | #40

    Me alegro mucho esteban, espero que tengas suerte con el profe. Lo del led puede que se te fundiera. quien sabe ;O

  41. joerfrada
    Sábado, 13 de junio de 2009 a las 19:24 | #41

    Cierto, ahora veo que no lo puse por aquí. Yo usé 8Mhz con el oscilador interno y el nivel de optimización creo recordar que el D1.

  42. joerfrada
    Miércoles, 17 de junio de 2009 a las 23:57 | #42

    Cómo configura los bits en avrisp mkII para flashear *.hex? :(

  43. James Brown
    Sábado, 17 de octubre de 2009 a las 01:40 | #43

    Hey what happened to the plates. I finally got everything but there are no plates. Would someone be so kind as to up laod them or send them to me please.

  1. Lunes, 28 de abril de 2008 a las 15:12 | #1
  2. Sábado, 3 de mayo de 2008 a las 08:58 | #2
  3. Lunes, 4 de agosto de 2008 a las 03:50 | #3