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

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 59: Zeile 59:


===<code>randomSeed(analogRead(0))</code>===
===<code>randomSeed(analogRead(0))</code>===
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>
* 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>
Dafür 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>]

Version vom 21. September 2023, 08:10 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