Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

Aufgabe 05 – Digital Input und Output

3. Dezember 2011

Digital Input und Output Bis jetzt verschafften wir uns einen Überblick über die Grundbausteine der Elektronik. Unsere LEDs blinkten auch ohne Computerunterstützung. Das wird sich jetzt ändern. Zum ersten mal nehmen wir unser kleines Arduino-Board hervor, das über zahlreiche Ein- und Ausgänge verfügt. Die erste Aufgabe, bei der wir unser Arduino brauchten, war, eine LED im Sekundentakt blinken zu lassen. Die anderen Aufgaben waren jeweils Abwandlungen um Schritt für Schritt wie Schwierigkeit zu erhöhen, indem man mit Buttons das Blinken startet oder gar Ampelschaltungen durchführt. Die Zeiten der reinen Mechanik waren nun vorbei denn wir brauchten nun zusätzlich die Hilfe unseres Computers, mit dem wir das Arduino mit selbst geschriebenen (oder kopierten) Code beluden. Der Ampelcode:
<pre>#define LED_PIN 12
#define LED_PIN2 11
#define LED_PIN3 10

#define BUTTON_PIN 6
#define BUTTON_PIN2 5
#define BUTTON_PIN3 4

boolean buttonState = false; //boolsche variable
boolean buttonState2 = false;
boolean buttonState3 = false;

void setup()
{
  pinMode(LED_PIN, OUTPUT); // definition des LED pins als output
  pinMode(LED_PIN2, OUTPUT);
  pinMode(LED_PIN3, OUTPUT);

  pinMode(BUTTON_PIN, INPUT); // definition des buttons als input
  digitalWrite(BUTTON_PIN, HIGH);
  pinMode(BUTTON_PIN2, INPUT);
  digitalWrite(BUTTON_PIN2, HIGH);
  pinMode(BUTTON_PIN3, INPUT);
  digitalWrite(BUTTON_PIN3, HIGH); // aktivierung pull up wiederstand
}

void loop()
{
  if(digitalRead(BUTTON_PIN) == LOW) // ist button gedrückt?
  {
    if(buttonState == false) // wenn der status AUS ist, dann...
    {
      buttonState = true; // ...setze auf EIN
      buttonState2 = false;
      buttonState3 = false;
      digitalWrite(LED_PIN, HIGH);
      digitalWrite(LED_PIN2, LOW);
      digitalWrite(LED_PIN3, LOW);
      delay(200);
    }
    else // wenn der status EIN ist, dann...
    {
      buttonState = false;  // ...setze status auf AUS
      digitalWrite(LED_PIN, LOW);
      delay(200);
    }
  }

    if(digitalRead(BUTTON_PIN2) == LOW) // ist button gedrückt?
  {
    if(buttonState2 == false) // wenn der status AUS ist, dann...
    {
      buttonState2 = true; // ...setze auf EIN
      buttonState  = false;
      buttonState3 = false;
      digitalWrite(LED_PIN, LOW);
      digitalWrite(LED_PIN2, HIGH);
      digitalWrite(LED_PIN3, LOW);
      delay(200);
    }
    else // wenn der status EIN ist, dann...
    {
      buttonState = false;  // ...setze status auf AUS
      digitalWrite(LED_PIN2, LOW);
      delay(200);
    }
  }

      if(digitalRead(BUTTON_PIN3) == LOW) // ist button gedrückt?
  {
    if(buttonState3 == false) // wenn der status AUS ist, dann...
    {
      buttonState3 = true; // ...setze auf EIN
      buttonState  = false;
      buttonState2 = false;
      digitalWrite(LED_PIN, LOW);
      digitalWrite(LED_PIN2, LOW);
      digitalWrite(LED_PIN3, HIGH);
      delay(200);
    }
    else // wenn der status EIN ist, dann...
    {
      buttonState = false;  // ...setze status auf AUS
      digitalWrite(LED_PIN3, LOW);
      delay(200);
    }
  }
}