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

Dependencies:   mbed

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

Committer:
stefan1691
Date:
Sun Feb 22 10:38:58 2015 +0000
Revision:
3:713da1a5879b
Parent:
2:e5add5104ed3
6.4 Wenn sich jemand n?hert, Lauflicht einschalten und Akustisches Signal

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stefan1691 3:713da1a5879b 1 /** 6.4 Wenn sich jemand nähert, Lauflicht einschalten und Akustisches Signal
stefan1691 0:a2dc2e18687d 2 */
stefan1691 0:a2dc2e18687d 3 #include "mbed.h"
stefan1691 0:a2dc2e18687d 4
stefan1691 0:a2dc2e18687d 5 DigitalOut led1( D10 );
stefan1691 0:a2dc2e18687d 6 DigitalOut led2( D11 );
stefan1691 0:a2dc2e18687d 7 DigitalOut led3( D12 );
stefan1691 0:a2dc2e18687d 8 DigitalOut led4( D13 );
stefan1691 3:713da1a5879b 9 DigitalOut buzzer( D2 ); // Buzzer
stefan1691 0:a2dc2e18687d 10
stefan1691 3:713da1a5879b 11 DigitalIn pirSensor( A2 ); // Bewegungsmelder schaltet auf 1
stefan1691 2:e5add5104ed3 12
stefan1691 0:a2dc2e18687d 13 int main()
stefan1691 0:a2dc2e18687d 14 {
stefan1691 0:a2dc2e18687d 15 while (true)
stefan1691 0:a2dc2e18687d 16 {
stefan1691 3:713da1a5879b 17 // hat sich etwas bewegt?
stefan1691 3:713da1a5879b 18 if ( pirSensor )
stefan1691 0:a2dc2e18687d 19 {
stefan1691 3:713da1a5879b 20 // 10x Lauflicht durchlaufen
stefan1691 3:713da1a5879b 21 for ( int t = 0; t < 10; t++ )
stefan1691 0:a2dc2e18687d 22 {
stefan1691 3:713da1a5879b 23 // Buzzer bleibt eingeschaltet werden die LED ON sind
stefan1691 3:713da1a5879b 24 buzzer = 1;
stefan1691 3:713da1a5879b 25 for ( int i = 0; i < 5; i++ )
stefan1691 2:e5add5104ed3 26 {
stefan1691 3:713da1a5879b 27 switch ( i )
stefan1691 3:713da1a5879b 28 {
stefan1691 3:713da1a5879b 29 case 0:
stefan1691 3:713da1a5879b 30 led1 = led2 = led3 = led4 = 0;
stefan1691 3:713da1a5879b 31 break;
stefan1691 3:713da1a5879b 32 case 1:
stefan1691 3:713da1a5879b 33 led1 = 1;
stefan1691 3:713da1a5879b 34 break;
stefan1691 3:713da1a5879b 35 case 2:
stefan1691 3:713da1a5879b 36 led1 = 0;
stefan1691 3:713da1a5879b 37 led2 = 1;
stefan1691 3:713da1a5879b 38 break;
stefan1691 3:713da1a5879b 39 case 3:
stefan1691 3:713da1a5879b 40 led2 = 0;
stefan1691 3:713da1a5879b 41 led3 = 1;
stefan1691 3:713da1a5879b 42 break;
stefan1691 3:713da1a5879b 43 case 4:
stefan1691 3:713da1a5879b 44 led3 = 0;
stefan1691 3:713da1a5879b 45 led4 = 1;
stefan1691 3:713da1a5879b 46 break;
stefan1691 3:713da1a5879b 47 }
stefan1691 3:713da1a5879b 48 // wait bis naechstes LED aktiviert wird
stefan1691 3:713da1a5879b 49 wait( 0.2 );
stefan1691 2:e5add5104ed3 50 }
stefan1691 3:713da1a5879b 51 // Ruhe und alle LED off
stefan1691 3:713da1a5879b 52 buzzer = 0;
stefan1691 3:713da1a5879b 53 led4 = 0;
stefan1691 3:713da1a5879b 54 wait ( 0.5 );
stefan1691 0:a2dc2e18687d 55 }
stefan1691 3:713da1a5879b 56 } else
stefan1691 3:713da1a5879b 57 {
stefan1691 3:713da1a5879b 58 led1 = led2 = led3 = led4 = 0;
stefan1691 3:713da1a5879b 59 buzzer = 0;
stefan1691 2:e5add5104ed3 60 }
stefan1691 3:713da1a5879b 61
stefan1691 3:713da1a5879b 62 wait( 0.2 ); // ohne wait laesst sich das Board nicht neu programmieren!
stefan1691 0:a2dc2e18687d 63 }
stefan1691 0:a2dc2e18687d 64 }