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.

04 Digital Input / Output

8. November 2011

Erster Tag mit der ARDUINO-Plattform und für mich sowieso der erste Tag mit Elektronik. Löten gefällt mir. Aufgabe war Folgende: Mit drei Tastern wird eine ‘Ampelschaltung’ realisiert. Jeder der Taster schaltet eine LED ein und beim Druck auf einen anderen Taster erlischt die vorige und eine neue LED leuchtet. Material: 3 LED’s, Vorwiderstände, 3 Taster. Mit viel Hilfe von Eddi (danke!) brachte ich die drei Lämpchen tatsächlich zum Leuchten. Viel gelernt über Schaltkreise und entsprechende Ansteuerung. Sourcecode:

//Aufgabe 04.4 AMPELLICHTER

#define LED_RED 13
#define BUTTON_RED 6

#define LED_ORANGE 12
#define BUTTON_ORANGE 7

#define LED_GREEN 11
#define BUTTON_GREEN 5

boolean buttonRED = false; // Boolsche Variable
boolean buttonORANGE = false;
boolean buttonGREEN = false;

void setup()
{
  pinMode(LED_RED, OUTPUT);
  pinMode(LED_ORANGE, OUTPUT);
  pinMode(LED_GREEN, OUTPUT); // Definition des LED Pins als Output / Ausgang
  pinMode(BUTTON_RED, INPUT);
  pinMode(BUTTON_ORANGE, INPUT);
  pinMode(BUTTON_GREEN, INPUT); // Definition des Button Pins als Input / Eingang
  digitalWrite(BUTTON_RED, HIGH);
  digitalWrite(BUTTON_ORANGE, HIGH);
  digitalWrite(BUTTON_GREEN, HIGH); // Aktivieren des Pullup Widerstandes an Pin 6 (BUTTON_PIN)
}

void loop()

{

//LAMPE ROT

  if(digitalRead(BUTTON_RED) == LOW) // ist Button gedrückt oder nicht? - wenn Button gedrückt wird, dann...
  {
    if(buttonRED == false) // wenn der Status AUS ist, dann...
    {
     buttonRED = true;
     buttonORANGE = false;
     buttonGREEN = false; //setze Status auf EIN
     delay(200);
    }
    else //wenn Status EIN ist, dann...
    {
      buttonRED = false; //setze den Status auf AUS
      delay(200);
    }
  }

  if(buttonRED == true) // wenn der Status EIN ist, dann...
  {
    digitalWrite(LED_RED, HIGH);
  }
  else // wenn der Status AUS ist, dann...
  {
    digitalWrite(LED_RED, LOW);
  }

// LAMPE ORANGE

  if(digitalRead(BUTTON_ORANGE) == LOW) // ist Button gedrückt oder nicht? - wenn Button gedrückt wird, dann...
  {
    if(buttonORANGE == false) // wenn der Status AUS ist, dann...
    {
     buttonORANGE = true;
     buttonRED = false;
     buttonGREEN = false; //setze Status auf EIN
     delay(200);
    }
    else //wenn Status EIN ist, dann...
    {
      buttonORANGE = false; //setze den Status auf AUS
      delay(200);
    }
  }

  if(buttonORANGE == true) // wenn der Status EIN ist, dann...
  {
    digitalWrite(LED_ORANGE, HIGH);
  }
  else // wenn der Status AUS ist, dann...
  {
    digitalWrite(LED_ORANGE, LOW);
  }

// LAMPE GREEN

  if(digitalRead(BUTTON_GREEN) == LOW) // ist Button gedrückt oder nicht? - wenn Button gedrückt wird, dann...
  {
    if(buttonGREEN == false) // wenn der Status AUS ist, dann...
    {
     buttonGREEN = true;
     buttonRED = false;
     buttonORANGE = false; //setze Status auf EIN
     delay(200);
    }
    else //wenn Status EIN ist, dann...
    {
      buttonGREEN = false; //setze den Status auf AUS
      delay(200);
    }
  }

  if(buttonGREEN == true) // wenn der Status EIN ist, dann...
  {
    digitalWrite(LED_GREEN, HIGH);
  }
  else // wenn der Status AUS ist, dann...
  {
    digitalWrite(LED_GREEN, LOW);
  }
}