Circuito SFF (factor de forma pequeño) del microcontrolador del aleatorizador LED

Quiero 12 leds en el circuito programados para dar vueltas a cierta velocidad. 17 leds smd en total. Lo que debo hacer es que la persecución elija aleatoriamente reducir la velocidad durante 1 segundo o acelerar durante 1 segundo con un LED respectivo encendido cada vez que se elija. Está utilizando un microcontrolador ATMEL AT89C2051-24PU (DIP-20), batería de 3v, 17 leds (12 para persecución, 3 para rotación, 2 para notificador de velocidad arriba/abajo), 1 interruptor, 1 piezoeléctrico. Los leds giran a las velocidades programadas y registran 1 giro notificado por un led individual 3 giros en total. Inicio de rotación notificado por piezo y al final. ¿Cómo puedo hacer esto? ¿Puedo programar en el microcontrolador o necesitaré uno o dos diferentes?

soy un novato

Gracias

¿Cuántos LED quieres controlar?
Gracias por responder Steven. Espero haberlo hecho más fácil de hacer. Con un poco más de los detalles del inventario. Acabo de recibir un programa pick it 2 pero no sé nada sobre lo que puede hacer.
@iliaskafetzakis ¿Tienes un programador pickit2 ? Eso no es bueno. Solo puede programar microcontroladores Microchip (PIC) con eso. Para los microcontroles Atmel, necesitará otro programador.
Es un poco difícil entender lo que se pregunta aquí. Cómo programar un microcontrolador es un poco demasiado para poner en una sola respuesta. ¿Puedes reducirlo un poco?
Wow, acabo de leer la versión anterior de esta pregunta. Es mucho más fácil de entender.
lol a Rocketmagnet, el primero probablemente se te pasó por alto, lo siento si intentaste leerlo. Todavía no tengo los microcontroladores. Me dijeron que esto servirá. Sólo dime qué necesitaré. Todo lo que le pregunto a m. Alin es si puedo programar y qué componentes necesitaré. Puedo diseñar la entrada después. Gracias
@iliaskafetzakis Lo siento, pero realmente no entiendo lo que estás preguntando. Además, no estoy familiarizado con los microcontroladores de Atmel.
No tiene que ser un Atmel, pero me dijeron que era el más barato y el mejor para lo que necesitaba. No puedo ver por qué no puedes entenderlo? ¡Todo es controlar los LED parpadeantes y quiero saber cómo! Gracias
@iliaskafetzakis - como dice m.Alin, no puedes programar un Atmel con un PICkit2. Un PIC 16F (por ejemplo, PIC16F1828, PIC16F690, etc.) hará esto fácilmente y será tan económico como un Atmel, por lo que si ya tiene el programador, también podría usar uno de estos. Para ayudarlo a escribir el código, necesitaremos especificaciones mucho más exactas del patrón y los tiempos involucrados, además de lo que desea que hagan los botones (un diagrama de estado básico sería bueno)
Probablemente sería mejor si tomara, por ejemplo, un kit de inicio de Microchip (o Atmel) y siguiera los tutoriales básicos, luego regrese con algunas preguntas específicas que entienda un poco más. Sería difícil entrar en detalles suficientes en una sola respuesta para ayudarlo a superar todo esto a la vez.
Algo como esto o esto (PIC18F también estará bien) | Más opciones aquí
Eso es genial, sí, puedo usar PIC. También puedo obtener un programador diferente (:
Entonces, ¿es posible programar los LED para que parpadeen consecutivamente, cada uno con su propia velocidad de activación en la persecución de secuencia y luego agregar algún tipo de programación aleatoria para elegir acelerar la persecución en 1 segundo o reducir la velocidad en 1 segundo que también es mostrado por un LED como una notificación visual. ¿Se puede hacer esto a través del microcontrolador?
@iliaskafetzakis Sí, se puede hacer con un microcontrolador. En realidad, la forma más sencilla de hacerlo es con un microcontrolador. Como recomienda Oli , debe cambiar a un PIC, en lugar de comprar otro programador. Es mucho más barato de esta manera.
Completamente asombroso (:

Respuestas (1)

Dijiste que eres un novato, ¿tienes alguna experiencia en C o programación de ensamblaje? En lo que respecta a su pregunta, el requisito de su programa no es simple.

Sin embargo, te guiaré.

Puede hacer su trabajo con solo un microcontrolador, pero necesita una técnica de multiplexación para esto, ya que su controlador descrito tiene 15 E / S y está interconectando 17 LED, 1 interruptor de botón y 1 zumbador.

Para Buzzer se requiere una salida. Para Pulsar botón se requiere una entrada. Para 3 LED de rotación y 2 LED de velocidad, necesita 5 salidas. Para 12 LED, puede conectar los 12 LED en formato 4x3, 12 LED en 4 filas y 3 colores, que consumen 7 salidas.

Por lo tanto, se consumen un total de 14 E/S, 1 todavía está libre.

Supuse que tiene algunos conocimientos básicos de programación de microcontroladores y todos sus registros.

Tienes que hacer tu programa en forma modular (módulo: programa pequeño o grande) y etiquetarlos según el nombre de su función, cada función tiene su propio módulo. Digamos que el nombre del módulo de función LED Chaser puede ser LED_Chaseer o LED_Chase.

Haga un módulo para la función de temporizador y otro para la función de interruptor y zumbador.

Una función de interrupción del temporizador, donde está conduciendo todos los LED.

Obviamente, se requiere una función principal para el funcionamiento continuo. En esta función PRINCIPAL, primero debe leer la función del interruptor y luego iniciar el temporizador enviando un valor a la función del temporizador. En cada temporizador, interrumpa los LED de la unidad como desee. y luego incrementar o disminuir el valor del temporizador para el cambio visual LED.

De esta manera usted puede obtener sus resultados.

Te deseo la mejor de las suertes