Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
uc-welt:gscheiduino:10-batterie [2016/01/05 15:41] Hannes Jochriemuc-welt:gscheiduino:10-batterie [2024/02/06 09:43] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-[[uc-welt:gscheiduino:09-schwellwert|← Kapitel 9: Schwellwertschalter]] | [[uc-welt:gscheiduino:00-uebersicht|↑ Übersicht]]  | [[uc-welt:gscheiduino:11-| →]]+[[uc-welt:gscheiduino:09-schwellwert|← Kapitel 9: Schwellwertschalter]] | [[uc-welt:gscheiduino:00-uebersicht|↑ Übersicht]]  | [[uc-welt:gscheiduino:11-hysterese|Kapitel 11: Hysterese →]]
  
 ====== Kapitel 10: Übungsaufgabe Batterietester ====== ====== Kapitel 10: Übungsaufgabe Batterietester ======
Zeile 17: Zeile 17:
  
 ===== Zusätzliche Funktionen ===== ===== Zusätzliche Funktionen =====
 +
 +==== if-else if-else ====
  
 Damit man die Aufgabe einfacher lösen kann erweitern wir vorher noch unser if-else-then-Statement. Es gibt nämlich nicht nur wenn-dann-sonst sondern diese Anweisung kann weiter verschachtelt werden: Damit man die Aufgabe einfacher lösen kann erweitern wir vorher noch unser if-else-then-Statement. Es gibt nämlich nicht nur wenn-dann-sonst sondern diese Anweisung kann weiter verschachtelt werden:
Zeile 36: Zeile 38:
  
 Der Ablauf sieht also so aus: Wenn Bedingung1 zutrifft wird Code1 ausgeführt. Ist Bedingung1 **false** wird Code1 übersprungen und die nächste Abfrage wird gestartet: Wenn Bedingung2 **true** ist, wird Code2 ausgeführt. Wenn diese Bedingung auch nicht zutrifft, wird Code3 ausgeführt. Der Ablauf sieht also so aus: Wenn Bedingung1 zutrifft wird Code1 ausgeführt. Ist Bedingung1 **false** wird Code1 übersprungen und die nächste Abfrage wird gestartet: Wenn Bedingung2 **true** ist, wird Code2 ausgeführt. Wenn diese Bedingung auch nicht zutrifft, wird Code3 ausgeführt.
 +
 +==== Variablen ====
  
 Zusätzlich lernen wir noch einen ganz wichtigen Punkt, wenn wir fortgeschrittene Programme wollen: **Variablen** Zusätzlich lernen wir noch einen ganz wichtigen Punkt, wenn wir fortgeschrittene Programme wollen: **Variablen**
Zeile 41: Zeile 45:
 Variablen sind etwas total tolles. Wie der Name schon sagt sind sie variabel, das heißt, ihr Wert ist nicht fest vorgegeben wie etwa bei einem #define. Variablen sind etwas total tolles. Wie der Name schon sagt sind sie variabel, das heißt, ihr Wert ist nicht fest vorgegeben wie etwa bei einem #define.
  
-Wir verwenden diese Variable, um den Wert von analogRead zu speichern.+Wir verwenden in unserem Beispiel eine Variable, um den Wert von analogRead zu speichern.
  
 Damit wir die Variable verwenden können, müssen wir sie ganz oben bei den #defines definieren: Damit wir die Variable verwenden können, müssen wir sie ganz oben bei den #defines definieren:
Zeile 63: Zeile 67:
 </code> </code>
  
 +<note tip>Wenn wir zum Beispiel einen Wandlerwert des Analogeingangs öfter im Code benötigen, können wir ihn ganz am Anfang unserer loop()-Funktion in die Variable schreiben und dann mit der Variable weiterarbeiten.</note>
 +
 +Der komplette Code sieht dann so aus:
 +
 +<code c kapitel10_variable.ino>
 +#define LED_ROT 13
 +#define LED_GRUEN 11
 +#define ANALOGPIN A0
 +
 +int analogwert = 0;
 + 
 +void setup()
 +{
 +  pinMode(LED_ROT, OUTPUT);   // Pin auf Ausgang
 +  pinMode(LED_GRUEN, OUTPUT); // Pin auf Ausgang
 +  pinMode(ANALOGPIN, INPUT);  // Pin auf Eingang
 +}
 + 
 +void loop()
 +{
 +  analogwert = analogRead(ANALOGPIN);
 +  if(analogwert>613)
 +  {
 +    digitalWrite(LED_ROT, HIGH);
 +    digitalWrite(LED_GRUEN, LOW);
 +  }
 +  else
 +  {
 +    digitalWrite(LED_ROT, LOW);
 +    digitalWrite(LED_GRUEN, HIGH);
 +  }
 +}
 +</code>
 ===== Aufgabenstellung ===== ===== Aufgabenstellung =====
  
-Die Aufgabe sieht nun wie folgt aus:+Die Aufgabe lautet wie folgt:
  
   * Wenn die Batterie leer ist, soll die rote LED leuchten   * Wenn die Batterie leer ist, soll die rote LED leuchten
Zeile 76: Zeile 113:
  
 Zur Kontrolle gibt es hier wieder [[uc-welt:gscheiduino:10-batterie-loesung|die Musterlösung]]. Zur Kontrolle gibt es hier wieder [[uc-welt:gscheiduino:10-batterie-loesung|die Musterlösung]].
 +
 +Bei dieser Aufgabe und beim Schwellwertschalter von [[uc-welt:gscheiduino:09-schwellwert|Kapitel 9]] kann es zu Problem am Umschaltpunkt kommen. Welche das sind lernen wir in:
 +
 +[[uc-welt:gscheiduino:11-hysterese|Kapitel 11: Hysterese]]