My version of the MSOE EE-2905 switch case example

Dependencies:   mbed

Fork of switchCase by MSOE EE2905

Committer:
CSTritt
Date:
Fri Sep 15 01:27:02 2017 +0000
Revision:
1:a8867f4fd5f2
Parent:
0:02e1b8007e48
My first version.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rossatmsoe 0:02e1b8007e48 1 /*
rossatmsoe 0:02e1b8007e48 2 Switch statement
rossatmsoe 0:02e1b8007e48 3
rossatmsoe 0:02e1b8007e48 4 Demonstrates the use of a switch statement. The switch
rossatmsoe 0:02e1b8007e48 5 statement allows you to choose from among a set of discrete values
rossatmsoe 0:02e1b8007e48 6 of a variable. It's like a series of if statements.
rossatmsoe 0:02e1b8007e48 7
rossatmsoe 0:02e1b8007e48 8 To see this sketch in action, but the board and sensor in a well-lit
rossatmsoe 0:02e1b8007e48 9 room, open the serial monitor, and and move your hand gradually
rossatmsoe 0:02e1b8007e48 10 down over the sensor.
rossatmsoe 0:02e1b8007e48 11
rossatmsoe 0:02e1b8007e48 12 The circuit:
rossatmsoe 0:02e1b8007e48 13 * photoresistor from analog in 0 to +3.3V
rossatmsoe 0:02e1b8007e48 14 * 10K resistor from analog in 0 to ground
rossatmsoe 0:02e1b8007e48 15
rossatmsoe 0:02e1b8007e48 16 created 1 Jul 2009
rossatmsoe 0:02e1b8007e48 17 modified 9 Apr 2012
rossatmsoe 0:02e1b8007e48 18 by Tom Igoe
rossatmsoe 0:02e1b8007e48 19
rossatmsoe 0:02e1b8007e48 20 modified for Nucleo / mbed 12 Aug 2017
rossatmsoe 0:02e1b8007e48 21 by Sheila Ross
rossatmsoe 0:02e1b8007e48 22
rossatmsoe 0:02e1b8007e48 23 This example code is in the public domain.
rossatmsoe 0:02e1b8007e48 24
rossatmsoe 0:02e1b8007e48 25 http://www.arduino.cc/en/Tutorial/SwitchCase
rossatmsoe 0:02e1b8007e48 26 */
rossatmsoe 0:02e1b8007e48 27
rossatmsoe 0:02e1b8007e48 28
rossatmsoe 0:02e1b8007e48 29 #include "mbed.h"
rossatmsoe 0:02e1b8007e48 30
rossatmsoe 0:02e1b8007e48 31 // Define the analog input we are using for the sensor
rossatmsoe 0:02e1b8007e48 32 AnalogIn sensorVoltage(A0);
rossatmsoe 0:02e1b8007e48 33
rossatmsoe 0:02e1b8007e48 34 // Create a serial connection over our USB
rossatmsoe 0:02e1b8007e48 35 Serial pc(USBTX, USBRX);
rossatmsoe 0:02e1b8007e48 36
rossatmsoe 0:02e1b8007e48 37 int main() {
rossatmsoe 0:02e1b8007e48 38
rossatmsoe 0:02e1b8007e48 39 pc.baud(9600); // Set serial communication speed
rossatmsoe 0:02e1b8007e48 40
rossatmsoe 0:02e1b8007e48 41 while(1) {
rossatmsoe 0:02e1b8007e48 42
rossatmsoe 0:02e1b8007e48 43 // Read the analog sensor
rossatmsoe 0:02e1b8007e48 44 // Rescale the reading to obtain a number between 0 and 3.999
rossatmsoe 0:02e1b8007e48 45 // which will be stored as 0 through 3 in the integer range
rossatmsoe 0:02e1b8007e48 46
rossatmsoe 0:02e1b8007e48 47 int range = sensorVoltage*4;
rossatmsoe 0:02e1b8007e48 48
rossatmsoe 0:02e1b8007e48 49 // do something different depending on the
rossatmsoe 0:02e1b8007e48 50 // range value:
rossatmsoe 0:02e1b8007e48 51
rossatmsoe 0:02e1b8007e48 52 switch (range) {
rossatmsoe 0:02e1b8007e48 53
rossatmsoe 0:02e1b8007e48 54 case 0: // sensor is covered
rossatmsoe 0:02e1b8007e48 55
rossatmsoe 0:02e1b8007e48 56 pc.printf("dark\n");
rossatmsoe 0:02e1b8007e48 57 break;
rossatmsoe 0:02e1b8007e48 58
rossatmsoe 0:02e1b8007e48 59 case 1: // sensor in dim light
rossatmsoe 0:02e1b8007e48 60
rossatmsoe 0:02e1b8007e48 61 pc.printf("dim\n");
rossatmsoe 0:02e1b8007e48 62 break;
rossatmsoe 0:02e1b8007e48 63
rossatmsoe 0:02e1b8007e48 64 case 2: // sensor in medium light
rossatmsoe 0:02e1b8007e48 65
rossatmsoe 0:02e1b8007e48 66 pc.printf("medium\n");
rossatmsoe 0:02e1b8007e48 67 break;
rossatmsoe 0:02e1b8007e48 68
rossatmsoe 0:02e1b8007e48 69 case 3: // bright light shining on sensor
rossatmsoe 0:02e1b8007e48 70
rossatmsoe 0:02e1b8007e48 71 pc.printf("bright\n");
rossatmsoe 0:02e1b8007e48 72 break;
rossatmsoe 0:02e1b8007e48 73
rossatmsoe 0:02e1b8007e48 74 default: // error situation
rossatmsoe 0:02e1b8007e48 75
rossatmsoe 0:02e1b8007e48 76 pc.printf("error\n");
rossatmsoe 0:02e1b8007e48 77
rossatmsoe 0:02e1b8007e48 78 }
rossatmsoe 0:02e1b8007e48 79
rossatmsoe 0:02e1b8007e48 80 wait(0.5); // delay in between reads for stability
rossatmsoe 0:02e1b8007e48 81 }
rossatmsoe 0:02e1b8007e48 82 }
rossatmsoe 0:02e1b8007e48 83
rossatmsoe 0:02e1b8007e48 84
rossatmsoe 0:02e1b8007e48 85
rossatmsoe 0:02e1b8007e48 86