My version of the MSOE EE-2905 switch case example
Fork of switchCase by
main.cpp@1:a8867f4fd5f2, 2017-09-15 (annotated)
- 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?
User | Revision | Line number | New 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 |