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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(31 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==digitalWrite() ==
[[Kategorie:Arduino: Projekt Grundkenntnisse]]
* Schreibt einen HIGH- oder LOW-Wert auf einen Digitalpin.
'''Autor:''' Justin Frommberger<br/>
* pin: Die Arduino-Pinnummer.
* value: HIGH = 5V(an) oder LOW = 0V(aus).


<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
==<code>digitalWrite()</code>==
Schreibt einen HIGH- oder LOW-Wert auf einen Digitalpin.
 
{| 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>]
<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>
 
==<code>digitalRead()</code>==
Liest einen Wert von einem vorgegebenen Digitalpin ein, entweder HIGH oder LOW.<br>
 
['''Quelltext 2: ''' <code>digitalRead.ino</code>]
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
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
}
}
}
</syntaxhighlight>
</syntaxhighlight>


==analogRead()==
==<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).  


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


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


===randomSeed(analogRead(0))===
===<code>randomSeed(analogRead(0))</code>===
* Weil ein Computer schlecht darin ist Randome Zahlen zu generien, benötigt man diese Funktion.
* 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 analogPin ausgelesen, dieser Wert ist relativ Randome, da er wie eine Antenne beinfullbar 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.


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


void loop() {
void loop()  
   randNumber = random(300);
{
   Serial.println(randNumber);
   randNumber = random(7);  // Random Zahl von 1 bis 6
  delay(50);
}
}
</syntaxhighlight>
</syntaxhighlight>
<br>


→ zurück zum Hauptartikel: [[Arduino LED Würfel (Projekt 3)| Klicken!]]
----
'''→ 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