Uses the analog input value to control how many LEDs are on

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }