» » X1 – 09.1 Nachtlicht

X1 – 09.1 Nachtlicht

eingetragen in: X1 | 0

 

Nachtlicht

Nun, wir haben Lichtsensoren, aber was machen wir mit ihnen? Wäre es nicht lustig wen die Back-LED vom X1 immer dann an geht wen der Roboter in einen Schatten läuft? Genau das haben wir in diesem Lernkurs vor. Allerdings werden wir ein paar neue Techniken in der if-Verzweigung verwenden.

Viceo-Beispiel:

 

Code-Beispiel:

#define backLedPin 12

void setup() {
pinMode(backLedPin, OUTPUT);
}

void loop() {
lichtTest();
}

void lichtTest(){
int lichtEins = analogRead(A0);
int lichtZwei = analogRead(A1);
int lichtDrei = analogRead(A2);

//Man kann if auch von mehrerem abhängig machen
if(lichtEins <= 200 && lichtZwei <= 200 && lichtDrei <= 200){
digitalWrite(backLedPin. HIGH);
}
else{
digitalWrite(backLedPin, LOW);
}

delay(100);
}

 

 

 

void lichtTest(){
  int lichtEins = analogRead(A0);
  int lichtZwei = analogRead(A1);
  int lichtDrei = analogRead(A2);

  ...
}

 

 

 

 
 
 

Step 1

Erstmal binden wir alle Lichtsensoren in den Programmcode ein. Soweit so gut, und alles bekannt.

 

 

 

void lichtTest(){
  ...
  if(lichtEins <= 200 && lichtZwei <= 200 && lichtDrei <= 200){
    digitalWrite(backLedPin. HIGH);
  }

  ...
}

 

 

 

 
 
 

Step 2

Hier sollte euch direkt auffallen das die if-Verzweigung relativ lang aussieht. Das liegt daran das wir mit dem Operator "&&" weitere Bedingungen der if-Verzweigung geben können. In diesem Fall sind es 3 Bedingungen die jeweils mit "&&" verbunden sind. Weiter Informationen zu Operatoren findest du hier. Im Grunde sagen wir der if-Verzweigung sie soll dann Aktiviert werden wen alle Lichtsensoren "Größer - Gleich" 200 sind, und falls dieser Fall eintrifft wird die Back-LED angeschaltet.

 

 

 

void lichtTest(){
  ...
  else{
    digitalWrite(backLedPin, LOW);
  }

  delay(100);
}

 

 

 

 
 
 

Step 3

Hier verwenden wir eine else-Verzweigung um die Back-LED wieder auszuschalten sobald die vorherige if-Verzweigung nicht aktiviert wird.

 

 

 

void loop() {
  lichtTest();
}

 

 

 

 
 
 

Step 4

Natürlich müssen wir auch hier wieder die Funktion in void loop() schreiben.

 

Fazit

In dieser Lektion haben Wir uns eine Aufgabe für den X1 ausgedacht und diese umgesetzt. Euch sollte auffallen das es relativ einfach ist dem Roboter immer wieder neue Aufgaben zu geben. Im nächsten Lernkurs werden wir das letzte Bauteil von X1 besprechen und einbinden. Das bedeutet das ihr euren X1 kennt und jedes Bauteil einmal verwendet habt. Damit daraus ein Roboter mit einer Sinnvoller Software wird folgen auf den Nächsten Lernkurs noch weitere Lektionen in denen wir noch ein wenig mehr in die Tiefen der Programmierung eintauchen. Also auf zum letzten Bauteil!
 
 
 

 

Bitte hinterlasse eine Antwort