LED en ATMega328 dimmer de lo esperado

0

Estoy en el proceso de hacer la transición del trabajo de Arduino a usar solo microcontroladores, y tengo una pregunta que puede ser bastante básica (pero he buscado y no he encontrado una respuesta todavía) .

Tengo un LED que sé que debería ser bastante brillante cuando está encendido, y es cuando está conectado a un Arduino, pero es muy tenue cuando está conectado a un pin atmega328. Estoy cargando el chip a través del SparkFun Pocket AVR Programmer , y el LED está encendido a través de una resistencia.

¿La salida de voltaje de la atmósfera cuando es alimentada por el programador es mucho más baja que la de un Arduino? ¿Estoy haciendo algo mal?

    
pregunta WinstonSmith

3 respuestas

0

Verifique que el pin esté configurado como una salida. Si se configura como una entrada, será alimentado por un débil levantamiento dentro de la MCU en lugar de hacerlo desde una unidad de salida mucho más fuerte.

    
respondido por el Ignacio Vazquez-Abrams
1

Es esencial para el brillo del LED la corriente que lo atraviesa. Diferentes tipos de LEDs tienen diferentes corrientes nominales. Típico es 20 mA o 2 mA para tipos de corriente baja. El ATmega normalmente puede conducir 40 mA por pin de salida. Asumiendo que su suministro (el programador en su caso) puede darle suficiente corriente, debe configurar correctamente el pin de puerto en su código fuente configurando el registro de dirección de puerto apropiado y el puerto en sí mismo y debe calcular el valor de la serie. resistencia.

Esta resistencia depende de la tensión de salida de su microcontrolador, la corriente necesaria a través de su LED y la tensión sobre su LED, que básicamente depende de su color. Por ejemplo, un LED rojo estándar tiene un poco menos de 2 V y 20 mA. Con 5 V del controlador, tiene 3 V sobre su resistencia, por lo que para obtener 20 mA a través de la resistencia y el LED necesita 150 Ohm. Si no tiene una hoja de datos para su LED, encontrará valores para diferentes colores en la web o incluso una calculadora de resistencia en serie.

    
respondido por el LeSpocky
0

El voltaje en un Arduino por lo general es de 5 voltios. El programador podría estar usando solo 3.3 voltios.

Esto probablemente resultaría en una pérdida de brillo superior a 1/3 debido a la naturaleza no lineal de la caída de tensión directa del LED.

En cualquier caso, saque un voltímetro y verifique el voltaje entre VCC (o VDD) y GND. Además, puede verificar el voltaje a través de la resistencia del LED, luego usar I = V / R para encontrar la corriente del LED.

    
respondido por el Mike DeSimone

Lea otras preguntas en las etiquetas