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.

12 Lauf der Dinge

6. Dezember 2011

Als Schlussprojekt durften wir, ähnlich wie Fischli & Weiss, den Lauf der Dinge bauen, indem wir verschiedene Einheiten bauten und diese zusammenhängten. Ich habe einen kleinen Roboter gebaut mit Hilfe von Lego Mindstorms. Die Motoren und Raupen, um sich fortzubewegen, verwendete ich von Lego. Als In- und Output habe ich zwei Schalter vorne und hinten angebracht. Drei LED's geben an, ob die Motoren in Betrieb sind oder nicht. Das Ganze habe ich dann in einen Plexiglaswürfel verpackt, damit man das "Innenleben" noch sehen kann.
#define M1L 2 
#define M1R 3
#define M2L 4
#define M2R 5

#define LED1 9 
#define LED2 10 
#define LED3 11

#define BUTTON_PIN_ON 7
#define BUTTON_PIN_OFF 8 

#define READ_DELAY 50

boolean isDriving = false;

unsigned long lastReadFromButtonOn = 0; 
unsigned long lastReadFromButtonOff = 0; 


void setup() 
{
  pinMode(M1L, OUTPUT);
  pinMode(M1R, OUTPUT); 
  pinMode(M2L, OUTPUT); 
  pinMode(M2R, OUTPUT); 
  
  pinMode(BUTTON_PIN_ON, INPUT); 
  digitalWrite(BUTTON_PIN_ON, HIGH); 
  pinMode(BUTTON_PIN_OFF, INPUT); 
  digitalWrite(BUTTON_PIN_OFF, HIGH); 
  
  digitalWrite(M1L, LOW); 
  digitalWrite(M1R, LOW); 
  digitalWrite(M2L, LOW); 
  digitalWrite(M2R, LOW); 
  
  pinMode(LED1, OUTPUT); 
  pinMode(LED2, OUTPUT); 
  pinMode(LED3, OUTPUT); 
}

void loop()
{ 
  //Überprüfe Button 1 
  if(millis() - lastReadFromButtonOn > READ_DELAY)
  {
    if(digitalRead(BUTTON_PIN_ON) == LOW)
    {
      isDriving = true;
      lastReadFromButtonOn = millis(); 
      
      digitalWrite(LED1, HIGH); 
      digitalWrite(LED2, HIGH); 
      digitalWrite(LED3, HIGH); 
    }
  }
  
  //Überprüfe Button 2 
  if(millis() - lastReadFromButtonOff > READ_DELAY)
  {
    if(digitalRead(BUTTON_PIN_OFF) == LOW)
    {
      isDriving = false;
      lastReadFromButtonOff = millis(); 
      
      digitalWrite(LED1, LOW); 
      digitalWrite(LED2, LOW); 
      digitalWrite(LED3, LOW); 
    }
  }
 
 //Überprüfung Fahrerlaubnis
 if(isDriving == true) 
 {
   digitalWrite(M1L, HIGH); 
   digitalWrite(M1R, LOW); 
   
   digitalWrite(M2L, HIGH); 
   digitalWrite(M2R, LOW); 
   
   /*digitalWrite(M1L, HIGH); 
   digitalWrite(M1R, LOW); 
   
   digitalWrite(M2L, HIGH); 
   digitalWrite(M2R, LOW); */
   
 }
 else
 {
   digitalWrite(M1L, LOW); 
   digitalWrite(M1R, LOW); 
   
   digitalWrite(M2L, LOW); 
   digitalWrite(M2R, LOW); 
 }
}