Benutzer-Werkzeuge

Webseiten-Werkzeuge


start:skript:tut1

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
start:skript:tut1 [2018/10/13 14:37]
SabidJFejzula angelegt
start:skript:tut1 [2019/10/25 14:38] (aktuell)
luismeixner
Zeile 1: Zeile 1:
-Themen: +=====Variablen===== 
-  * Was ist Strom/​Widerstand/​Spannung +Eine Variable ist im Allgemeinen ein Speicherort für eine Information,​ wie zum Beispiel eine Zahl oder ein Wort. Dem Compiler wird mitgeteilt, von welchem Typ die Variable ​ist und somit auch, wie viel Speicherplatz für die Variable reserviert werden muss. Es kann dann auf die Variable zugegriffen werden indem man sie ausliest, oder indem man neue Informationen in sie reinschreibt. Variablen können zum Beispiel dafür verwendet werden, eine ausgelesene ​Spannung ​zu speichern, um diese später weiterzuverarbeiten.
-  * Ohmsches Gesetz +
-  * Reihen ​und Parallelschaltungen +
-  * Was ist Leistung +
-  * Wie messe ich Strom/​Widerstand/​Spannung ​(Multimeter Einführung)+
  
 +====Datentypen====
 +Der Datentyp einer Variable bestimmt, was in ihr abgespeichert wird und wie viel Speicherplatz sie benötigt.
  
 +int, long - ganze Zahlen\\
 +float, double - Gleitkommazahlen\\
 +char - Zeichen\\
 +String - Zeichenfolge\\
 +boolean - wahr/​falsch\\
 +
 +====Syntax(Deklarieren/​Initialisieren)====
 +Um eine Variable einzuführen,​ muss sie deklariert oder initialisiert werden.
 +<code c++>
 +int beispiel1; //​deklarieren
 +beispiel1 = 1; //Zuweisen eines Wertes
 +
 +float beispiel2 = 1; //​initialisieren
 +beispiel2 = 2; //ändern des Wertes
 +</​code>​
 +
 +Bei der Deklaration werden der Datentyp und der Name der Variable festgelegt, es wird ihr jedoch kein Wert zugewiesen. Bei der Initialisierung werden sowohl Datentyp und Name als auch der Wert festgelegt. Die Werte der Variablen können dann beliebig verändert werden.
 +
 +====Scope(Gültigkeitsbereich) und Sichtbarkeit====
 +Innerhalb des Sichtbarkeitsbereiches einer Variable kann auf die Variable zugegriffen werden, sie ist also sichtbar. Außerhalb dieses Bereiches existiert die Variable nicht. Sogenannte globale Variablen sind im gesamten Programm sichtbar, während lokale Variablen nur in einem Teil des Programms sichtbar sind. Die Sichtbarkeit einer Variable wird durch die sie umgebenden geschweiften Klammern begrenzt. Es ist außerdem möglich eine Variable zu verdecken, also eine lokale Variable einzuführen,​ die den gleichen Namen hat wie eine globale Variable. Die neu eingeführte lokale Variable überdeckt dann die globale Variable in ihrem Sichtbarkeitsbereich.
 +Ich werde das Konzept an einem Beispiel verdeutlichen:​
 +<code c++>
 +int var1; //globale Variable
 +
 +void setup(){
 +int var2; //lokale Variable, nur im Setup sichtbar
 +}
 +
 +void loop(){
 +int var3; //lokale Variable, nur in loop sichtbar
 +
 +int var1; //lokale Variable var1, überdeckt globale Variable var1 in der loop
 +
 +if(1 == 1){
 +int var4; //lokale Variable, nur in if-Bedingung sichtbar
 +}
 +}
 +</​code>​
 +
 +===Beispiel===
 +<code c++>
 +
 +int varA = 0; //globale Variable
 +int varB = 1; //globale Variable
 +int varC = 2; //globale Variable
 +
 +void setup() {
 +  Serial.begin(9600);​
 +
 +  varA = 5; //ändern des Wertes der globalen Variable varA
 +  int varB = 2; //lokale Variable varB, die die globale Variable varB verdeckt
 +  int varD = 3; //lokale variable
 +  Serial.println(varA);​ //es wird 5 ausgegeben, da der Wert von varA im Setup verändert wurde
 +  Serial.println(varB);​ //es wird 2 ausgegeben, da hier die lokale Variable varB sichtbar ist und nicht die globale
 +  Serial.println(varC);​ //es wird 2 ausgegeben
 +  Serial.println(varD);​ //es wird 3 ausgegeben
 +}
 +
 +void loop() {
 +  int varE = 4; //lokale Variable
 +  if (varA == 5) { //Bedingung erfüllt, die globale Variable varC hat nun den Wert 6
 +    varC = 6;
 +  }
 +  if (varB == 2) { //Bedingung nicht erfüllt, da hier wieder die globale Variable varB mit dem Wert 1 sichtbar ist
 +    varE = 7;
 +  }
 +  if (varC == 6) { //Bedingung erfüllt
 +    int varD = 8; //lokale Variable, nur sichtbar in der if-Bedingung
 +  }
 +  Serial.println(varA);​ //es wird 5 ausgegeben
 +  Serial.println(varB);​ //es wird 1 ausgegeben, da hier die globale Variable varB sichtbar ist
 +  Serial.println(varC);​ //es wird 6 ausgegeben
 +  Serial.println(varD);​ //es kommt zu einem Fehler, da die beiden lokalen Variablen varD hier nicht sichtbar sind
 +  Serial.println(varE);​ //es wird 4 ausgegeben
 +}
 +</​code>​
 +
 +=====If-Bedingungen=====
 +If Bedingungen werden gebraucht um bestimmte Fälle zu unterscheiden und in jedem der Fälle verschiedene Codeabschnitte auszuführen.
 +Die Syntax bei c++ sowie Java lautet Allgemein:
 +<​code>​
 +if(<​BEDINGUNG>​){
 +<​CODE>​
 +}
 +</​code>​
 +
 +Konkret könnten wir zum Beispiel ein Programm haben welches die Lüfter von einem Computer steuert und eine Warnung ausgeben soll wenn die Temperatur 80 Grad überschreitet.
 +Hierbei müsste es eine Variable geben welche wir //temp// nennen wo das Programm die aktuelle Temperatur speichert. Nun benutzen wir eine if-Bedingung um unsere Warnung auszugeben:
 +<​code>​
 +float temp;
 +
 +...
 +
 +If(temp > 80){
 +   ​Serial.println("​Temperatur zu Hoch!"​); ​
 +}
 +
 +</​code>​
 +
 +Es Gibt folgende Vergleichsoperatoren:​
 +  ​
 +  * == / != (Gleich / Ungleich)
 +  * > / < (Größer / Kleiner)
 +  * >= / <= (Größer-Gleich / Kleiner-Gleich)
 + 
 + 
 +
 +Achtet darauf, dass ihr zum Vergleichen nicht //=// verwendet sondern immer //==//. Passt außerdem auf, dass ihr nur vergleichbare variablen vergleicht (Wenn ihr zum Beispiel einen String mit einem int vergleicht weiss der Computer nicht weiter).
 +
 +=====Summe=====
 +In dem folgenden Programm habe ich eine Summe von 1 bis 10 berechnet, ohne for-Loops zu nutzen und nur if-Bedingungen verwendet. Dieses Programm kann als Grundlage für die Fakultät Hausaufgabe genutzt werden. Was eine Fakultät ist, kann [[https://​de.wikipedia.org/​wiki/​Fakultät_%28Mathematik%29|hier]] nachgelesen werden.
 +<code c++>
 +int ergebnis = 0; //Variable um das Ergebnis zu speichern
 +int n = 10; //Zahl bis zu der summiert werden soll
 +int laufvariable = 1; //​Hilfsvariable um die Anzahl der Durchläufe zu zählen
 +void setup() {
 +  Serial.begin(9600);​ //Serielle Kommunikation initiieren
 +}
 +
 +void loop() {
 +  if (laufvariable <= n) { //prüfen ob das Ende der Summe, in diesem Fall 10, erreicht ist
 +    ergebnis = ergebnis + laufvariable;​ //Ergebnis um  einen Summanden erhöhen
 +    laufvariable = laufvariable + 1; //​Laufvariable um 1 erhöhen
 +  }
 +  if (laufvariable == n+1) { //bei Laufvariable = 11 Ergebnis ausgeben
 +    Serial.println(ergebnis);​
 +    laufvariable += 1; //​Laufvariable um 1 erhöhen, damit die if-Bedingungen nicht mehr erfüllt werden und das Programm nichts mehr ausgibt
 +  }
 +}
 +</​code>​
 +
 +
 +
 +=====Schall/​Ton=====
 +Schall ist eine Schwingung von Druck- und Dichteschwankungen in einem elastischen Medium und breitet sich in Form einer [[https://​de.wikipedia.org/​wiki/​Longitudinalwelle|Longitudinalwelle]] aus. Wenn ein Ton entsteht, wird also zum Beispiel Luft komprimiert. Diese Komprimierung breitet sich in der umliegenden Luft aus, was dafür sorgt, dass der Ton sich ausbreitet. Die Komprimierung der Luft kann zum Beispiel durch die Membran eines Lautsprechers stattfinden.
 +====Lautsprecher====
 +Der im Set enthaltene [[https://​de.wikipedia.org/​wiki/​Ferroelektrischer_Lautsprecher|Piezolautsprecher]] erzeugt Töne indem die Membran des Lautsprechers durch ein Piezoelement bewegt wird. Ein Piezoelement führt beim Anlegen einer Spannung eine mechanische Bewegung aus. Wenn an diesen Lautsprecher eine [[https://​de.wikipedia.org/​wiki/​Wechselspannung|Wechselspannung]] angelegt wird, bewegt das Piezolelement die Membran mit einer bestimmten[[https://​de.wikipedia.org/​wiki/​Frequenz|Frequenz]]. Abhängig von der Frequenz, also der Anzahl der Bewegungen pro Sekunde, erzeugt die Membran dann Töne von verschiedener Höhe. Der Arduino kann keine Wechselspannung erzeugen, deshalb muss mit Hilfe der delay-Funktion eine Gleichspannung in bestimmten Zeitabständen an den Lautsprecher angelegt werden.
 +====Delay-Funktion====
 +Die delay-Funktion sorgt dafür, dass das Programm für einen bestimmte Zeit angehalten wird. Nachdem das Programm diese Zeit abgewartet hat, läuft es ganz normal weiter.
 +<code c++>
 +int var = 5;
 +delay(1000);​ //warte 1000 Millisekunden,​ bzw. eine Sekunde
 +var = 6;
 +delayMicroseconds(1);​ // warte eine Mikrosekunde
 +var = 7;
 +</​code>​
start/skript/tut1.1539434277.txt.gz · Zuletzt geändert: 2018/10/13 14:37 von SabidJFejzula