Wie blinken LEDs mit einem Mikrocontroller?

Was ich vorhabe, ist, einen Mikrocontroller zu programmieren, um die Zeit zu verfolgen und LED-Leuchten zu blinken.

Die Features die ich bräuchte:

  • Verringern/Erhöhen Sie das Intervall zwischen den Blitzen
  • Blitzspezifische LED-Leuchten (es wird zwei verschiedene LED-Farben geben)
  • Blinken Sie mehrere LED-Leuchten gleichzeitig
  • Die Möglichkeit, die am weitesten entfernten LED-Leuchten mit einem Abstand von ca. 6 Zoll voneinander zu platzieren (Leuchten befinden sich in einer einzelnen Linie)

Ich plane den Kauf von Arduino Uno und diesen LED-Leuchten . Ich würde maximal 6 LEDs gleichzeitig verwenden.

Wäre das alles, was ich dafür brauche?

Nun, alles, was Sie wirklich brauchen, um loszulegen, wären Ihr Arduino, LEDs, Widerstände, ein Steckbrett und ein paar Überbrückungsdrähte. Abgesehen davon sollte alles andere, was Sie erwähnt haben, als Softwareübung, Ihre Spezialität, klassifiziert werden.

Antworten (3)

Da Sie keine Antwort akzeptiert haben, werde ich meine Vorschläge einwerfen.

Die meiste Komplexität liegt hier in der Software, und angesichts Ihres Hintergrunds sollten Sie dort keine Probleme haben.

Aus Hardware-Sicht empfehle ich, zuerst mit einer LED mit einem Widerstand in Reihe zum UNO-Pin zu testen, an den sie angeschlossen ist. Die LEDs, die Sie verknüpfen, geben keine Stromaufnahme an. Wenn Sie dies nicht herausfinden können, würde ich vorschlagen, Ihren Widerstand auf 2,2 kOhm einzustellen (fragen Sie nicht warum, ich fange einfach immer dort an). Wenn es zu dunkel ist, verringern Sie den Widerstand, bis Sie eine Helligkeit finden, mit der Sie zufrieden sind.

Besorgen Sie sich ein Voltmeter und messen Sie den Spannungsabfall über dem Widerstand - er sollte etwa 1,4 V unter Ihrer Versorgungsspannung liegen, aber es lohnt sich immer, ihn zu überprüfen. (Weitere Einzelheiten zu diesem Bit finden Sie in Martins Antwort.)

Teilen Sie diese Spannung durch den von Ihnen gewählten Widerstand und Sie kennen jetzt den Strom, den eine LED benötigt, um die gewünschte Helligkeit zu erreichen. Stellen Sie sicher, dass diese Zahl kleiner ist als der maximale Ausgangsstrom, den der UNO liefern kann. Wenn dies nicht der Fall ist, müssen Sie entweder Ihren Widerstand erhöhen oder mit dem UNO einen MOSFET ansteuern, um die LED ein- und auszuschalten. Um ehrlich zu sein, wenn es zu viel ist, ist das UNO möglicherweise zu diesem Zeitpunkt gestorben oder zumindest heiß werden.

Wenn Sie mehr als eine LED vom Pin ansteuern möchten, müssen Sie Ihren Widerstand verringern, um sicherzustellen, dass genügend Strom durch die LEDs fließt, um sicherzustellen, dass die LEDs die gewünschte Helligkeit haben. Achten Sie auch hier darauf, nicht mehr zu ziehen, als die UNO liefern kann - es wird im Grunde ein Vielfaches des Stroms sein, den Sie für die einzelne LED ausgearbeitet haben.

Wenn es über den maximalen Stromausgang des UNO ansteigt, können Sie entweder die LEDs auf mehr Ausgangspins verteilen oder einen MOSFET verwenden, um die LEDs anzusteuern.

Ansonsten solltest du nicht allzu viele Probleme haben.

Sie betrachten etwas, das relativ geradlinig sein sollte.

Wirklich, die Hardwarekonfiguration sollte Sie nicht allzu sehr stören. Der Arduino hat mehr als genug Pins, um alle 6 LEDs aufzunehmen. So können Sie die Lichter parallel, an Pins des Arduino angeschlossen, mit einem Steckbrett oder wie Sie möchten, mit entsprechenden Widerständen einrichten.

Das Blinken der LEDs ist auch kein Problem, es wäre eine Frage der hohen Einstellung der Pins. Wann immer Sie eine LED blinken lassen müssen, wählen Sie einfach den Pin aus und setzen ihn auf High, fügen eine Verzögerung für die Zeit hinzu, die Sie benötigen, um eingeschaltet zu sein, und setzen ihn dann wieder auf Low.

Hier ist ein Beispiel:

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
}

Tatsächlich sollte Pin 13 auf Ihrem Arduino bereits einen eingebauten Widerstand haben.

Wenn Sie nun gleichzeitig LEDs blinken lassen möchten, müssen Sie sich mit solchen Dingen befassen .

Beifall.

Sie möchten einige Widerstände, um den Strom vom Arduino-Pin zu den LEDs zu begrenzen. Der Wert hängt von der Farbe der LED ab (da dies die "Durchlassspannung" der LED beeinflusst). Du hast den Widerstand mit dem Ohmschen Gesetz berechnet.

Die Spannung über dem Widerstand ist

v R = 5 v L E D

Der Strom (mit gekennzeichnet I) definiert die LED-Helligkeit (und wenn Sie zu hoch gehen, werden Sie feststellen, dass sie für einen sehr kurzen Zeitraum sehr hell sind, gefolgt von nie wieder hell :). Das Datenblatt für die LED gibt den maximalen Strom an.

Sobald Sie die Spannung und den Strom kennen, ist es einfach:

R = v R / ICH