Grundkenntnisse Programmierung 4 (USS mit Buzzer): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(19 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/>


== Serial Monitor ==
== Serial Monitor ==
===<code>Serial.begin()</code>===
===<code>Serial.begin()</code>===
* Legt die Datenrate in Bit pro Sekunde (Baud) für die serielle Datenübertragung fest.
Legt die Datenrate in Bit pro Sekunde (Baud) für die serielle Datenübertragung fest.
* Wird benötigt, um die Hardwareinformationen auf dem Serial Monitor auslesen zu können.
* Wird benötigt, um die Hardwareinformationen auf dem Serial Monitor auslesen zu können.
* Diesen findet man im Programm unter Werkzeuge Serial Monitor, in diesem Fenster muss die Baudrate eingetragen werden.
* Diesen findet man im Programm unter Werkzeuge Serial Monitor, in diesem Fenster muss die Baudrate eingetragen werden.


'''Quelltext 1:''' <code>serialBegin.ino</code>
['''Quelltext 1: ''' <code>serialBegin.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()  
    Serial.begin(9600); // Öffnet die serielle Schnittstelle und stellt die Datenrate auf 9600 Bit/s ein
{
Serial.begin(9600); // Öffnet die serielle Schnittstelle und stellt die Datenrate auf 9600 Bit/s ein
}
}
</syntaxhighlight>
</syntaxhighlight>


===<code>Serial.print(ln)</code>===<br>
===<code>Serial.print(ln)</code>===  
Druckt Daten an den seriellen Anschluss als von Menschen lesbarer ASCII-Text.  
Druckt Daten an den seriellen Anschluss als von Menschen lesbarer ASCII-Text.  


<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
['''Quelltext 2: ''' <code>printLn.ino</code>]
void loop() {
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:small">
void loop()  
{
   // print labels
   // print labels
   Serial.print("NO FORMAT");  // Gibt einen Text aus
   Serial.print("NO FORMAT");  // Gibt einen Text aus
   Serial.println("Carriage-Return"); // Gibt einen Text aus und folgt mit einem Wagenrücklauf (Anfang der nächsten Zeile)
   Serial.println("Carriage-Return"); // Gibt einen Text aus und folgt mit einem Wagenrücklauf (Anfang der nächsten Zeile)
</syntaxhighlight>
}
 
== Initialisierung (Zuweisung) ==
===<code>#define</code>===
* Weißt einem Wert einen Namen zu, bevor das Programm kompiliert wird
* Definierte Konstanten in Arduino belegen keinen Programmspeicherplatz auf dem Chip
* Der Compiler ersetzt zur Kompilierzeit Verweise auf diese Konstanten durch den definierten Wert.
 
'''Quelltext 2:''' <code>define.ino</code>
<syntaxhighlight lang="C" style="border: none; background-color: #EFF1C1; font-size:14px">
#define ledPin 6
// Der Compiler ersetzt alle Erwähnungen von ledPin zur Kompilierzeit durch den Wert 6.
</syntaxhighlight>
</syntaxhighlight>


===<code>pulseIn()</code>===
===<code>pulseIn()</code>===
* Liest einen Wert von einem vorgegebenen Digitalpin ein, entweder HIGH oder LOW.  
Liest einen Wert von einem vorgegebenen Digitalpin ein, entweder HIGH oder LOW.  
* Wenn value HIGH ist, wartet pulseIn() darauf, dass der Pin auf den Wert HIGH wechselt, startet einen Timer und wartet anschließend darauf, dass der Pin wieder auf LOW wechselt.  
* Wenn value HIGH ist, wartet pulseIn() darauf, dass der Pin auf den Wert HIGH wechselt, startet einen Timer und wartet anschließend darauf, dass der Pin wieder auf LOW wechselt.  
* Im nächsten Schritt stoppt pulseIn() den Timer und gibt die Länge des Impulses in Mikrosekunden zurück.
* Im nächsten Schritt stoppt pulseIn() den Timer und gibt die Länge des Impulses in Mikrosekunden zurück.
* Wenn ein bestimmter Timeout erreicht wird, wird eine 0 zurückgegeben.
* Wenn ein bestimmter Timeout erreicht wird, wird eine 0 zurückgegeben.


'''Quelltext 3:''' <code>pulseIn.ino</code>
['''Quelltext 4: ''' <code>pulseIn.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:14px">
pulseIn(pin, value)                  //value = HIGH oder LOW
pulseIn(pin, value)                  //value = HIGH oder LOW
pulseIn(pin, value, timeout)        //timeout = Anzahl an Mikrosekunden, die gewartet werden soll, bis ein Impuls gemessen wurde
pulseIn(pin, value, timeout)        //timeout = Anzahl an Mikrosekunden, die gewartet werden soll, bis ein Impuls gemessen wurde
/* Beispiel */
dauer = pulseIn(ECHO_PIN, HIGH);    //Zählt die Zeit in Mikrosekunden, bis der Schall zum Ultraschallsensor zurückkehrt
</syntaxhighlight>
</syntaxhighlight>


== Buzzer ==
== Buzzer ==
===<code>tone()</code>===
===<code>tone()</code>===
Generiert einen Ton mit der angegebenen Frequenz (und 50 % duty cycle) auf einem Pin.<br>
Generiert einen Ton mit der angegebenen Frequenz auf einem Pin.<br>
Eine Dauer des Tons kann festgelegt werden; sonst wird der Ton abgespielt, bis ein noTone() aufgerufen wird.
Eine Dauer des Tons kann festgelegt werden, bis die Funktion noTone() aufgerufen wird.<br>
<code> dauer = Die Dauer des Tons in Millisekunden (optional) </code> <br>


'''Quelltext 4:''' <code>tone.ino</code>
['''Quelltext 5: ''' <code>tone.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() {
{
tone(pin, frequency)                    // Die Frequenz des Tons in Hertz
tone(pin, frequency)                    // Die Frequenz des Tons in Hertz
tone(pin, frequency, duration)          // Die Dauer des Tons in Millisekunden (optional)  
tone(pin, frequency, duration)          // Die Dauer des Tons in Millisekunden (optional)  
}
}
</syntaxhighlight>
</syntaxhighlight>
<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]'''

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

Autor: Justin Frommberger

Serial Monitor

Serial.begin()

Legt die Datenrate in Bit pro Sekunde (Baud) für die serielle Datenübertragung fest.

  • Wird benötigt, um die Hardwareinformationen auf dem Serial Monitor auslesen zu können.
  • Diesen findet man im Programm unter Werkzeuge Serial Monitor, in diesem Fenster muss die Baudrate eingetragen werden.

[Quelltext 1: serialBegin.ino]

void setup() 
{
 Serial.begin(9600); // Öffnet die serielle Schnittstelle und stellt die Datenrate auf 9600 Bit/s ein
}

Serial.print(ln)

Druckt Daten an den seriellen Anschluss als von Menschen lesbarer ASCII-Text.

[Quelltext 2: printLn.ino]

void loop() 
{
  // print labels
  Serial.print("NO FORMAT");  // Gibt einen Text aus
  Serial.println("Carriage-Return"); // Gibt einen Text aus und folgt mit einem Wagenrücklauf (Anfang der nächsten Zeile)
}

pulseIn()

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

  • Wenn value HIGH ist, wartet pulseIn() darauf, dass der Pin auf den Wert HIGH wechselt, startet einen Timer und wartet anschließend darauf, dass der Pin wieder auf LOW wechselt.
  • Im nächsten Schritt stoppt pulseIn() den Timer und gibt die Länge des Impulses in Mikrosekunden zurück.
  • Wenn ein bestimmter Timeout erreicht wird, wird eine 0 zurückgegeben.

[Quelltext 4: pulseIn.ino]

pulseIn(pin, value)                  //value = HIGH oder LOW
pulseIn(pin, value, timeout)         //timeout = Anzahl an Mikrosekunden, die gewartet werden soll, bis ein Impuls gemessen wurde

/* Beispiel */
dauer = pulseIn(ECHO_PIN, HIGH);    //Zählt die Zeit in Mikrosekunden, bis der Schall zum Ultraschallsensor zurückkehrt

Buzzer

tone()

Generiert einen Ton mit der angegebenen Frequenz auf einem Pin.
Eine Dauer des Tons kann festgelegt werden, bis die Funktion noTone() aufgerufen wird.
dauer = Die Dauer des Tons in Millisekunden (optional)

[Quelltext 5: tone.ino]

void loop() 
{
 tone(pin, frequency)                    // Die Frequenz des Tons in Hertz
 tone(pin, frequency, duration)          // Die Dauer des Tons in Millisekunden (optional) 
}



→ zurück zur Übersicht: Projekte