Grundkenntnisse Programmierung 3 (Arduino LED Würfel): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Arduino: Projekt]]
[[Kategorie:Arduino: Projekt Grundkenntnisse]]
'''Autor:''' Justin Frommberger<br/>
'''Autor:''' Justin Frommberger<br/>


==<code>digitalWrite()</code>==
==<code>digitalWrite()</code>==
* Schreibt einen HIGH- oder LOW-Wert auf einen Digitalpin.
Schreibt einen HIGH- oder LOW-Wert auf einen Digitalpin.
* pin: Die Arduino-Pinnummer.
 
* value: HIGH = 5V(an) oder LOW = 0V(aus).
{| class="wikitable"
|+ style = "text-align: left"| Tabelle 1: digitalWrite(PIN, HIGH/LOW);
|-
| '''PIN''' || Die Arduino-Pinnummer.
|-
| '''value''' || HIGH = 5V(an) oder LOW = 0V(aus).
|}


['''Quelltext 1: ''' <code>digitalWrite.ino</code>]
['''Quelltext 1: ''' <code>digitalWrite.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
void loop ( )  
void loop ( )  
{
{
   digitalWrite(pin, value);     //Pin = Schnittstelle value = HIGH oder LOW
   digitalWrite(pin, value);  
}
}
</syntaxhighlight>
</syntaxhighlight>


==<code>digitalRead()</code>==
==<code>digitalRead()</code>==
Zeile 20: Zeile 25:


['''Quelltext 2: ''' <code>digitalRead.ino</code>]
['''Quelltext 2: ''' <code>digitalRead.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
void loop ( )  
void loop ( )  
{
{
Zeile 39: Zeile 44:


==<code>analogRead()</code>==
==<code>analogRead()</code>==
* Liest den Wert vom angegebenen analogen Pin ein.  
Liest den Wert vom angegebenen analogen Pin ein.  
* Die Arduino-Boards enthalten einen 10-Bit-Analog-zu-Digital-Konverter.  
* Die Arduino-Boards enthalten einen 10-Bit-Analog-zu-Digital-Konverter.  
* Zwischen 0 und 5 V auf Integer-Werte zwischen 0 und 1023 (Zahl).  
* Zwischen 0 und 5 V auf Integer-Werte zwischen 0 und 1023 (Zahl).  


['''Quelltext 3: ''' <code>analogRead.ino</code>]
['''Quelltext 3: ''' <code>analogRead.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
void loop() {
void loop()  
{
   Variable = analogRead(analogPin); // Speichert die Werte vom Pin in der Variable
   Variable = analogRead(analogPin); // Speichert die Werte vom Pin in der Variable
}
}
Zeile 51: Zeile 57:


==<code>random();</code>==
==<code>random();</code>==
* Ist ein Zufallszahlengenerator, um eine random Zahl auszugeben.
Ist ein Zufallszahlengenerator, um eine random Zahl auszugeben.


===<code>randomSeed(analogRead(0))</code>===
===<code>randomSeed(analogRead(0))</code>===
* Weil ein Computer schlecht darin ist random Zahlen zu generieren, benötigt man diesen Befehl.
* Es ist schwierig für einen Computer, "echte" Zufallszahlen zu generieren, da das Computerprogramm in einem geschlossenen Zustand ohne direkte Einflüsse von außen ist. Jedoch kann man durch das Auslesen eines Bits, das von Ereignissen außerhalb des geschlossenen Zustands beeinflusst wird und als eine Art Antenne fungiert, sehr gute zufällige Zahlen erhalten.<br>
* Darum wird ein nicht verbundener analog Pin ausgelesen, dieser Wert ist relativ random, da er wie eine Antenne beeinflussbar ist von der Umgebung.
* Dafür wird ein nicht verbundener analog Pin ausgelesen, dieser Wert ist relativ random, da er wie eine Antenne beeinflussbar ist von der Umgebung.


['''Quelltext 4: ''' <code>randomSeed.ino</code>]
['''Quelltext 4: ''' <code>randomSeed.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
void setup() {
void setup()  
{
   randomSeed(analogRead(0));
   randomSeed(analogRead(0));
}
}


void loop() {
void loop()  
{
   randNumber = random(7);  // Random Zahl von 1 bis 6
   randNumber = random(7);  // Random Zahl von 1 bis 6
}
}
Zeile 69: Zeile 77:
<br>
<br>


 
----
'''→ zurück zur Übersicht: [https://wiki.hshl.de/wiki/index.php/Konzipierung_und_Evaluierung_von_Arduino-Projekten_verschiedener_Schwierigkeitsgrade_f%C3%BCr_die_Lehre#Projekte_unterschiedlicher_Schwierigkeitsgrade Projekte]'''
'''→ zurück zur Übersicht: [https://wiki.hshl.de/wiki/index.php/Konzipierung_und_Evaluierung_von_Arduino-Projekten_verschiedener_Schwierigkeitsgrade_f%C3%BCr_die_Lehre#Projekte_unterschiedlicher_Schwierigkeitsgrade Projekte]'''

Aktuelle Version vom 21. September 2023, 08:20 Uhr

Autor: Justin Frommberger

digitalWrite()

Schreibt einen HIGH- oder LOW-Wert auf einen Digitalpin.

Tabelle 1: digitalWrite(PIN, HIGH/LOW);
PIN Die Arduino-Pinnummer.
value HIGH = 5V(an) oder LOW = 0V(aus).

[Quelltext 1: digitalWrite.ino]

void loop ( ) 
{
  digitalWrite(pin, value); 
}

digitalRead()

Liest einen Wert von einem vorgegebenen Digitalpin ein, entweder HIGH oder LOW.

[Quelltext 2: digitalRead.ino]

void loop ( ) 
{
int ledPin = 13; // LED verbunden mit Digitalpin 13
int inPin = 7;   // Button verbunden mit Digitalpin 7
int val = 0;     // Variable, um den gelesenen Wert zu speichern

void setup() {
  pinMode(ledPin, OUTPUT); // Setzt den Digitalpin 13 als Outputpin
  pinMode(inPin, INPUT);   // Setzt den Digitalpin 7 als Intputpin
}
void loop() {
  val = digitalRead(inPin);  // Liest den Inputpin
  digitalWrite(ledPin, val); // Setzt die LED auf den Wert des Buttons
 }
}

analogRead()

Liest den Wert vom angegebenen analogen Pin ein.

  • Die Arduino-Boards enthalten einen 10-Bit-Analog-zu-Digital-Konverter.
  • Zwischen 0 und 5 V auf Integer-Werte zwischen 0 und 1023 (Zahl).

[Quelltext 3: analogRead.ino]

void loop() 
{
  Variable = analogRead(analogPin); // Speichert die Werte vom Pin in der Variable
}

random();

Ist ein Zufallszahlengenerator, um eine random Zahl auszugeben.

randomSeed(analogRead(0))

  • Es ist schwierig für einen Computer, "echte" Zufallszahlen zu generieren, da das Computerprogramm in einem geschlossenen Zustand ohne direkte Einflüsse von außen ist. Jedoch kann man durch das Auslesen eines Bits, das von Ereignissen außerhalb des geschlossenen Zustands beeinflusst wird und als eine Art Antenne fungiert, sehr gute zufällige Zahlen erhalten.
  • Dafür wird ein nicht verbundener analog Pin ausgelesen, dieser Wert ist relativ random, da er wie eine Antenne beeinflussbar ist von der Umgebung.

[Quelltext 4: randomSeed.ino]

void setup() 
{
  randomSeed(analogRead(0));
}

void loop() 
{
  randNumber = random(7);   // Random Zahl von 1 bis 6
}



→ zurück zur Übersicht: Projekte