Arduino Projekt: LED Würfel: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 142: Zeile 142:
|}
|}
<br>
<br>
'''4)''' '''Rechenfunktion und If-Verzweigung''' <br>
'''4)''' '''If-Verzweigung mit Funktionen''' <br>
Das Ziel für das Projekt ist, die LED '''faden''' zu lassen, dafür benötigt man eine kleine Rechenfunktion und eine If-Verzweigung.<br>
Nun geht es darum das Hauptprogramm für den Würfel zu schreiben.<br>
Aktuell betägt der Wert der Helligkeit in dem Programm 0, dieser Wert muss verändert werden um unterschiedliche PWM Signale zu versenden.<br>
Überlege, was passieren muss damit die bestimmten LEDs Leuchten die eine Zahl anzeigen soll.<br>
Hiefür muss sich eine Funktion überlegt werden, die unsere Variable '''helligkeit=0''' hochzählt und wieder runterzählt.<br>
Einer der einfachsten wege ist eine If-Verzweigung, die bei Zahl1 eine LED einschaltet, Zahl2 zwei LEDs usw.<br>
Vorab benötigten wir eine zusätzliche Variable mit dem Namen '''zahl''' <br>
Der angebrachte Taster soll sagen wann das Programm gestartet werden soll, dies wird gelöst über eine If-Verzweigung.<br>
<br>
Starte mit der Programmierung des Tasters.
Tipp: Der Taster muss ausgelesen werden mit <code>digitalRead()</code> und in einer Speichervariable gespeichert werden.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Lösung &thinsp;</strong>
| <strong>Lösung &thinsp;</strong>
Zeile 152: Zeile 155:
|       
|       
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
int LED = 9;
void loop()
int helligkeit=0;
{
int zahl= 5;      // <-
//Liest den Taster aus und gibt die Werte an die Variable weiter
void setup()        
buttonState = digitalRead(buttonPin);
{                  
if (buttonState == HIGH)
pinMode(LED,OUTPUT);  
{
}
//Später
void loop()  
{  
analogWrite(LED, helligkeit);
 
helligkeit=helligkeit + zahl;    // Addieren
delay(25);                      // 25 sekunden Pause zwischen dem hochzählen
}
}
</syntaxhighlight>
</syntaxhighlight>

Version vom 23. Juni 2023, 09:49 Uhr

Abb. 1: LED Würfel

Aufgabenstellung

Häufig stellt man bei Brettspielen fest das ein Würfel fehlt und um das Problem zu lösen, ist die Aufgabe von diesem Projekt einen eignen Würfel zu bauen.

Abb. 2: LED

Vorab wichtig zu wissen!

LED

  • Beachte beim Arbeiten mit der LED, die Anode und Kathode nicht zu vertauschen.
  • In die Anode fließt der Strom hinein (lange Seite), danach fließt der Strom wieder durch die Kathode hinaus (kurze Seite).(Abb.2)
  • Wenn die LED am Ende des Projektes nicht leuchtet wurde dies vertauscht, einfach umdrehen und sie leuchtet!

Arduino

  • Der Arduino besitzt unterschiedliche Schnittstellen, weil der Arduino ein digitaler Mikrocontroller ist, kann er nur 5 Volt ausgeben oder annehmen.
  • Bei einer konstanten 5 Volt Spannung, ist die LED immer gleich hell, so ist das Ziel die Spannung zur LED zu reduzieren. Dafür benötigen wir eine PWM Schnittstelle, die Pulsweitenmodulation (PWM) wird in Mikrosekundenbereich ein und ausgeschaltet.
  • Bei einem geringen PWM-Wert ist das 5 Volt Signal kaum noch vorhanden und bei einem hohen PWM-Wert liegt das 5 Volt Signal nahezu durchgehend am Pin an. Durch die PWM Schnittstelle kann nun die LED unterschiedlich hell leuchten, da die Spannung anpassbar ist.
  • Die [PWM] Schnittstellen sind ganz einfach zu erkennen an diesem Zeichen (~)

Steckbrett

  • Erklärung zum arbeiten mit einem Steckbrett klicken!

Benötigte Materiallien

Nr. Anz. Beschreibung Link Pos. Anz. Beschreibung Link
1 Funduino Arduino UNO R3 bestellen
viele Jumper Kabel, männlich/männlich bestellen
1 Steckbrett bestellen
7 LED beliebige Farbe bestellen
8 Widerstand
120 Ω
bestellen
1 Taster bestellen
Abb.3 Schaltung

Aufbau Schaltung

  • Auf dem Bild (Abb.3 Schaltung) wird dargestellt, wie die Schaltung für das Projekt "Pulsierende LED" aufgebaut werden kann.

Programmierung

Schritt 1

Schritt 2

  • Grundkenntnisse vom Projekt "Pulsierende LED" verstanden haben. (Link).
  • Grundkenntnisse für das Projekt "Arduino LED Würfel" verstehen(Link zu den Grundkenntnissen).

Schritt 3

  • Nachdem die Schritte 1 und 2 abgeschlossen sind, kann mit der Programmierung des Projektes gestartet werden.


1) Initialisierung
Für das Projekt müssen einige Variablen und Pins Initalisiert werden, dies ist nun der erste Schritt im Code.
Benötigt werden die LEDs, der Taster, ein Delay und Variablen um Werte zu speichern.
Beachte das einige LEDs zu zweit Initialisert werden!


2) pinMode()
Nachdem Initialisieren der Variable muss dem Programm erklärt werden, welche Schnittstelle am Arduino verwendet werden soll, um mit den LEDs und dem Taster zu kommunizieren.
Hierfür wird die Funktion pinMode(LED,OUTPUT); oder pinMode(LED,INPUT); benötigt.

3) randomSeed()
Da eine Randome Zahl benötigt wird muss eine bestimmte Funktion hinzugefügt werden, damit der Wert Randome ist. Tipp: Siehe Grundkenntnisse


4) If-Verzweigung mit Funktionen
Nun geht es darum das Hauptprogramm für den Würfel zu schreiben.
Überlege, was passieren muss damit die bestimmten LEDs Leuchten die eine Zahl anzeigen soll.
Einer der einfachsten wege ist eine If-Verzweigung, die bei Zahl1 eine LED einschaltet, Zahl2 zwei LEDs usw.
Der angebrachte Taster soll sagen wann das Programm gestartet werden soll, dies wird gelöst über eine If-Verzweigung.

Starte mit der Programmierung des Tasters. Tipp: Der Taster muss ausgelesen werden mit digitalRead() und in einer Speichervariable gespeichert werden.

Abschließend wird eine If-Verweisung benötigt, um die LED wieder dunkler werden zu lassen, ab dem maximalen PWM Wert von 255.

Schritt 4

  • Nach dem beenden von Schritt 3, kann nun das Ergebnis mit der Munsterlösung verglichen werden.

Musterlösung

Quelle: https://funduino.de/nr-4-pulsierende-led (ÜBERARBEITEN!)





→ zurück zum Hauptartikel: Klicken!