¿Cómo destellar los LED con un microcontrolador?

4

Lo que planeo hacer es programar un microcontrolador para mantener un registro del tiempo y las luces LED parpadeantes.

Las características que necesitaría:

  • Reducir / aumentar el intervalo entre destellos
  • Luces LED específicas del flash (habrá dos colores LED diferentes)
  • parpadea varias luces LED simultáneamente
  • La capacidad de espaciar las luces LED más alejadas ~ 6 "una frente a otra (las luces estarán en una sola línea)

Estoy planeando comprar Arduino Uno , y estos luces LED . Yo usaría un máximo de 6 LEDS a la vez.

¿Esto es todo lo que necesito para hacer esto?

    
pregunta Rob

3 respuestas

2

Como no has aceptado una respuesta, anularé mis sugerencias.

La mayor parte de la complejidad aquí estará en el software y, dada su experiencia, no debería tener problemas.

Desde el punto de vista del hardware, recomiendo probar primero un LED con una resistencia en serie al pin UNO al que está conectado. Los LED a los que se vincula no indican un sorteo actual. Si no puede encontrarlo, sugeriría configurar su resistencia en 2,2K ohmios (no pregunte por qué, siempre empiezo ahí). Si está demasiado oscuro, reduzca la resistencia hasta que encuentre un brillo con el que esté satisfecho.

Ponga sus manos en un voltímetro y mida la caída de tensión en la resistencia. Debería ser aproximadamente 1.4 V menos que la tensión de alimentación, pero siempre vale la pena comprobarlo. (vea la respuesta de Martin para más detalles sobre este bit)

Divida este voltaje por la resistencia que elija y ahora sabe la corriente que necesita un LED para alcanzar el brillo que desea. Asegúrese de que este número sea menor que la corriente de salida máxima que la UNO puede suministrar. Si no es así, deberá aumentar su resistencia o usar el UNO para conducir un MOSFET para encender y apagar el LED. Para ser honesto, si es demasiado, el UNO puede haber muerto en este punto o al menos estar haciendo calor.

Si desea impulsar más de un LED desde el pin, entonces deberá disminuir su resistencia para asegurarse de que circula suficiente corriente a través de los LED para asegurarse de que estén en el brillo que desea. Nuevamente, tenga cuidado de no dibujar más de lo que UNO puede suministrar; básicamente, será un múltiplo de la corriente que trabajó para el único LED.

Si aumenta por encima de la salida de corriente máxima de la UNO, entonces puede extender los LED a través de más pines de salida o usar un MOSFET para controlar los LED.

Aparte de eso, no deberías tener demasiados problemas.

    
respondido por el SimonBarker
2

Estás viendo algo que debería ser relativamente sencillo.

Realmente, la configuración del hardware no debería molestarte demasiado. El Arduino tiene más que suficientes pines para acomodar a todos los 6 led. Como tal, puede configurar las luces en paralelo, conectadas a pines en el Arduino, con una placa de pruebas, o como desee, con las resistencias correspondientes.

El parpadeo de los LED tampoco es un problema, sería una cuestión de configurar los pines en alto. Cuando necesite encender un LED, simplemente seleccione el pin y ajústelo a un nivel alto, agregue un retraso por el tiempo que necesita que esté encendido y luego vuelva a configurarlo en un nivel bajo.

Aquí hay un ejemplo:

int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;

void setup () [
    pinMode (led1, OUTPUT);
    pinMode (led2, OUTPUT);
    pinMode (led3, OUTPUT);
    pinMode (led4, OUTPUT);
    pinMode (led5, OUTPUT);
    pinMode (led6, OUTPUT);
}

void loop () {
    //will flash the led for one second, you can even put conditions on this 
    //(you wanted time?)
    digitalWrite (led1, HIGH);
    delay(1000);
    digitalWrite (led1, LOW);
    delay(1000);
    // add for more led's as needed
}

De hecho, el pin 13 en tu Arduino ya debería tener una resistencia incorporada.

Ahora, si desea parpadear los led's al mismo tiempo, tendrá que ver cosas como this .

Saludos.

    
respondido por el Gyonka
1

Querrá que algunas resistencias limiten la corriente desde el pin de Arduino a los LED. El valor dependerá del color del LED (ya que esto afecta la "tensión directa" del LED). Calificaste la resistencia con la ley de Ohm.

El voltaje a través de la resistencia es

$$ V_R = 5-V_ {LED} $$

La corriente (indicada por I ) define el brillo del LED (y si subes demasiado, los encontrarás muy brillantes durante un período muy corto, seguido de que nunca volverá a brillar :). La hoja de datos del LED especificará la corriente máxima.

Una vez que sepas el voltaje y la corriente, es simplemente:

$$ R = V_R / I $$

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas