Tabla de contenido:

3 regalos navideños fáciles de ATTiny: 4 pasos
3 regalos navideños fáciles de ATTiny: 4 pasos

Video: 3 regalos navideños fáciles de ATTiny: 4 pasos

Video: 3 regalos navideños fáciles de ATTiny: 4 pasos
Video: TOP 15 Proyectos con Arduino 2022 2024, Diciembre
Anonim
3 regalos navideños fáciles de ATTiny
3 regalos navideños fáciles de ATTiny

Cada año llega la temporada navideña y me quedo atascado sobre qué regalar a mis amigos y familiares. La gente siempre dice que es mejor hacer el regalo usted mismo que comprarlo en una tienda, así que este año hice precisamente eso. El primero muestra un nombre o imagen básica cuando se agita en el aire, el segundo se desvanece suavemente entre dos LED blancos (también tiene un alfiler de seguridad para sujetarlo a la ropa o al bolso), y el tercero es una especie de luz ambiental, desplazándose sin problemas entre colores. Todos cuestan menos de $ 15 y son fáciles de montar en menos de una hora. También puede regalar estas instrucciones y piezas a alguien interesado en aprender electrónica.

Nota: Se asume un nivel básico de soldadura. Sin embargo, a diferencia de mi instructable anterior, pasaré por alto cómo programar un AVR. Realmente espero que esto ayude a las personas que intentan iniciarse en la electrónica. Recuerdo cuando estuve allí y estaré encantado de responder cualquier pregunta que pueda tener. ¡Recuerda que no hay preguntas estúpidas! Lo dejé abierto para que usted determine cómo colocará su placa de circuito con la esperanza de que encuentre una nueva forma de mostrar los circuitos simples que he dibujado. Por favor, publique fotos una vez que haya terminado, ¡no puedo esperar a ver qué se le ocurre! Partes para todos los proyectos N = número de proyectos x N ATTiny45 (www.digikey.com) x N toma DIP de 8 pines (RadioShack) x 1 placa de perforación grande (obtuve la mía en RadioShack) x N 3v Batería de celda de moneda y soporte (RadioShack) x1 Programador (yo uso esto y el archivo make incluido se configurará para usar este) x2 N Resistencias, una de 10 ohmios y uno de 10k ohmios (RadioShack) Aquí hay una imagen de los tres proyectos completados:

Paso 1: el nombre intermitente

El nombre intermitente
El nombre intermitente
El nombre intermitente
El nombre intermitente
El nombre intermitente
El nombre intermitente

Otras piezas 5 LED DIFUSOS de 3 mm (RadioShack) Este proyecto utiliza la persistencia de la visión para mostrar una imagen o texto cuando se mueve rápidamente. Funciona mejor cuando está oscuro. Con el AVR cambiamos entre LED más rápido de lo que el ojo puede ver, podemos crear una imagen en el aire con muy pocos componentes. El código: (Descargue el archivo.zip en la parte inferior de la página para el código, el archivo MAKE, etc. (Ese código no tiene los comentarios extensos que tiene este código, pero si este código no funciona, pruebe con el zip file)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Para aquellos de ustedes que nunca han leído C antes, la doble barra indica un comentario. Esto establece los pines del avr como un carácter de salida x = 10; // x se usa para establecer el intervalo de retardo. Al aumentar el valor, se produce un cambio más lento entre píxeles, disminuyendo, mientras que (1) // Mientras (la condición es verdadera); {Hacer esto} (Verdadero en C es 1) {PORTB = ~ 0b00010001; // El nombre de mi amiga es Zoe, así que dibujé los caracteres en papel cuadriculado y luego los impute en PORTB. Los primeros tres ceros no importan porque solo hay cinco LED conectados. Un uno en uno de los cinco espacios restantes indica que el LED está encendido, un cero, apagado. _delay_ms (x); // retraso en milisegundos PORTB = ~ 0b00010011; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00011001; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); // Espacio abierto entre caracteres _delay_ms (x); PORTB = ~ 0b00001110; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x * 3); PORTB = ~ 0b00001110; _delay_ms (x); dispClear (); _delay_ms (x); PORTB = ~ 0b00011111; _delay_ms (x); PORTB = ~ 0b00010101; _delay_ms (x); PORTB = ~ 0b00010001; _delay_ms (x); dispClear (); _delay_ms (x * 5); // La palabra está hecha para que tenga claridad. Tengo un espacio más grande entre las palabras}} Ahora siga las instrucciones de la página 4 para compilar este código y enviarlo a su AVR.

Paso 2: la luz del bolso

La luz del bolso
La luz del bolso
La luz del bolso
La luz del bolso

Otras partes x2 LED's NON DIFFUSED (RadioShack) Este proyecto se desvanece suavemente entre dos LED. Mi mamá quería algo en su bolso para ayudar a que la abeja la viera de noche. Sentí que una luz de bicicleta intermitente llamaría demasiado la atención, así que hice esto. Utiliza PWM (Modulación de ancho de pulso) para dar el efecto de atenuación y brillo. Lo que realmente está sucediendo es que el LED parpadea más rápido de lo que el ojo puede ver a intervalos variables para simular un cambio. Puede ver esto más claramente cuando lo agita en su cara como lo haría con el Name Flasher. El código se puede descargar al final de esta página. Consulte la página 4 sobre cómo compilar en su AVR. En lugar de comentar el código aquí, explicaré brevemente el concepto. PWM es generado por un temporizador. Cada ciclo de reloj, el temporizador cuenta hasta uno. Cuando alcanza cierto valor (en este caso OCR1B) cambia el estado de un pin (en este caso OC1B). Para que los LED se "apaguen", conecté el otro a [OPUESTO] OC1B (Eso es lo que significa la barra en la parte superior). Luego usamos x para incrementar y disminuir la cantidad de tiempo para que los LED estén encendidos.

Paso 3: el desplazador de colores

El desplazamiento de colores
El desplazamiento de colores
El desplazamiento de colores
El desplazamiento de colores

Otras partes LED RGB x1 (difuso es mejor) (RadioShack) Esto para mí es un clásico. Siempre me han fascinado las luces como esta y las encuentro muy calmantes, así que naturalmente quería hacer una. Además, su visibilidad en la sociedad les da un verdadero factor sorpresa. "¡¿Hiciste eso ?!" El código es casi el mismo y, en mi opinión, más fácil de leer. Puede descargar el en la parte inferior. Esta vez proporcionamos un pin PWM para cada pin de conexión a tierra en el LED RGB. De esta forma trituramos el chip. Los voltios se pueden medir como la diferencia entre dos puntos. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Esta última instancia es lo que estamos haciendo cuando pasamos a tierra a través del chip. Cuando hay tres voltios en ambos lados, por ejemplo, no hay suficientes voltios para encender un LED. Entonces, para difuminar entre colores, elegimos un color y otro color. Establezca uno igual ax y el otro igual a 255-xo el INVERSO de x. Como estábamos haciendo en el proyecto anterior. Ahora vaya al paso 4 para programar.

Paso 4: Programación

Programación
Programación

Primero descargue e instale Emacs, avr-gcc y Avrdude y cualquier dependencia que puedan tener. En Arch linux hice esto con: sudo pacman -Sy emacs avrdude

Ahora es el momento de conectar su programador a su avr. Conecte los pines del programador ISP de 6 pines (imagen de abajo) a los pines correspondientes en su AVR (Hoja de datos, página 2) (hice esto en una placa de pruebas). Ahora conecte el programador a su computadora y toque MUY RÁPIDAMENTE la parte superior del AVR. Si está caliente, RETIRE EL PROGRAMADOR DE SU COMPUTADORA INMEDIATAMENTE verifique sus conexiones y vuelva a intentarlo (¿Encendido y Gnd al revés?). Si no está caliente, abra emacs y presione Ctl-x Ctl-f para encontrar el archivo.c. Ábrelo y luego presiona Meta (normalmente Alt) -x y escribe compilar. Presione enter dos veces y, si tiene suerte, su AVR debería estar ejecutando su código. ¡Gracias por leer! Espero que lo hayas disfrutado y hayas aprendido algo. Por favor, no dude en hacer preguntas y no olvide publicar fotos de lo que se le ocurrió. ¡Felices vacaciones y no olvides votar!

Recomendado: