Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:40
En este proyecto usamos un potenciómetro (POT) para cambiar los colores en un LED usando un ATTINY85.
Algunas definiciones -
Un potenciómetro es un dispositivo con un pequeño tornillo / mecanismo giratorio que cuando se gira genera diferentes resistencias eléctricas. Puede ver en la imagen anotada de arriba que el POT tiene 3 pines, a saber, +, - y salida. El POT se alimenta conectando los pines + y - a vcc y tierra respectivamente en una fuente de alimentación. A medida que se gira el tornillo POT, la resistencia de salida cambia y hace que la intensidad del LED disminuya o aumente.. En otras palabras, es una resistencia variable. Se utilizan en cosas como atenuadores de luz para el hogar.
LED: esta es una pequeña luz que se ilumina cuando la corriente eléctrica pasa a través de ella. En este caso, usaremos un LED multicolor que tiene 3 pines, uno de tierra (medio) y dos pines que se muestran en verde y rojo respectivamente cuando se disparan.
ATTINY85: este es un pequeño microchip de bajo costo que puede programar como un Arduino.
Descripción general: la salida del POT está conectada al ATTINY85. A medida que se gira el tornillo POT, se emite una resistencia diferencial como un número entre 0 y 255. ATTINY puede medir esto y tomar diferentes acciones dependiendo del valor de la resistencia POT. En este caso, lo hemos programado para que se conecte al LED de la siguiente manera.
Si el número es mayor que 170, cambie el LED a VERDE.
Si el número es menor que 170 pero mayor que 85, cambie el LED a ROJO.
si el número es menor que 85, encienda el LED VERDE Y ROJO que resulta en NARANJA.
BOM
1 x LED de 3 pines 1 x ATTINY 85
1 x BOTE (B100K)
1 x tablero y cables
1 fuente de alimentación.
Paso 1: Programación del ATTINY85
En términos de programación del ATTINY85, consulte mi instructable anterior:
El código se muestra a continuación. Algunos puntos a tener en cuenta son que dos pines ATTINY, PB3, pin físico 2, PB2, pin físico 7 están conectados, en modo digital, al LED para efectuar el cambio de color. ATTINY pin PB4, pin físico 3, está conectado al POT en modo analógico, lo que significa que puede leer valores entre 0 y 254. Personalicé el código que encontré en Internet, así que reconozco que funciona. -
void initADC () {// *** // *** Pinout ATtiny25 / 45/85: // *** PDIP / SOIC / TSSOP // *** ============= ================================================ ============================== // *** // *** (PCINT5 / RESET / ADC0 / dW) PB5 [1] * [8] VCC // *** (PCINT3 / XTAL1 / CLKI / OC1B / ADC3) PB3 [2] [7] PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) // * ** (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) PB4 [3] [6] PB1 (MISO / DO / AIN1 / OC0B / OC1A / PCINT1) // *** GND [4] [5] PB0 (MOSI / DI / SDA / AIN0 / OC0A / OC1A / AREF / PCINT0) // *** // pb4 - entrada para POT // pb3 led pin 1 // pb2 led pin 3 // frecuencia ATTINY 85 configurada en 8 MHz internos / * esta función inicializa el ADC
Notas de ADC Prescaler:
El preescalador de ADC debe configurarse de modo que la frecuencia de entrada de ADC esté entre 50 y 200 kHz.
Para obtener más información, consulte la tabla 17.5 "Selecciones del preescalador de ADC" en el capítulo 17.13.2 "ADCSRA - Registro A de control y estado de ADC" (páginas 140 y 141 en la hoja de datos completa de ATtiny25 / 45/85, Rev. 2586M – AVR – 07 / 10)
Valores de preescalador válidos para varias velocidades de reloj
Reloj Valores de preescalador disponibles --------------------------------------- 1 MHz 8 (125 kHz), 16 (62,5 kHz) 4 MHz 32 (125 kHz), 64 (62,5 kHz) 8 MHz 64 (125 kHz), 128 (62,5 kHz) 16 MHz 128 (125 kHz)
El siguiente ejemplo establece el preescalador en 128 para mcu que se ejecuta a 8MHz
(consulte la hoja de datos para conocer los valores de bits adecuados para configurar el preescalador) * /
// resolución de 8 bits
// establece ADLAR en 1 para habilitar el resultado de desplazamiento a la izquierda (solo los bits ADC9.. ADC2 están disponibles) // entonces, solo leer ADCH es suficiente para resultados de 8 bits (256 valores) DDRB | = (1 << PB3); // El pin se establece como salida. DDRB | = (1 << PB2); // El pin se establece como salida. ADMUX = (1 << ADLAR) | // resultado de desplazamiento a la izquierda (0 << REFS1) | // Establece ref. voltaje a VCC, bit 1 (0 << REFS0) | // Establece ref. voltaje a VCC, bit 0 (0 << MUX3) | // use ADC2 para la entrada (PB4), MUX bit 3 (0 << MUX2) | // use ADC2 para la entrada (PB4), MUX bit 2 (1 << MUX1) | // use ADC2 para la entrada (PB4), MUX bit 1 (0 << MUX0); // use ADC2 para la entrada (PB4), MUX bit 0
ADCSRA =
(1 << ADEN) | // Habilitar ADC (1 << ADPS2) | // establece el preescalador en 64, bit 2 (1 << ADPS1) | // establece el preescalador en 64, bit 1 (0 << ADPS0); // establece el preescalador en 64, bit 0}
int main (vacío)
{initADC ();
mientras (1)
{
ADCSRA | = (1 << ADSC); // inicia la medición de ADC while (ADCSRA & (1 << ADSC)); // esperar hasta que se complete la conversión
si (ADCH> 170)
{PORTB | = (1 << PB3); // Pin establecido en HIGH. PORTB | = (1 << PB2); // Pin establecido en HIGH. } else if (ADCH 85) {PORTB | = (1 << PB3); // Pin establecido en ALTO. PORTB & = ~ (1 << PB2); // Pin establecido en BAJO
} demás {
PORTB | = (1 << PB2); // Pin establecido en ALTO. PORTB & = ~ (1 << PB3); // Pin establecido en BAJO
}
}
return 0;
}
Paso 2: circuito
Alfileres ATTINY
PB3, pin físico 2 - pin 1 del LED conectado
PB4, pin físico 3, está conectado al pin central POT
GND, pin físico 4, está conectado al riel negativo - fuente de alimentación
PB2, pin físico 7 - pin 3 del LED conectado
VCC, pin físico 8, está conectado al riel positivo - fuente de alimentación
MACETA
pin pos y neg conectados a los rieles respectivos - fuente de alimentación.
DIRIGIÓ
pin central conectado al riel negativo - fuente de alimentación
Experimenté con una fuente de alimentación de 3 y 3,3 voltios y ambas funcionaron.
Paso 3: Conclusión
La capacidad del ATTINY85 para moverse entre los modos analógico y digital es muy poderosa y se puede utilizar en varias aplicaciones diferentes, p. Ej. conduciendo motores de velocidad variable y creando notas musicales. Exploraré esto en futuros instructivos. Espero que te haya resultado útil.
Recomendado:
Cómo reparar los puntos blancos y los píxeles muertos del proyector BenQ JoyBee GP2: 5 pasos
Cómo reparar los puntos blancos y los píxeles muertos del proyector BenQ JoyBee GP2: ¿Tiene proyectores DLP? ¿Tenía puntos blancos o píxeles muertos en la pantalla del proyector DLP? No se preocupe. Hoy, estoy creando una publicación de Instructables para compartir mi experiencia sobre cómo arreglar los píxeles muertos de mi proyector BenQ Joybee GP2. Sin embargo, si
Microcontrolador AVR. Cambie los LED con un interruptor de botón. Desactivación del botón pulsador: 4 pasos
Microcontrolador AVR. Cambie los LED con un interruptor de botón. Desactivación del botón pulsador: En esta sección, aprenderemos cómo hacer el código C del programa para ATMega328PU para alternar el estado de los tres LED de acuerdo con la entrada de un interruptor de botón. Además, hemos explorado una solución al problema de "Switch Bounce". Como de costumbre, nosotros
Cambio de imagen del mouse LED de tres colores: 5 pasos
Cambio de imagen del mouse LED de tres colores: Reemplace el aburrido LED rojo en un mouse con un LED cíclico de tres colores intermitentes. Nota: este reemplazo es para el LED que se usa para iluminar el extremo del mouse, en un mouse óptico, el otro LED en el centro que usamos para rastrear, no lo reemplace
Cambie el cable del iPod a los auriculares del mercado de accesorios: 4 pasos
Cambie el cable del iPod por los auriculares del mercado de accesorios: este es mi primer instructivo. Estaba buscando cómo cambiar los cables de los auriculares del iPod y no pude encontrar nada. Así que decidí escribir el mío. Este instructivo cubrirá cómo trasplantar el cable de los auriculares de su iPod a otros auriculares
Cambie los LED de su teclado: 5 pasos
Cambie los LED de su teclado: este es otro proyecto fácil pero genial para que lo haga con su teclado. ¿Probablemente estás cansado de los LED verdes de tu teclado y quieres algún otro color? ¿O tal vez desee un color diferente para cada LED de su teclado? Este instructabl