# Z-Lab Arduino-Grundkurs Projekt 3: Externe LED und mehrere LEDs

In diesem Projekt lassen wir wieder LEDs blinken.  
Allerdings dieses Mal eine externe.

Zuerst öffnen wir das Projekt über den gewohnten Weg. Der Name ist "03_Externe_LED"

![Projekt öffnen](image.png)

Wenn du dieses Projekt öffnest wunderst du dich bestimmt. Das sieht ja genau so aus wie beim letzten Mal.

Genau! Um mehrere LEDs und auch externe LEDs anzusteuern reicht unser C-Wissen aus den letzten beiden Projekten völlig aus. Wir müssen nur das gelernte neu kombinieren und schon können wir externe LEDs und auch mehrere LEDs anschließen und unterschiedlich blinken lassen.

Und wir müssen lernen, was ein Breadboard ist :)

## Das Breadboard

Ein Breadboard ist eine Steckplatine, die es uns erstpart alles, was wir mal testen wollen, löten zu müssen.  
Dabei sind die Löcher an der Außenseite der Platine längs miteinander verbunden und die Löcher im Inneren der Platine sind quer miteinander verbunden:  

//TODO: BILD

Wenn wir nun einen Stromkreis brauchen, der eine LED, einen Widerstand und den Arduino miteinander verbindet dann müssten wir ohne das Breadboard einen Stromkreis basteln, der so aussieht:

//TODO: BILD

Oder wir löten auf einer normalen Platine einen Stromkreis wie diesen hier:

//TODO: BILD

Wenn wir nun aber ein paar Sachen hintereinander ausprobieren möchten müssten wir ja immer wieder umbasteln oder umlöten. Das macht auf Dauer keinen Spaß. Deshalb gibt es die Breadboards. Damit lässt sich ein Stromkreis oder eine Schaltung leicht und ohne Werkzeug bauen und wieder verändern.

## Verkabeln wir also die LED mit dem Widerstand mit dem Arduino

So muss da aussehen, wenn wir fertig sind:

<img src="Blinken_bb.svg">

Für den Aufbau gehen wir wie folgt vor:
* Die LED kommt in ein Breadboard  
  Die beiden Beinchen in zwei verschiedene Spalten stecken
* an die längere Seite der LED schließen wir den Widerstand an.  
  Dazu stecken wir den Widerstand in die gleiche Spalte wie die LED
* Das andere Ende des Widerstands verbinden wir mit dem Ausgang 12 des Arduino  
  Dazu stecken wir ein rotes Kabel in die Spalte dem Widerstand und mit dem anderen Ende auf den Pin 12 des Arduino.
* Jetzt fehlt noch der Rückweg des Stroms zum Arduino  
  Dazu stecken wir eine Seite eines schwarzen Kabels an einen der GND-Eingänge des Arduino.  
  Die andere Seite stecken wir in die Spalte, in der das kurze Beinchen der LED noch alleine Steck.

So und dann geht's wieder ans Programmieren.

* Wie müssen wir den Code anpassen, damit die externe LED blinkt?

<details>
  <summary>hier klicken für (zwei mögliche) Lösungen</summary>

  ### Lösung mit "hart-Kodierter" Nummer
  ```c
    void setup() {
        pinMode(12, OUTPUT);
    }

    void loop() {
        digitalWrite(12, HIGH);
        delay(1000);
        digitalWrite(12, LOW);
        delay(1000);
    }
  ```


  ### Lösung mit #define
  ```c
    #define LED1 12

    void setup() {
        pinMode(LED1, OUTPUT);
    }

    void loop() {
        digitalWrite(LED1, HIGH);
        delay(1000);
        digitalWrite(LED1, LOW);
        delay(1000);
    }
  ```
</details>



## Und wie könnte es weiter gehen?
* Was müssten wir denn tun, wenn wir beide LEDs (die interne und die externe) abwechselnd blinken lassen wollten?
* Und wir müssten wir vorgehen, wenn wir 3 LEDs nacheinander blinken lassen wollen?

<details>
  <summary>Hier klicken für Lösungsvorschläge - aber bitte erst selbst probieren! </summary>
<details>
  <summary>Ja wirklich. Bitte erst selbst probieren. Nicht gleich nach der Lösung schauen.</summary>

  ### Lösung mit #define

  ```c

  TODO: hier Lösungsvorschläge

  ```
</details>
</details>