
Uses the analog input value to control how many LEDs are on
main.cpp@1:1e1de02b30cc, 2018-09-25 (annotated)
- Committer:
- ccschneider
- Date:
- Tue Sep 25 13:15:19 2018 +0000
- Revision:
- 1:1e1de02b30cc
- Parent:
- 0:7576b8ed15e8
Uses the analog input value to control how many LEDs are lit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ccschneider | 0:7576b8ed15e8 | 1 | // Cecilia Schneider, OCE 360, September 24,2018 |
ccschneider | 0:7576b8ed15e8 | 2 | // HW #2, exercise 2, Analog I/O |
ccschneider | 0:7576b8ed15e8 | 3 | // Use the analog input value to control how many LEDs are on |
ccschneider | 0:7576b8ed15e8 | 4 | #include "mbed.h" |
ccschneider | 0:7576b8ed15e8 | 5 | |
ccschneider | 0:7576b8ed15e8 | 6 | Serial pc(USBTX, USBRX); |
ccschneider | 0:7576b8ed15e8 | 7 | AnalogIn Ain(p20); //Potentiometer input is on pin 20, this value will determine which LEDs are on |
ccschneider | 0:7576b8ed15e8 | 8 | DigitalOut rled(p5); //LEDs will light based on the analog input |
ccschneider | 0:7576b8ed15e8 | 9 | DigitalOut yled(p7); |
ccschneider | 0:7576b8ed15e8 | 10 | DigitalOut gled(p9); |
ccschneider | 0:7576b8ed15e8 | 11 | DigitalOut bled(p11); |
ccschneider | 0:7576b8ed15e8 | 12 | float ADCdata; |
ccschneider | 0:7576b8ed15e8 | 13 | |
ccschneider | 0:7576b8ed15e8 | 14 | int main() { |
ccschneider | 0:7576b8ed15e8 | 15 | pc.printf("ADC Data Values... \n\r"); |
ccschneider | 0:7576b8ed15e8 | 16 | while (1) { |
ccschneider | 0:7576b8ed15e8 | 17 | ADCdata = Ain; |
ccschneider | 0:7576b8ed15e8 | 18 | wait (0.5); //Updates every half second |
ccschneider | 1:1e1de02b30cc | 19 | if(Ain <= 0.2) { //if the analog input is less than or equal to 0.2 all LEDs will be off |
ccschneider | 0:7576b8ed15e8 | 20 | pc.printf("%3.2f",ADCdata); //displays analog input value |
ccschneider | 0:7576b8ed15e8 | 21 | pc.printf(" All LEDs OFF. Voltage at pin 20: "); //displays which LEDs should be lit |
ccschneider | 0:7576b8ed15e8 | 22 | pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20 |
ccschneider | 0:7576b8ed15e8 | 23 | rled = 0; |
ccschneider | 0:7576b8ed15e8 | 24 | yled = 0; |
ccschneider | 0:7576b8ed15e8 | 25 | gled = 0; |
ccschneider | 0:7576b8ed15e8 | 26 | bled = 0; |
ccschneider | 0:7576b8ed15e8 | 27 | } else if(0.2f<Ain, Ain<=0.4f) { //if Ain is between 0.2 and 0.4 only the red LED will be on |
ccschneider | 0:7576b8ed15e8 | 28 | pc.printf("%3.2f",ADCdata); //displays analog input value |
ccschneider | 0:7576b8ed15e8 | 29 | pc.printf(" Red LED ON. Voltage at pin 20: "); //displays which LEDs should be lit |
ccschneider | 0:7576b8ed15e8 | 30 | pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20 |
ccschneider | 0:7576b8ed15e8 | 31 | rled = 1; |
ccschneider | 0:7576b8ed15e8 | 32 | yled = 0; |
ccschneider | 0:7576b8ed15e8 | 33 | gled = 0; |
ccschneider | 0:7576b8ed15e8 | 34 | bled = 0; |
ccschneider | 0:7576b8ed15e8 | 35 | } else if(0.4f<Ain, Ain<=0.6f) { //if Ain is between 0.4 and 0.6 the red and yellow LEDs will be on |
ccschneider | 0:7576b8ed15e8 | 36 | pc.printf("%3.2f",ADCdata); //displays analog input value |
ccschneider | 0:7576b8ed15e8 | 37 | pc.printf(" Red and yellow LEDs ON. Voltage at pin 20: "); //displays which LEDs should be lit |
ccschneider | 0:7576b8ed15e8 | 38 | pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20 |
ccschneider | 0:7576b8ed15e8 | 39 | rled = 1; |
ccschneider | 0:7576b8ed15e8 | 40 | yled = 1; |
ccschneider | 0:7576b8ed15e8 | 41 | gled = 0; |
ccschneider | 0:7576b8ed15e8 | 42 | bled = 0; |
ccschneider | 0:7576b8ed15e8 | 43 | } else if(0.6f<Ain, Ain<=0.8f) { //if Ain is between 0.6 and 0.8 the red yellow and green LEDs will be on |
ccschneider | 0:7576b8ed15e8 | 44 | pc.printf("%3.2f",ADCdata); //displays analog input value |
ccschneider | 0:7576b8ed15e8 | 45 | pc.printf(" Red, yellow, and green LEDs ON. Voltage at pin 20: "); //displays which LEDs should be lit |
ccschneider | 0:7576b8ed15e8 | 46 | pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20 |
ccschneider | 0:7576b8ed15e8 | 47 | rled = 1; |
ccschneider | 0:7576b8ed15e8 | 48 | yled = 1; |
ccschneider | 0:7576b8ed15e8 | 49 | gled = 1; |
ccschneider | 0:7576b8ed15e8 | 50 | bled = 0; |
ccschneider | 0:7576b8ed15e8 | 51 | } else if(0.8f<Ain, Ain<=1.0f) { //if Ain is greater than 0.8 all LEDs will be on |
ccschneider | 0:7576b8ed15e8 | 52 | pc.printf("%3.2f",ADCdata); //displays analog input value |
ccschneider | 0:7576b8ed15e8 | 53 | pc.printf(" Red, yellow, green and blue LEDs ON. Voltage at pin 20: "); //displays which LEDs should be lit |
ccschneider | 0:7576b8ed15e8 | 54 | pc.printf("%3.2f \n\r", ADCdata*3.3); //displays actual voltage at pin 20 |
ccschneider | 0:7576b8ed15e8 | 55 | rled = 1; |
ccschneider | 0:7576b8ed15e8 | 56 | yled = 1; |
ccschneider | 0:7576b8ed15e8 | 57 | gled = 1; |
ccschneider | 0:7576b8ed15e8 | 58 | bled = 1; |
ccschneider | 0:7576b8ed15e8 | 59 | } |
ccschneider | 0:7576b8ed15e8 | 60 | } |
ccschneider | 0:7576b8ed15e8 | 61 | } |