6.4 Wenn sich jemand nähert, Lauflicht einschalten und Akustisches Signal

Dependencies:   mbed

Fork of 06-04-Uebung by th.iotkit.ch

Revision:
3:713da1a5879b
Parent:
2:e5add5104ed3
Child:
4:a470b7ed1f78
--- a/main.cpp	Fri Feb 20 20:13:29 2015 +0000
+++ b/main.cpp	Sun Feb 22 10:38:58 2015 +0000
@@ -1,62 +1,64 @@
-/** 4.9 Lauflicht, Geschwindigkeit mittels Poti regeln. Ein-/Ausschalten mittels Taste
+/** 6.4 Wenn sich jemand nähert, Lauflicht einschalten und Akustisches Signal
 */
 #include "mbed.h"
 
-DigitalIn b1( PTC9, PullUp );
-DigitalIn b2( PTC0, PullUp );
-
 DigitalOut led1( D10 );
 DigitalOut led2( D11 );
 DigitalOut led3( D12 );
 DigitalOut led4( D13 );
+DigitalOut  buzzer( D2 );           // Buzzer
 
-AnalogIn poti ( A0 );
-
-int on = 0;     // On/Off Merker
+DigitalIn   pirSensor( A2 );        // Bewegungsmelder schaltet auf 1
 
 int main()
 {
     while (true) 
     {
-        // On / Off Buttons
-        if  ( b1 == 0 )
-            on = 1;
-        if  ( b2 == 0 )
-            on = 0;
-
-        // LED
-        if  ( on ) 
+        // hat sich etwas bewegt?
+        if  ( pirSensor  ) 
         {
-            // ab hier werden die Buttons nicht beruecksichtigt
-            // bis die for Schlaufe abgearbeitet ist!!!
-            for ( int i = 0; i < 5; i++ ) 
+            // 10x Lauflicht durchlaufen
+            for ( int t = 0; t < 10; t++ ) 
             {
-                switch  ( i ) 
+                // Buzzer bleibt eingeschaltet werden die LED ON sind 
+                buzzer = 1;
+                for ( int i = 0; i < 5; i++ ) 
                 {
-                    case   0:
-                        led1 = led2 = led3 = led4 = 0;
-                        break;
-                    case   1:
-                        led1 = 1;
-                        break;
-                    case   2:
-                        led1 = 0;
-                        led2 = 1;
-                        break;
-                    case 3:
-                        led2 = 0;
-                        led3 = 1;
-                        break;
-                    case 4:
-                        led3 = 0;
-                        led4 = 1;
-                        break;
+                    switch  ( i ) 
+                    {
+                        case   0:
+                            led1 = led2 = led3 = led4 = 0;
+                            break;
+                        case   1:
+                            led1 = 1;
+                            break;
+                        case   2:
+                            led1 = 0;
+                            led2 = 1;
+                            break;
+                        case 3:
+                            led2 = 0;
+                            led3 = 1;
+                            break;
+                        case 4:
+                            led3 = 0;
+                            led4 = 1;
+                            break;
+                    }
+                    // wait bis naechstes LED aktiviert wird
+                    wait( 0.2 );
                 }
-                wait( poti );
+                // Ruhe und alle LED off
+                buzzer = 0;
+                led4 = 0;
+                wait ( 0.5 );
             }
+        } else
+        {
+            led1 = led2 = led3 = led4 = 0;
+            buzzer = 0;
         }
-        else
-            led1 = led2 = led3 = led4 = 0;
-        wait( 0.2 );    // ohne wait laesst sich das Board nicht neu programmieren!   
+
+        wait( 0.2 );    // ohne wait laesst sich das Board nicht neu programmieren!
     }
 }
\ No newline at end of file